|
| 1 | +entrypoints [Rule] ; |
| 2 | + |
| 3 | +comment "//" ; |
| 4 | + |
| 5 | +token DsIdentity ["!\"#$%&'*+-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~"] + ; |
| 6 | +-- all char except ()`, |
| 7 | + |
| 8 | +LogicalOr. Term1 ::= Term1 "||" Term2 ; |
| 9 | +LogicalAnd. Term2 ::= Term2 "&&" Term3 ; |
| 10 | +BitwiseInclusiveOr. Term3 ::= Term3 "|" Term4 ; |
| 11 | +BitwiseExclusiveOr. Term4 ::= Term4 "^" Term5 ; |
| 12 | +BitwiseAnd. Term5 ::= Term5 "&" Term6 ; |
| 13 | +Equality. Term6 ::= Term6 "==" Term7 ; |
| 14 | +Inequality. Term6 ::= Term6 "!=" Term7 ; |
| 15 | +LessThan. Term7 ::= Term7 "<" Term8 ; |
| 16 | +GreaterThan. Term7 ::= Term7 ">" Term8 ; |
| 17 | +LessThanOrEqualTo. Term7 ::= Term7 "<=" Term8 ; |
| 18 | +GreaterThanOrEqualTo. Term7 ::= Term7 ">=" Term8 ; |
| 19 | +LeftShift. Term8 ::= Term8 "<<" Term9 ; |
| 20 | +RightShift. Term8 ::= Term8 ">>" Term9 ; |
| 21 | +Addition. Term9 ::= Term9 "+" Term10 ; |
| 22 | +Subtraction. Term9 ::= Term9 "-" Term10 ; |
| 23 | +Multiplication. Term10 ::= Term10 "*" Term11 ; |
| 24 | +Division. Term10 ::= Term10 "/" Term11 ; |
| 25 | +Modulus. Term10 ::= Term10 "%" Term11 ; |
| 26 | +Complement. Term11 ::= "~" Term11 ; |
| 27 | +LogicalNot. Term11 ::= "!" Term11 ; |
| 28 | +UnaryNegation. Term11 ::= "-" Term11 ; |
| 29 | +UnaryPlus. Term11 ::= "+" Term11 ; |
| 30 | +AddressOf. Term11 ::= "&" Term11 ; |
| 31 | +Indirection. Term11 ::= "*" Term11 ; |
| 32 | + |
| 33 | +Item. Term64 ::= DsIdentity ; |
| 34 | +TypedItem. Term64 ::= DsIdentity ":" DsIdentity ; |
| 35 | +Variable. Term64 ::= "`" DsIdentity ; |
| 36 | +TypedVariable. Term64 ::= "`" DsIdentity ":" DsIdentity ; |
| 37 | +Function. Term64 ::= Term64 "(" [Term] ")" ; |
| 38 | +Bracket. Term64 ::= "(" Term ")" ; |
| 39 | + |
| 40 | +ProperRule. Rule ::= [Term] "->" Term ; |
| 41 | +Fact. Rule ::= Term ; |
| 42 | + |
| 43 | +coercions Term 64 ; |
| 44 | +separator Term "," ; |
| 45 | +separator Rule ""; |
0 commit comments