loom

Форк
0
/
test-grammatize.out 
451 строка · 16.5 Кб
1
Тесты грамматики =================================
2
Метод разбора LR(1) ------------------------------
3
--- test/source/grammar/fuze/book-bad-01.fuze :
4
man R;
5

6
E   = E "+" T | E
7
    ;
8
T   = T "*" F | F
9
    ;
10
F   = "(" E ")" | ID
11
    ;
12
--- grammatize :
13
Ошибка: Irrelevant symbol 'R'
14
Позиция разбора: test/source/grammar/fuze/book-bad-01.fuze:1:5[1,6]
15
Синтаксический анализ описания грамматики 'test/source/grammar/fuze/book-bad-01.fuze' выявил ошибки
16
--- test/source/grammar/fuze/book-bad-02.fuze :
17
main R;
18

19
E   = E "+" T | E
20
    ;
21
T   = T "*" F | F
22
    ;
23
F   = "(" E ")" | ID
24
    ;
25
--- grammatize :
26
Ошибка: Не удалось извлечь правила грамматики 'book-bad-02'
27
Позиция разбора: test/source/grammar/fuze/book-bad-02.fuze:1:6[1,7]
28
При построении грамматики 'test/source/grammar/fuze/book-bad-02.fuze' методом LR1 возникли ошибки
29
--- test/source/grammar/fuze/book-bad-03.fuze :
30
E   = E "+" T | 
31
    ;
32
T   = T "*" F | F
33
    ;
34
F   = "(" E ")" | ID
35
    ;
36
--- grammatize :
37
Ошибка: The right side of the rule cannot be empty
38
Позиция разбора: test/source/grammar/fuze/book-bad-03.fuze:1:1[1,2]
39
Ошибка: Нетерминал 'T' не имеет продукции для грамматики 'book-bad-03'
40
Позиция разбора: test/source/grammar/fuze/book-bad-03.fuze:1:13[1,14]
41
При построении грамматики 'test/source/grammar/fuze/book-bad-03.fuze' методом LR1 возникли ошибки
42
--- test/source/grammar/fuze/book-bad-04.fuze :
43
E   = E "+" T | T
44
    ;
45
T   = T "*" F | F
46
    ;
47
F   = "(" E ")" | id
48
    ;
49
--- grammatize :
50
Ошибка: Нетерминал 'id' не имеет продукции для грамматики 'book-bad-04'
51
Позиция разбора: test/source/grammar/fuze/book-bad-04.fuze:5:19[5,21]
52
При построении грамматики 'test/source/grammar/fuze/book-bad-04.fuze' методом LR1 возникли ошибки
53
--- test/source/grammar/fuze/book-bad-05.fuze :
54
E   = E "+" T | E
55
    ;
56
T   = T "*" F | F
57
    ;
58
F   = "(" E ")" | ID
59
    ;
60
--- grammatize :
61
Ошибка: Критическая неоднозначность грамматики 'book-bad-05'. Состояние 1, символ (конец файла) (#0). Конфликтуют A0 и R2. 
62
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
63
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 1, символ '+' (#1). Конфликтуют S2 и R2. Принят R2.
64
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
65
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 9, символ ')' (#4). Конфликтуют S10 и R2. Принят R2.
66
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
67
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 9, символ '+' (#1). Конфликтуют S11 и R2. Принят R2.
68
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
69
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 15, символ ')' (#4). Конфликтуют S10 и R2. Принят R2.
70
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
71
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 15, символ '+' (#1). Конфликтуют S11 и R2. Принят R2.
72
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
73
При построении грамматики 'test/source/grammar/fuze/book-bad-05.fuze' методом LR1 возникли ошибки
74
--- test/source/grammar/fuze/lalr1-01.fuze :
75
// Пример грамматики LALR(1)
76

77
N	= V "=" E
78
	| E
79
	;
80
E	= V 
81
	;
82
V	= "x"
83
	| "*" E 
84
	;
85

86
--- grammatize :
87
Грамматика 'test/source/grammar/fuze/lalr1-01.fuze' построена методом LR1
88
--- test/source/grammar/fuze/lalr1-02.fuze :
89
// Пример грамматики LALR(1)
90

91
S	= A A
92
	;
93
A	= "a" A
94
	| "b" 
95
	;
96

97
--- grammatize :
98
Грамматика 'test/source/grammar/fuze/lalr1-02.fuze' построена методом LR1
99
--- test/source/grammar/fuze/lalr1-03.fuze :
100
/* Пример грамматики LALR(1)
101
https://stackoverflow.com/questions/6480634/examples-of-ll1-lr1-lr0-lalr1-grammars
102

103
A -> C x A | ε
104
B -> x C y | x C
105
C -> x B x | z
106
*/
107

108
A = C "x" A | C "x";
109
B = "x" C "y" | "x" C;
110
C = "x" B "x" | "z";
111
--- grammatize :
112
Грамматика 'test/source/grammar/fuze/lalr1-03.fuze' построена методом LR1
113
--- test/source/grammar/fuze/lr1-01.fuze :
114
// G1
115
// David Pager, Xin Chen 
116
// The Lane Table Method Of Constructing LR(1) Parsers
117
// https://www.researchgate.net/publication/266006409_The_Lane_Table_Method_Of_Constructing_LR1_Parsers
118

119
E 	= "a" X "d"
120
  	| "b" X "c"
121
  	| "b" Y "d"
122
	;
123
X 	= "e" X
124
  	| "e"
125
	;
126
Y 	= "e" Y
127
  	| "e"
128
	;
129
--- grammatize :
130
Грамматика 'test/source/grammar/fuze/lr1-01.fuze' построена методом LR1
131
--- test/source/grammar/fuze/lr1-02.fuze :
132
// G2
133
// David Pager, Xin Chen 
134
// The Lane Table Method Of Constructing LR(1) Parsers
135
// https://www.researchgate.net/publication/266006409_The_Lane_Table_Method_Of_Constructing_LR1_Parsers
136

137
G 	= "x" W "a"
138
  	| "x" V "t"
139
  	| "y" W "b"
140
  	| "y" V "t"
141
  	| "z" W "r"
142
  	| "z" V "b"
143
  	| "u" U X "a"
144
  	| "u" U Y "r"
145
	;
146
W 	= U X C
147
	;
148
V 	= U Y "d"
149
	;
150
X 	= "k" "t" U X P
151
  	| "k" "t"
152
	;
153
Y 	= "k" "t" U Y "u"
154
  	| "k" "t"
155
	;
156
U   = U "k" "t"
157
    | "s"
158
    ;
159
E   = "a"
160
    | "b"
161
    | "c"
162
    | "v"
163
    ;
164
C   = "c"
165
    | "w"
166
    ;
167
P   = "z"
168
    ;
169
--- grammatize :
170
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
171
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
172
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
173
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
174
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
175
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
176
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
177
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
178
Грамматика 'test/source/grammar/fuze/lr1-02.fuze' построена методом LR1
179
--- test/source/grammar/fuze/lr1-03.fuze :
180
/* Пример грамматики LR(1)
181
https://stackoverflow.com/questions/6480634/examples-of-ll1-lr1-lr0-lalr1-grammars
182

183
S’ -> S S
184
S  -> C C
185
C  -> c C | d
186
*/
187

188
S1 = S S ;
189
S  = C C ;
190
C  = "c" C | "d" ;
191
--- grammatize :
192
Грамматика 'test/source/grammar/fuze/lr1-03.fuze' построена методом LR1
193
--- test/source/grammar/fuze/lr1-04.fuze :
194
// Пример неразрешимости в грамматике LALR(1) конфликта, реализуемого LR(1) 
195

196
S	= "a" E "c"
197
	| "a" F "d"
198
	| "b" F "c"
199
	| "b" E "d"
200
	;
201
E	= "e" 
202
	;
203
F	= "e" 
204
	;
205

206
--- grammatize :
207
Грамматика 'test/source/grammar/fuze/lr1-04.fuze' построена методом LR1
208
--- test/source/grammar/fuze/pod-break.fuze :
209
// https://ru.wikipedia.org/wiki/Грамматика,_разбирающая_выражение
210

211
S = "x" S "x" | "x" <;
212
--- grammatize :
213
Грамматика 'test/source/grammar/fuze/pod-break.fuze' построена методом LR1
214
--- test/source/grammar/fuze/slr1-01.fuze :
215
// Пример решения простейшего конфликла в грамматике SLR(1) и LALR(1), неразрешимого в LR(0)
216

217
S	= E
218
	;
219
E	= "1" E 
220
	| "1"
221
	;
222

223
--- grammatize :
224
Грамматика 'test/source/grammar/fuze/slr1-01.fuze' построена методом LR1
225
Метод разбора SLR(0) -----------------------------
226
--- test/source/grammar/fuze/book-bad-01.fuze :
227
man R;
228

229
E   = E "+" T | E
230
    ;
231
T   = T "*" F | F
232
    ;
233
F   = "(" E ")" | ID
234
    ;
235
--- grammatize :
236
Ошибка: Irrelevant symbol 'R'
237
Позиция разбора: test/source/grammar/fuze/book-bad-01.fuze:1:5[1,6]
238
Синтаксический анализ описания грамматики 'test/source/grammar/fuze/book-bad-01.fuze' выявил ошибки
239
--- test/source/grammar/fuze/book-bad-02.fuze :
240
main R;
241

242
E   = E "+" T | E
243
    ;
244
T   = T "*" F | F
245
    ;
246
F   = "(" E ")" | ID
247
    ;
248
--- grammatize :
249
Ошибка: Не удалось извлечь правила грамматики 'book-bad-02'
250
Позиция разбора: test/source/grammar/fuze/book-bad-02.fuze:1:6[1,7]
251
При построении грамматики 'test/source/grammar/fuze/book-bad-02.fuze' методом SLR возникли ошибки
252
--- test/source/grammar/fuze/book-bad-03.fuze :
253
E   = E "+" T | 
254
    ;
255
T   = T "*" F | F
256
    ;
257
F   = "(" E ")" | ID
258
    ;
259
--- grammatize :
260
Ошибка: The right side of the rule cannot be empty
261
Позиция разбора: test/source/grammar/fuze/book-bad-03.fuze:1:1[1,2]
262
Ошибка: Нетерминал 'T' не имеет продукции для грамматики 'book-bad-03'
263
Позиция разбора: test/source/grammar/fuze/book-bad-03.fuze:1:13[1,14]
264
При построении грамматики 'test/source/grammar/fuze/book-bad-03.fuze' методом SLR возникли ошибки
265
--- test/source/grammar/fuze/book-bad-04.fuze :
266
E   = E "+" T | T
267
    ;
268
T   = T "*" F | F
269
    ;
270
F   = "(" E ")" | id
271
    ;
272
--- grammatize :
273
Ошибка: Нетерминал 'id' не имеет продукции для грамматики 'book-bad-04'
274
Позиция разбора: test/source/grammar/fuze/book-bad-04.fuze:5:19[5,21]
275
При построении грамматики 'test/source/grammar/fuze/book-bad-04.fuze' методом SLR возникли ошибки
276
--- test/source/grammar/fuze/book-bad-05.fuze :
277
E   = E "+" T | E
278
    ;
279
T   = T "*" F | F
280
    ;
281
F   = "(" E ")" | ID
282
    ;
283
--- grammatize :
284
Ошибка: Критическая неоднозначность грамматики 'book-bad-05'. Состояние 1, символ (конец файла) (#0). Конфликтуют A0 и R2. 
285
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
286
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 1, символ '+' (#1). Конфликтуют S2 и R2. Принят R2.
287
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
288
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 7, символ '+' (#1). Конфликтуют S2 и R2. Принят R2.
289
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
290
Ошибка: Неоднозначность грамматики 'book-bad-05'. Состояние 7, символ ')' (#4). Конфликтуют S8 и R2. Принят R2.
291
Позиция разбора: test/source/grammar/fuze/book-bad-05.fuze:1:17[1,18]
292
При построении грамматики 'test/source/grammar/fuze/book-bad-05.fuze' методом SLR возникли ошибки
293
--- test/source/grammar/fuze/lalr1-01.fuze :
294
// Пример грамматики LALR(1)
295

296
N	= V "=" E
297
	| E
298
	;
299
E	= V 
300
	;
301
V	= "x"
302
	| "*" E 
303
	;
304

305
--- grammatize :
306
Ошибка: Неоднозначность грамматики 'lalr1-01'. Состояние 2, символ '=' (#1). Конфликтуют S3 и R5. Принят R5.
307
Позиция разбора: test/source/grammar/fuze/lalr1-01.fuze:6:5[6,6]
308
Грамматика 'test/source/grammar/fuze/lalr1-01.fuze' построена методом SLR
309
--- test/source/grammar/fuze/lalr1-02.fuze :
310
// Пример грамматики LALR(1)
311

312
S	= A A
313
	;
314
A	= "a" A
315
	| "b" 
316
	;
317

318
--- grammatize :
319
Грамматика 'test/source/grammar/fuze/lalr1-02.fuze' построена методом SLR
320
--- test/source/grammar/fuze/lalr1-03.fuze :
321
/* Пример грамматики LALR(1)
322
https://stackoverflow.com/questions/6480634/examples-of-ll1-lr1-lr0-lalr1-grammars
323

324
A -> C x A | ε
325
B -> x C y | x C
326
C -> x B x | z
327
*/
328

329
A = C "x" A | C "x";
330
B = "x" C "y" | "x" C;
331
C = "x" B "x" | "z";
332
--- grammatize :
333
Грамматика 'test/source/grammar/fuze/lalr1-03.fuze' построена методом SLR
334
--- test/source/grammar/fuze/lr1-01.fuze :
335
// G1
336
// David Pager, Xin Chen 
337
// The Lane Table Method Of Constructing LR(1) Parsers
338
// https://www.researchgate.net/publication/266006409_The_Lane_Table_Method_Of_Constructing_LR1_Parsers
339

340
E 	= "a" X "d"
341
  	| "b" X "c"
342
  	| "b" Y "d"
343
	;
344
X 	= "e" X
345
  	| "e"
346
	;
347
Y 	= "e" Y
348
  	| "e"
349
	;
350
--- grammatize :
351
Ошибка: Критическая неоднозначность грамматики 'lr1-01'. Состояние 5, символ 'd' (#2). Конфликтуют R5 и R7. 
352
Позиция разбора: test/source/grammar/fuze/lr1-01.fuze:14:6[14,9]
353
При построении грамматики 'test/source/grammar/fuze/lr1-01.fuze' методом SLR возникли ошибки
354
--- test/source/grammar/fuze/lr1-02.fuze :
355
// G2
356
// David Pager, Xin Chen 
357
// The Lane Table Method Of Constructing LR(1) Parsers
358
// https://www.researchgate.net/publication/266006409_The_Lane_Table_Method_Of_Constructing_LR1_Parsers
359

360
G 	= "x" W "a"
361
  	| "x" V "t"
362
  	| "y" W "b"
363
  	| "y" V "t"
364
  	| "z" W "r"
365
  	| "z" V "b"
366
  	| "u" U X "a"
367
  	| "u" U Y "r"
368
	;
369
W 	= U X C
370
	;
371
V 	= U Y "d"
372
	;
373
X 	= "k" "t" U X P
374
  	| "k" "t"
375
	;
376
Y 	= "k" "t" U Y "u"
377
  	| "k" "t"
378
	;
379
U   = U "k" "t"
380
    | "s"
381
    ;
382
E   = "a"
383
    | "b"
384
    | "c"
385
    | "v"
386
    ;
387
C   = "c"
388
    | "w"
389
    ;
390
P   = "z"
391
    ;
392
--- grammatize :
393
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
394
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
395
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
396
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
397
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
398
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
399
Предупреждение: Нетерминал 'E' не используется в грамматике 'lr1-02'
400
Позиция разбора: test/source/grammar/fuze/lr1-02.fuze:28:1[28,2]
401
Грамматика 'test/source/grammar/fuze/lr1-02.fuze' построена методом SLR
402
--- test/source/grammar/fuze/lr1-03.fuze :
403
/* Пример грамматики LR(1)
404
https://stackoverflow.com/questions/6480634/examples-of-ll1-lr1-lr0-lalr1-grammars
405

406
S’ -> S S
407
S  -> C C
408
C  -> c C | d
409
*/
410

411
S1 = S S ;
412
S  = C C ;
413
C  = "c" C | "d" ;
414
--- grammatize :
415
Грамматика 'test/source/grammar/fuze/lr1-03.fuze' построена методом SLR
416
--- test/source/grammar/fuze/lr1-04.fuze :
417
// Пример неразрешимости в грамматике LALR(1) конфликта, реализуемого LR(1) 
418

419
S	= "a" E "c"
420
	| "a" F "d"
421
	| "b" F "c"
422
	| "b" E "d"
423
	;
424
E	= "e" 
425
	;
426
F	= "e" 
427
	;
428

429
--- grammatize :
430
Ошибка: Критическая неоднозначность грамматики 'lr1-04'. Состояние 7, символ 'd' (#3). Конфликтуют R5 и R6. 
431
Позиция разбора: test/source/grammar/fuze/lr1-04.fuze:10:5[10,8]
432
Ошибка: Критическая неоднозначность грамматики 'lr1-04'. Состояние 7, символ 'c' (#2). Конфликтуют R5 и R6. 
433
Позиция разбора: test/source/grammar/fuze/lr1-04.fuze:10:5[10,8]
434
При построении грамматики 'test/source/grammar/fuze/lr1-04.fuze' методом SLR возникли ошибки
435
--- test/source/grammar/fuze/pod-break.fuze :
436
// https://ru.wikipedia.org/wiki/Грамматика,_разбирающая_выражение
437

438
S = "x" S "x" | "x" <;
439
--- grammatize :
440
Грамматика 'test/source/grammar/fuze/pod-break.fuze' построена методом SLR
441
--- test/source/grammar/fuze/slr1-01.fuze :
442
// Пример решения простейшего конфликла в грамматике SLR(1) и LALR(1), неразрешимого в LR(0)
443

444
S	= E
445
	;
446
E	= "1" E 
447
	| "1"
448
	;
449

450
--- grammatize :
451
Грамматика 'test/source/grammar/fuze/slr1-01.fuze' построена методом SLR
452

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.