-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrammar.txt
79 lines (59 loc) · 1.29 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
79
<Program> : <class>
<class>:
<modAccessClass> class <id> {
<initList>
<mainMethod>
}
<modAccessClass>:
public |
private |
protected
<mainMethod> : public static void main(String[] args) {
<statementList>
}
<statementList> : <statement>
<expression>:
<arithmetic> <exprFork> |
<exprFork>:
<logicOperator> <expression> |
<condition> <expression> |
; |
E
<arithmetic>:
<secondPrior>
<secondPrior>:
<firstPrior><secondPrior_>
<secondPrior_>:
<secondPriorOper><firstPrior><secondPrior_> |
E
<firstPrior>:
<group><firstPrior_>
<firstPrior_>:
<firstPriorOper><group><firstPrior_> |
E
<group>:
(<expression>) <operator> <expression> |
<valueExpr>
<firstPriorOper>: * | /
<secondPriorOper>: + | - | =
<operator>: + | - | * | / | =
<return>:
return <expression> | ;
<loop>:
while (<expression>) {
<statementList>
}
<statement> :
{ <statement> } |
<loop> |
<conditional> |
<expression> |
<System.out.println> |
<return> |
;
<conditional> : if (<expression>) {
<statementList>
} <elseFork>
<elseFork> : else <elseFork1> | E
<elseFork1> : <conditional> | {<statementList>}
<System.out.println>: System.out.println(<expression>);