forked from JeffreyChow19/TubesTBFO
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgrammar.txt
More file actions
337 lines (337 loc) · 9.98 KB
/
Copy pathgrammar.txt
File metadata and controls
337 lines (337 loc) · 9.98 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
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
S -> IMPORT_STMT S
S -> BODY
BODY -> EXPORT_STMT
BODY -> EXPORT_DEFAULT_STMT
IMPORT_STMT -> IMPORT_STMT IMPORT_STMT
IMPORT_STMT -> IMPORT VARIOUS_VARIABLE FROM STRING TK
IMPORT_STMT -> IMPORT HEAD_OBJECT FROM STRING TK
IMPORT_STMT -> IMPORT MUL AS ID FROM STRING TK
IMPORT_STMT -> IMPORT ID FROM STRING TK
IMPORT_STMT -> IMPORT STRING TK
EXPORT_STMT -> EXPORT TYPE_STMT TK
EXPORT_STMT -> EXPORT FUNCTION MUL FUNCTION_CALL TK
EXPORT_STMT -> EXPORT FUNCTION FUNCTION_CALL TK
EXPORT_STMT -> EXPORT HEAD_OBJECT TK
EXPORT_STMT -> EXPORT MUL FROM STRING TK
EXPORT_STMT -> EXPORT MUL AS ID FROM STRING TK
EXPORT_STMT -> EXPORT HEAD_OBJECT FROM STRING TK
EXPORT_DEFAULT_STMT -> EXPORT DEFAULT ID TK
EXPORT_DEFAULT_STMT -> EXPORT DEFAULT FUNCTION FUNCTION_CALL TK
EXPORT_DEFAULT_STMT -> EXPORT DEFAULT FUNCTION MUL FUNCTION_CALL TK
EXPORT_DEFAULT_STMT -> EXPORT DEFAULT BODY_OBJECT TK
BODY -> FUNCTION_STMT
BODY -> PART
BODY -> BODY BODY
PART -> TYPE_STMT TK
PART -> ASSIGNMENT TK
PART -> TITIK_STMT TK
PART -> IF_STMT
PART -> WHILE_STMT
PART -> FUNCTION_CALL TK
PART -> BREAK_STMT
PART -> CONTINUE_STMT
PART -> FOR_STMT
PART -> DELETE_STMT
PART -> THROW_STMT
PART -> SWITCH_STMT
PART -> TRY_STMT
PART -> TENARY_STMT TK
PART -> RETURN_STMT
PART -> PART PART
VALUE_BOOLEAN -> ID
VALUE_BOOLEAN -> NULL
VALUE_BOOLEAN -> NUMBER
VALUE_BOOLEAN -> STRING
VALUE_BOOLEAN -> TITIK_STMT
VALUE_BOOLEAN -> EXPR_ARIT
VALUE_BOOLEAN -> BOOL
VALUE_BOOLEAN -> ARRAY_CALL
EXPR_BOOLEAN -> VALUE_BOOLEAN LOGOP VALUE_BOOLEAN
EXPR_BOOLEAN -> VALUE_BOOLEAN
EXPR_BOOLEAN -> ID IN ID
EXPR_BOOLEAN -> ID OF ID
EXPR_BOOLEAN -> ID INSTANCEOF ID
EXPR_BOOLEAN -> NOTB EXPR_BOOLEAN
VARIOUS_EXPR_BOOLEAN -> KBKI VARIOUS_EXPR_BOOLEAN KBKA
VARIOUS_EXPR_BOOLEAN -> EXPR_BOOLEAN
VARIOUS_EXPR_BOOLEAN -> KBKI EXPR_BOOLEAN KBKA
VARIOUS_EXPR_BOOLEAN -> VARIOUS_EXPR_BOOLEAN LOGOPB VARIOUS_EXPR_BOOLEAN
LOGOP -> ISSTRICTEQ
ISSTRICTEQ -> isstricteq
LOGOP -> NOTSTRICTEQ
NOTSTRICTEQ -> notstricteq
LOGOP -> ISEQ
ISEQ -> iseq
LOGOP -> ISNEQ
ISNEQ -> isneq
LOGOP -> LEQ
LEQ -> leq
LOGOP -> l
L -> l
LOGOP -> GEQ
GEQ -> geq
LOGOP -> G
G -> g
LOGOPB -> AND
AND -> and
LOGOPB -> OR
OR -> or
NOTB -> notb
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI PART KKKA
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI PART KKKA ELSE_STMT
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI PART KKKA ELSEIF_STMT
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI PART KKKA ELSEIF_STMT ELSE_STMT
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI KKKA
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI KKKA ELSE_STMT
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI KKKA ELSEIF_STMT
IF_STMT -> IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI KKKA ELSEIF_STMT ELSE_STMT
ELSE_STMT -> ELSE KKKI PART KKKA
ELSE_STMT -> ELSE KKKI KKKA
ELSEIF_STMT -> ELSEIF_STMT ELSEIF_STMT
ELSEIF_STMT -> ELSE IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI KKKA
ELSEIF_STMT -> ELSE IF KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI PART KKKA
IF -> if
ELSE -> else
WHILE_STMT -> WHILE KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI PART KKKA
WHILE_STMT -> WHILE KBKI VARIOUS_EXPR_BOOLEAN KBKA KKKI KKKA
FUNCTION_STMT -> FUNCTION ID KBKI VARIOUS_VARIABLE_FUNCTION KBKA KKKI PART RETURN_STMT KKKA
FUNCTION_STMT -> FUNCTION ID KBKI KBKA PART RETURN_STMT KKKA
FUNCTION_STMT -> FUNCTION ID KBKI VARIOUS_VARIABLE_FUNCTION KBKA KKKI RETURN_STMT KKKA
FUNCTION_STMT -> FUNCTION ID KBKI KBKA KKKI RETURN_STMT KKKA
FUNCTION_STMT -> FUNCTION ID KBKI VARIOUS_VARIABLE_FUNCTION KBKA KKKI PART KKKA
FUNCTION_STMT -> FUNCTION ID KBKI KBKA KKKI PART KKKA
FUNCTION_STMT -> FUNCTION ID KBKI VARIOUS_VARIABLE_FUNCTION KBKA KKKI KKKA
FUNCTION_STMT -> FUNCTION ID KBKI KBKA KKKI KKKA
RETURN_STMT -> RETURN VARIOUS_VARIABLE_BODY TK
FOR_STMT -> FOR KBKI FOR_PARAM KBKA KKKI PART KKKA
FOR_STMT -> FOR KBKI FOR_PARAM KBKA KKKI KKKA
FOR_STMT -> FOR KBKI FOR_PARAM KBKA KKKI PART KKKA ELSE_STMT
FOR_STMT -> FOR KBKI FOR_PARAM KBKA KKKI KKKA ELSE_STMT
DELETE_STMT -> DELETE ID TK
DELETE_STMT -> DELETE TITIK_STMT TK
THROW_STMT -> THROW THROW_VALUE TK
THROW_STMT -> THROW KBKI THROW_VALUE KBKA TK
THROW -> throw
THROW_VALUE -> STRING
THROW_VALUE -> NUMBER
THROW_VALUE -> BOOL
THROW_VALUE -> FUNCTION_CALL
THROW_VALUE -> TITIK_STMT
SWITCH_STMT -> SWITCH KBKI SWITCH_PARAM KBKA KKKI SWITCH_BODY DEFAULT_STMT KKKA
SWITCH_STMT -> SWITCH KBKI SWITCH_PARAM KBKA KKKI SWITCH_BODY KKKA
SWITCH_STMT -> SWITCH KBKI SWITCH_PARAM KBKA KKKI KKKA
SWITCH_BODY -> SWITCH_BODY SWITCH_BODY
SWITCH_BODY -> CASE_STMT TD CASE_BODY
SWITCH_PARAM -> ID
SWITCH_PARAM -> TITIK_STMT
SWITCH_PARAM -> VARIOUS_EXPR_BOOLEAN
CASE_STMT -> CASE STRING
CASE_STMT -> CASE NUMBER
CASE_STMT -> CASE ID
CASE_STMT -> CASE BOOL
CASE_BODY -> PART BREAK_STMT
CASE_BODY -> PART
CASE_BODY -> KKKI PART BREAK_STMT KKKA
CASE_BODY -> KKKI PART KKKA
DEFAULT_STMT -> DEFAULT TD PART
SWITCH -> switch
CASE -> case
DELETE -> delete
FOR -> for
FOR_PARAM -> TYPE_FOR TK VARIOUS_EXPR_BOOLEAN TK ID INCDEC
FOR_PARAM -> TYPE_FOR TK TK ID INCDEC
FOR_PARAM -> TYPE_FOR TK VARIOUS_EXPR_BOOLEAN TK INCDEC ID
FOR_PARAM -> TYPE_FOR TK TK IINCDEC ID
FOR_PARAM -> TYPE_FOR TK VARIOUS_EXPR_BOOLEAN TK
FOR_PARAM -> TYPE_FOR TK TK
TYPE_FOR -> LET ID IS NUMBER
TYPE_FOR -> LET ID IS ID
TYPE_FOR -> LET ID IS FUNCTION_CALL
TYPE_FOR -> LET ID IS ARRAY_CALL
TYPE_FOR -> VAR ID IS NUMBER
TYPE_FOR -> VAR ID IS ID
TYPE_FOR -> VAR ID IS FUNCTION_CALL
TYPE_FOR -> VAR ID IS ARRAY_CALL
TYPE_FOR -> ID IS NUMBER
TYPE_FOR -> ID IS ID
TYPE_FOR -> ID IS FUNCTION_CALL
TYPE_FOR -> ID IS ARRAY_CALL
FOR_PARAM -> ID IN ID
IN -> in
FOR_PARAM -> ID OF ID
OF -> of
FOR_PARAM -> ID INSTANCEOF ID
INSTANCEOF -> instanceof
RETURN -> return
CONTINUE_STMT -> CONTINUE TK
CONTINUE -> continue
BREAK_STMT -> BREAK TK
BREAK -> break
WHILE -> while
TRY_STMT -> TRY KKKI PART KKKA CATCH KBKI CATCH_PARAM KBKA KKKI PART KKKA FINALLY KKKI PART KKKA
TRY_STMT -> TRY KKKI PART KKKA CATCH KBKI CATCH_PARAM KBKA KKKI PART KKKA
TRY_STMT -> TRY KKKI PART KKKA FINALLY KKKI PART KKKA
CATCH_PARAM -> ID
TRY -> try
CATCH -> catch
FINALLY -> finally
TITIK_STMT -> TITIK_STMT TITIK TITIK_STMT
TITIK_STMT -> TITIK_VALUE
TITIK_VALUE -> ID
TITIK_VALUE -> FUNCTION_CALL
TITIK_VALUE -> ARRAY_CALL
ARRAY_CALL -> ID KSKI NUMBER KSKA
ARRAY_CALL -> ID KSKI ID KSKA
ARRAY_CALL -> ID KSKI EXPR_ARIT KSKA
FUNCTION -> function
FUNCTION_CALL -> ID KBKI KBKA
FUNCTION_CALL -> ID KBKI EXPR_ARIT KBKA
FUNCTION_CALL -> ID KBKI FUNCTION_PARAM KBKA
FUNCTION_PARAM -> VARIOUS_VARIABLE_FUNCTION
VARIOUS_VARIABLE_FUNCTION -> ID
VARIOUS_VARIABLE_FUNCTION -> STRING
VARIOUS_VARIABLE_FUNCTION -> NUMBER
VARIOUS_VARIABLE_FUNCTION -> TITIK_STMT
VARIOUS_VARIABLE_FUNCTION -> ID IS ID
VARIOUS_VARIABLE_FUNCTION -> ID IS STRING
VARIOUS_VARIABLE_FUNCTION -> ID IS NUMBER
VARIOUS_VARIABLE_FUNCTION -> ID IS BOOL
VARIOUS_VARIABLE_FUNCTION -> VARIOUS_VARIABLE_FUNCTION KM VARIOUS_VARIABLE_FUNCTION
TYPE_STMT -> LET VARIOUS_VARIABLE_BODY
TYPE_STMT -> VAR VARIOUS_VARIABLE_BODY
TYPE_STMT -> CONST VARIOUS_VARIABLE_BODY
TYPE_STMT -> LET ASSIGNMENT
TYPE_STMT -> VAR ASSIGNMENT
TYPE_STMT -> CONST ASSIGNMENT
BODY_OBJECT -> KKKI VARIOUS_VARIABLE_BODY KKKA
BODY_OBJECT -> KKKI KKKA
BODY_ARRAY -> KSKI VARIOUS_VARIABLE_BODY KSKA
BODY_ARRAY -> KSKI KSKA
VARIOUS_VARIABLE_BODY -> VALUE
VARIOUS_VARIABLE_BODY -> VARIOUS_VARIABLE_BODY KM VARIOUS_VARIABLE_BODY
VALUE -> ID
VALUE -> NUMBER
VALUE -> STRING
VALUE -> ASSIGNMENT
ASSIGN_VARIABLE -> ID
ASSIGN_VARIABLE -> ARRAY_CALL
ASSIGN_VARIABLE -> TITIK_STMT
ASSIGNMENT -> ASSIGN_VARIABLE IS FUNCTION_CALL
ASSIGNMENT -> ASSIGN_VARIABLE IS BOOL
ASSIGNMENT -> ASSIGN_VARIABLE IS NULL
ASSIGNMENT -> ASSIGN_VARIABLE IS TITIK_STMT
NULL -> null
ASSIGNMENT -> ASSIGN_VARIABLE IS BODY_OBJECT
ASSIGNMENT -> ASSIGN_VARIABLE IS BODY_ARRAY
ASSIGNMENT -> ASSIGN_VARIABLE IS ARRAY_CALL
VALUE -> ID TD STRING
VALUE -> ID TD BOOL
VALUE -> ID TD BODY_OBJECT
VALUE -> ID TD BODY_ARRAY
TD -> td
VALUE -> ID TD EXPR_ARIT_VALUE
ASSIGNMENT -> ASSIGN_VARIABLE IS ID
ASSIGNMENT -> ASSIGN_VARIABLE IS VARIOUS_EXPR_BOOLEAN
ASSIGNMENT -> ASSIGN_VARIABLE IS EXPR_ARIT_VALUE
ASSIGNMENT -> ASSIGN_VARIABLE IS EXPR_ARIT
ASSIGNMENT -> ASSIGN_VARIABLE IS STRING_ARIT
ASSIGNMENT -> ASSIGN_VARIABLE IS BODY_OBJECT
ASSIGNMENT -> ASSIGN_VARIABLE INCDEC
ASSIGNMENT -> INCDEC ASSIGN_VARIABLE
ASSIGNMENT -> PMEQ_EXPR
ASSIGNMENT -> ASSIGN_VARIABLE IS KBKI PMEQ_EXPR KBKA
ASSIGNMENT -> EXPR_ARIT
ASSIGNMENT -> TENARY_STMT
ASSIGNMENT -> ASSIGN_VARIABLE IS TENARY_STMT
PMEQ_EXPR -> ASSIGN_VARIABLE PMEQ PMEQ_VALUE
PMEQ_VALUE -> ID
PMEQ_VALUE -> NUMBER
PMEQ_VALUE -> STRING
PMEQ_VALUE -> FUNCTION_CALL
PMEQ_VALUE -> ARRAY_CALL
PMEQ_VALUE -> TITIK_STMT
PMEQ -> PEQ
PEQ -> peq
PMEQ -> MEQ
MEQ -> meq
PMEQ -> MULEQ
MULEQ -> muleq
PMEQ -> DIVEQ
DIVEQ -> diveq
INCDEC -> INC
INCDEC -> DEC
INC -> inc
DEC -> dec
EXPR_ARIT -> EXPR_ARIT ARIT_OPERATOR EXPR_ARIT
EXPR_ARIT -> EXPR_ARIT_VALUE
EXPR_ARIT_VALUE -> ID
EXPR_ARIT_VALUE -> NUMBER
EXPR_ARIT_VALUE -> SUB NUMBER
EXPR_ARIT_VALUE -> KBKI SUB NUMBER KBKA
EXPR_ARIT_VALUE -> STRING
EXPR_ARIT_VALUE -> FUNCTION_CALL
EXPR_ARIT_VALUE -> ARRAY_CALL
EXPR_ARIT_VALUE -> TITIK_STMT
EXPR_ARIT_VALUE -> KBKI EXPR_ARIT KBKA
EXPR_ARIT_VALUE -> NOTBIT EXPR_ARIT_VALUE
TENARY_STMT -> VARIOUS_EXPR_BOOLEAN QB TENARY_PART TD TENARY_PART
TENARY_PART -> ASSIGNMENT
TENARY_PART -> ASSIGN_VARIABLE
TENARY_PART -> BOOL
QB -> qb
ARIT_OPERATOR -> POW
POW -> pow
ARIT_OPERATOR -> XOR
XOR -> xor
ARIT_OPERATOR -> ANDB
ANDB -> andb
ARIT_OPERATOR -> ORB
ORB -> orb
ARIT_OPERATOR -> SUM
SUM -> sum
ARIT_OPERATOR -> SUB
SUB -> sub
ARIT_OPERATOR -> MUL
ARIT_OPERATOR -> DIV
DIV -> div
ARIT_OPERATOR -> MOD
MOD -> mod
HEAD_OBJECT -> KKKI VARIOUS_VARIABLE KKKA
VARIOUS_VARIABLE -> HEAD_VALUE
VARIOUS_VARIABLE -> VARIOUS_VARIABLE KM VARIOUS_VARIABLE
HEAD_VALUE -> ID
HEAD_VALUE -> DEFAULT
HEAD_VALUE -> ID AS ID
HEAD_VALUE -> DEFAULT AS ID
HEAD_VALUE -> STRING AS ID
HEAD_VALUE -> ID AS STRING
HEAD_VALUE -> ID AS DEFAULT
HEAD_VALUE -> HEAD_OBJECT
HEAD_VALUE -> MUL AS ID
DEFAULT -> default
EXPORT -> export
IMPORT -> import
KBKI -> kbki
KBKA -> kbka
KKKA -> kkka
KKKI -> kkki
MUL -> mul
FROM -> from
STRING -> string
AS -> as
ID -> id
TK -> tk
KM -> km
LET -> let
VAR -> var
CONST -> const
BOOL -> TRUE
BOOL -> FALSE
TRUE -> true
FALSE -> false
NUMBER -> number
IS -> is
TD -> td
KSKI -> kski
KSKA -> kska
TITIK -> titik