-
Notifications
You must be signed in to change notification settings - Fork 0
/
grammar.txt
106 lines (106 loc) · 2.53 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
105
program,moduleDeclarations,otherModules,driverModule,otherModules
moduleDeclarations,moduleDeclaration,moduleDeclarations
moduleDeclarations,EPS
moduleDeclaration,DECLARE,MODULE,ID,SEMICOL
otherModules,module,otherModules
otherModules,EPS
driverModule,DRIVERDEF,DRIVER,PROGRAM,DRIVERENDDEF,moduleDef
module,DEF,MODULE,ID,ENDDEF,TAKES,INPUT,SQBO,input_plist,SQBC,SEMICOL,ret,moduleDef
ret,RETURNS,SQBO,output_plist,SQBC,SEMICOL
ret,EPS
input_plist,ID,COLON,dataType,n1
n1,COMMA,ID,COLON,dataType,n1
n1,EPS
output_plist,ID,COLON,type,n2
n2,COMMA,ID,COLON,type,n2
n2,EPS
dataType,INTEGER
dataType,REAL
dataType,BOOLEAN
dataType,ARRAY,SQBO,range_arrays,SQBC,OF,type
range_arrays,index,RANGEOP,index
type,INTEGER
type,REAL
type,BOOLEAN
moduleDef,START,statements,END
statements,statement,statements
statements,EPS
statement,ioStmt
statement,simpleStmt
statement,declareStmt
statement,conditionalStmt
statement,iterativeStmt
ioStmt,GET_VALUE,BO,ID,BC,SEMICOL
ioStmt,PRINT,BO,var,BC,SEMICOL
boolConstt,TRUE
boolConstt,FALSE
var_id_num,ID,whichId
var_id_num,NUM
var_id_num,RNUM
var,var_id_num
var,boolConstt
whichId,SQBO,index,SQBC
whichId,EPS
simpleStmt,assignmentStmt
simpleStmt,moduleReuseStmt
assignmentStmt,ID,whichStmt
whichStmt,lvalueIDStmt
whichStmt,lvalueARRStmt
lvalueIDStmt,ASSIGNOP,expression,SEMICOL
lvalueARRStmt,SQBO,index,SQBC,ASSIGNOP,expression,SEMICOL
index,NUM
index,ID
moduleReuseStmt,optional,USE,MODULE,ID,WITH,PARAMETERS,idList,SEMICOL
optional,SQBO,idList,SQBC,ASSIGNOP
optional,EPS
idList,ID,n3
n3,COMMA,ID,n3
n3,EPS
expression,arithmeticOrBooleanExpr
expression,u
u,unary_op,new_NT
new_NT,BO,arithmeticExpr,BC
new_NT,var_id_num
unary_op,PLUS
unary_op,MINUS
arithmeticOrBooleanExpr,anyTerm,n7
n7,logicalOp,anyTerm,n7
n7,EPS
anyTerm,arithmeticExpr,n8
anyTerm,boolConstt
n8,relationalOp,arithmeticExpr
n8,EPS
arithmeticExpr,term,n4
n4,op1,term,n4
n4,EPS
term,factor,n5
n5,op2,factor,n5
n5,EPS
factor,BO,arithmeticOrBooleanExpr,BC
factor,var_id_num
op1,PLUS
op1,MINUS
op2,MUL
op2,DIV
logicalOp,AND
logicalOp,OR
relationalOp,LT
relationalOp,LE
relationalOp,GT
relationalOp,GE
relationalOp,EQ
relationalOp,NE
declareStmt,DECLARE,idList,COLON,dataType,SEMICOL
conditionalStmt,SWITCH,BO,ID,BC,START,caseStmts,default,END
caseStmts,CASE,value,COLON,statements,BREAK,SEMICOL,n9
n9,CASE,value,COLON,statements,BREAK,SEMICOL,n9
n9,EPS
value,NUM
value,TRUE
value,FALSE
default,DEFAULT,COLON,statements,BREAK,SEMICOL
default,EPS
iterativeStmt,FOR,BO,ID,IN,range,BC,START,statements,END
iterativeStmt,WHILE,BO,arithmeticOrBooleanExpr,BC,START,statements,END
range,NUM,RANGEOP,NUM