-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrammar.txt
78 lines (77 loc) · 2.58 KB
/
grammar.txt
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<line> ::= <stmt> "."
<stmt> ::= <simplechain> <stdname> <rhs> |
<chain> <opname> <rhs1> |
<literalish>
<rhs> ::= <lambda> |
<shortarglist> |
":=" <stmt> |
"::=" <stmt> |
":" <arglist> |
"=" <stmt> |
<shortarglist> "=" <stmt> |
"<-" <stmt>
<rhs1> ::= <verysimplechainl> |
<shortarglist1> |
":=" <stmt> |
"::=" <stmt> |
":" <arglist> |
"=" <stmt> |
<shortarglist> "=" <stmt> |
"<-" <stmt>
<arglist> ::= <lambda> |
<arg> <arglist1>
<arglist1> ::= <lambda> |
"," <arg> <arglist1>
<arg> ::= <chain> <stdname> |
<chain> <opname> <verysimplechainl> |
<simplechain> <stdname> <shortarglist> |
<chain> <opname> <shortarglist1> |
<literalish>
<chain> ::= <chain> <opname> <verysimplechainl> |
<simplechain>
<simplechain> ::= <simplechain> <stdname> |
<simplechain> <stdname> <shortarglist> |
<literalish> |
<lambda>
<verysimplechain> ::= <verysimplechainl> <stdname> |
<verysimplechainl> <stdname> <shortarglist> |
<verysimplechainl> ::= <verysimplechain> |
<literal> |
<lambda>
<shortarglist> ::= "(" <arglist> ")" |
"(" <chain> <name> ":" <arg> ")" |
<literal>
<shortarglist1> ::= "(" <arglist> ")" |
"(" <chain> <name> ":" <arg> ")"
<literalish> ::= "~" <text> <literalish> |
"(" <stmt> ")" |
<literal>
<literal> ::= "{" <linelist> "}" |
<number> |
"\"" <text> "\"" |
"'" <text> |
"'" "(" <text> ")" |
"~" <text> |
"[" <arglist> "]" |
"'" "[" <literallist> "]" |
"#" "\"" <text> "\"" |
"#" "(" <text> ")" |
"#" "[" <text> "]" |
"#" "{" <text> "}" |
[ "-" | "+" ] "0" <letter> { <alphanum> } |
"#'" <text> |
"#'" <literalish> |
<linelist> ::= <line> <linelist> |
<lambda>
<literallist> ::= <listlit> <literallist1> |
<lambda>
<literallist1> ::= <lambda> |
"," <listlit> <literallist1>
<listlit> ::= "\"" <text> "\"" |
"'" <text> |
"~" <text> |
<number> |
"'" "(" <text> ")" |
"[" <literallist> "]" |
"#" "\"" <text> "\"" "#" |
<name>