about summary refs log tree commit diff
path: root/grammar.ebnf
blob: 1805abbd79e076189c3c7f2fd97c591c7d3e4faf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(* Grammar definition in EBNF format. *)

Expression = TermExpression;

TermExpression = FactorExpression { ("+" | "-") FactorExpression };

FactorExpression = UnaryExpression { ("*" | "/") UnaryExpression };

UnaryExpression = ( "-" | "!" ) | GroupExpression;
                
UnitExpression = NaturalDigit {Digit} | "(" Expression ")";;

(* Basics *)

NaturalDigit = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
Digit = "0" | NaturalDigit ;