public
Clone URL: git://github.com/halorgium/gcbot.git
gcbot / gcbot.txt
100644 46 lines (42 sloc) 1.058 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name = [a-zA-Z][a-zA-Z0-9]*
intliteral = [-0-9][0-9]*
strliteral = "(.*)"
 
stm ::= <name> = <expr>
stm ::= <name> |= <expr>
stm ::= <expr>
expr ::= ( <expr> )
expr ::= if <bexp> then <expr> else <expr>
expr ::= fn <name> where <guardlist> = <expr>
expr ::= fn <name> = <expr>
expr ::= <name> := <expr>
expr ::= <expr> ; <expr>
expr ::= <expr> <expr>
expr ::= [ <exprlist> ]
expr ::= [ <expr> ]
expr ::= ( <exprlist> )
expr ::= <expr> + <expr>
expr ::= <expr> - <expr>
expr ::= <expr> * <expr>
expr ::= <expr> / <expr>
expr ::= <expr> :: <expr>
expr ::= <expr> @ <expr>
expr ::= <bexp>
expr ::= <name>
expr ::= <intliteral>
expr ::= <strliteral>
expr ::= true
expr ::= false
bexp ::= <expr> <= <expr>
bexp ::= <expr> >= <expr>
bexp ::= <expr> == <expr>
bexp ::= <expr> != <expr>
bexp ::= <expr> < <expr>
bexp ::= <expr> > <expr>
bexp ::= <bexp> and <bexp>
bexp ::= <bexp> or <bexp>
bexp ::= not <bexp>
 
<guardlist> ::= <bexp>
<guardlist> ::= <name> as <expr>
<guardlist> ::= <guardlist> , <guardlist>
 
<exprlist> ::= <expr> , <exprlist>
<exprlist> ::= <expr>