Skip to content

Instantly share code, notes, and snippets.

Created August 20, 2014 18:12
Show Gist options
  • Save anonymous/f68fdbe7d297612ca87c to your computer and use it in GitHub Desktop.
Save anonymous/f68fdbe7d297612ca87c to your computer and use it in GitHub Desktop.
digit(D) --> [D],{member(D, `0123456789`)}.
digits([D]) --> digit(D).
digits([D|Ds]) --> digit(D), digits(Ds).
number_term(N) --> digits(D), {number_codes(N, D)}.
infix_op(add) --> `+`.
infix_op(sub) --> `-`.
expression(N) --> number_term(N).
expression(func(Operator, E1, E2)) -->
expression(E1), infix_op(Operator), expression(E2).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment