-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathGRAMMAR.txt
More file actions
49 lines (41 loc) · 1 KB
/
GRAMMAR.txt
File metadata and controls
49 lines (41 loc) · 1 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
47
48
## Grammar for Feval
x ::= ( a | b | ... | z )
( a | b | ... | z
| A | B | ... | Z
| 0 | 1 | ... | 9
| _ | ' )*
v ::= x
| True | False
| 0 | 1 | -1 | 2 | -2 | ...
| Function x -> e
| [] | [v, v, ..., v]
e ::= v
| (e)
| e && e | e "||" e | !e
| e + e | e - e | e * e | e / e
| e = e | e < e
| e e
| If e Then e Else e
| Let Rec x x = e In e
| e : e | Case e Of [] -> e "|" (x : x) -> e
## Grammar for EFeval
x ::= ( a | b | ... | z )
( a | b | ... | z
| A | B | ... | Z
| 0 | 1 | ... | 9
| _ | ' )*
v ::= x
| True | False
| 0 | 1 | -1 | 2 | -2 | ...
| Function x -> e
| [] | [v, v, ..., v]
e ::= v
| (e)
| e && e | e "||" e | !e
| e + e | e - e | e * e | e / e | e % e
| e = e | e < e | e <= e | e > e | e >= e
| e e
| If e Then e Else e
| Let x x ... x = e In e
| e; e
| e : e | Case e Of [] -> e "|" (x : x) -> e