Untitled
user_2381398
plain_text
2 years ago
18 kB
4
Indexable
$ bison -d -Wcounterexamples parser.y parser.y: warning: 11 nonterminals useless in grammar [-Wother] parser.y: warning: 30 rules useless in grammar [-Wother] parser.y:178.1-18: warning: nonterminal useless in grammar: arrays_declaration [-Wother] 178 | arrays_declaration: | ^~~~~~~~~~~~~~~~~~ parser.y:217.1-19: warning: nonterminal useless in grammar: function_expression [-Wother] 217 | function_expression: | ^~~~~~~~~~~~~~~~~~~ parser.y:221.1-20: warning: nonterminal useless in grammar: procedure_expression [-Wother] 221 | procedure_expression: | ^~~~~~~~~~~~~~~~~~~~ parser.y:224.1-16: warning: nonterminal useless in grammar: formal_arguments [-Wother] 224 | formal_arguments: | ^~~~~~~~~~~~~~~~ parser.y:230.1-15: warning: nonterminal useless in grammar: formal_argument [-Wother] 230 | formal_argument: IDENTIFIER COLON type | ^~~~~~~~~~~~~~~ parser.y:240.1-16: warning: nonterminal useless in grammar: unary_expression [-Wother] 240 | unary_expression: | ^~~~~~~~~~~~~~~~ parser.y:251.1-25: warning: nonterminal useless in grammar: multiplicative_expression [-Wother] 251 | multiplicative_expression: | ^~~~~~~~~~~~~~~~~~~~~~~~~ parser.y:267.1-18: warning: nonterminal useless in grammar: primary_expression [-Wother] 267 | primary_expression: | ^~~~~~~~~~~~~~~~~~ parser.y:298.1-9: warning: nonterminal useless in grammar: condition [-Wother] 298 | condition: | ^~~~~~~~~ parser.y:304.1-16: warning: nonterminal useless in grammar: simple_condition [-Wother] 304 | simple_condition: | ^~~~~~~~~~~~~~~~ parser.y:310.1-10: warning: nonterminal useless in grammar: comparison [-Wother] 310 | comparison: | ^~~~~~~~~~ parser.y: warning: 18 shift/reduce conflicts [-Wconflicts-sr] parser.y: warning: 1 reduce/reduce conflict [-Wconflicts-rr] parser.y: warning: reduce/reduce conflict on token $end [-Wcounterexamples] Example: • First reduce derivation program ↳ 1: ε • Second reduce derivation program ↳ 2: program_units ↳ 5: ε • parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLON type COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 9: • CONST IDENTIFIER COLON type COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 9: CONST IDENTIFIER COLON type COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 10: • CONST IDENTIFIER COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 10: CONST IDENTIFIER COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLON type COLONEQUALS MINUS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 11: • CONST IDENTIFIER COLON type COLONEQUALS MINUS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 11: CONST IDENTIFIER COLON type COLONEQUALS MINUS constant_exp parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLONEQUALS MINUS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 12: • CONST IDENTIFIER COLONEQUALS MINUS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 12: CONST IDENTIFIER COLONEQUALS MINUS constant_exp parser.y: warning: shift/reduce conflict on token VAR [-Wcounterexamples] Example: • VAR IDENTIFIER COLON type COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 7: variables_declaration ↳ 13: • VAR IDENTIFIER COLON type COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 7: variables_declaration ↳ 13: VAR IDENTIFIER COLON type COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token VAR [-Wcounterexamples] Example: • VAR IDENTIFIER COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 7: variables_declaration ↳ 14: • VAR IDENTIFIER COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 7: variables_declaration ↳ 14: VAR IDENTIFIER COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token VAR [-Wcounterexamples] Example: • VAR IDENTIFIER COLON type Shift derivation program_units ↳ 3: program_unit ↳ 7: variables_declaration ↳ 15: • VAR IDENTIFIER COLON type Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 7: variables_declaration ↳ 15: VAR IDENTIFIER COLON type parser.y: warning: shift/reduce conflict on token BEGIN_KEYWORD [-Wcounterexamples] Example: • BEGIN_KEYWORD END Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 16: blocks ↳ 18: • BEGIN_KEYWORD program_units END ↳ 18: ε Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 16: blocks ↳ 18: BEGIN_KEYWORD program_units END ↳ 18: ε parser.y: warning: shift/reduce conflict on token IDENTIFIER [-Wcounterexamples] Example: • IDENTIFIER COLONEQUALS expression Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 19: • IDENTIFIER COLONEQUALS expression Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 19: IDENTIFIER COLONEQUALS expression parser.y: warning: shift/reduce conflict on token PUT [-Wcounterexamples] Example: • PUT expression Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 20: • PUT expression Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 20: PUT expression parser.y: warning: shift/reduce conflict on token GET [-Wcounterexamples] Example: • GET IDENTIFIER Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 21: • GET IDENTIFIER Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 21: GET IDENTIFIER parser.y: warning: shift/reduce conflict on token RESULT [-Wcounterexamples] Example: • RESULT expression OR RETURN Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 22: • RESULT expression OR RETURN Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 22: RESULT expression OR RETURN parser.y: warning: shift/reduce conflict on token EXIT [-Wcounterexamples] Example: • EXIT Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 23: • EXIT Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 23: EXIT parser.y: warning: shift/reduce conflict on token EXIT [-Wcounterexamples] Example: • EXIT WHEN bool_expression Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 24: • EXIT WHEN bool_expression Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 24: EXIT WHEN bool_expression parser.y: warning: shift/reduce conflict on token SKIP [-Wcounterexamples] Example: • SKIP Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 25: • SKIP Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 25: SKIP parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLON type COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 9: • CONST IDENTIFIER COLON type COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 9: CONST IDENTIFIER COLON type COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 10: • CONST IDENTIFIER COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 10: CONST IDENTIFIER COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLON type COLONEQUALS MINUS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 11: • CONST IDENTIFIER COLON type COLONEQUALS MINUS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 11: CONST IDENTIFIER COLON type COLONEQUALS MINUS constant_exp parser.y: warning: shift/reduce conflict on token CONST [-Wcounterexamples] Example: • CONST IDENTIFIER COLONEQUALS MINUS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 6: constant_declaration ↳ 12: • CONST IDENTIFIER COLONEQUALS MINUS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 6: constant_declaration ↳ 12: CONST IDENTIFIER COLONEQUALS MINUS constant_exp parser.y: warning: shift/reduce conflict on token VAR [-Wcounterexamples] Example: • VAR IDENTIFIER COLON type COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 7: variables_declaration ↳ 13: • VAR IDENTIFIER COLON type COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 7: variables_declaration ↳ 13: VAR IDENTIFIER COLON type COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token VAR [-Wcounterexamples] Example: • VAR IDENTIFIER COLONEQUALS constant_exp Shift derivation program_units ↳ 3: program_unit ↳ 7: variables_declaration ↳ 14: • VAR IDENTIFIER COLONEQUALS constant_exp Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 7: variables_declaration ↳ 14: VAR IDENTIFIER COLONEQUALS constant_exp parser.y: warning: shift/reduce conflict on token VAR [-Wcounterexamples] Example: • VAR IDENTIFIER COLON type Shift derivation program_units ↳ 3: program_unit ↳ 7: variables_declaration ↳ 15: • VAR IDENTIFIER COLON type Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 7: variables_declaration ↳ 15: VAR IDENTIFIER COLON type parser.y: warning: shift/reduce conflict on token BEGIN_KEYWORD [-Wcounterexamples] Example: • BEGIN_KEYWORD END Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 16: blocks ↳ 18: • BEGIN_KEYWORD program_units END ↳ 18: ε Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 16: blocks ↳ 18: BEGIN_KEYWORD program_units END ↳ 18: ε parser.y: warning: shift/reduce conflict on token IDENTIFIER [-Wcounterexamples] Example: • IDENTIFIER COLONEQUALS expression Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 19: • IDENTIFIER COLONEQUALS expression Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 19: IDENTIFIER COLONEQUALS expression parser.y: warning: shift/reduce conflict on token PUT [-Wcounterexamples] Example: • PUT expression Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 20: • PUT expression Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 20: PUT expression parser.y: warning: shift/reduce conflict on token GET [-Wcounterexamples] Example: • GET IDENTIFIER Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 21: • GET IDENTIFIER Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 21: GET IDENTIFIER parser.y: warning: shift/reduce conflict on token RESULT [-Wcounterexamples] Example: • RESULT expression OR RETURN Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 22: • RESULT expression OR RETURN Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 22: RESULT expression OR RETURN parser.y: warning: shift/reduce conflict on token EXIT [-Wcounterexamples] Example: • EXIT Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 23: • EXIT Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 23: EXIT parser.y: warning: shift/reduce conflict on token EXIT [-Wcounterexamples] Example: • EXIT WHEN bool_expression Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 24: • EXIT WHEN bool_expression Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 24: EXIT WHEN bool_expression parser.y: warning: shift/reduce conflict on token SKIP [-Wcounterexamples] Example: • SKIP Shift derivation program_units ↳ 3: program_unit ↳ 8: statements ↳ 17: simple ↳ 25: • SKIP Reduce derivation program_units ↳ 4: program_units program_unit ↳ 5: ε • ↳ 8: statements ↳ 17: simple ↳ 25: SKIP
Editor is loading...