---
Summary: parser output summmary
Updated: May 2016
git-hash: b7f7cd879a726d7a88adf78704784e08bd62c9dd
---
Summary:
Editted down version of parser.out.

Includes the specific shift/reduce conflicts that currently exist that need resolving.
Also includes the current parser rules (in many cases collapsed down).

----------------

WARNING: 
WARNING: Conflicts:
WARNING: 
----------------
WARNING: shift/reduce conflict for PARENL in state 14 resolved as shift
            state 14

                (49) expression_molecule -> expression_atom .
                (52) expression_atom -> expression_atom . PARENL expr_list PARENR       *THIS vs THAT*
                (53) expression_atom -> expression_atom . PARENL PARENR                 *THAT vs THIS*

              ! shift/reduce conflict for PARENL resolved as shift
                DOT             reduce using rule 49 (expression_molecule -> expression_atom .)
                TIMES           reduce using rule 49 (expression_molecule -> expression_atom .)
                DIVIDE          reduce using rule 49 (expression_molecule -> expression_atom .)

                PARENL          shift and go to state 55
              ! PARENL          [ reduce using rule 49 (expression_molecule -> expression_atom .) ]

----------------
WARNING: shift/reduce conflict for MINUS in state 45 resolved as shift
            state 45

                (39) relational_expression -> expression .
                (41) expression -> expression . PLUS arith_expression
                (42) expression -> expression . MINUS arith_expression                     *THIS*
                (43) expression -> expression . POWER arith_expression

              ! shift/reduce conflict for MINUS resolved as shift
                MINUS           shift and go to state 68
              ! MINUS           [ reduce using rule 39 (relational_expression -> expression .) ]
---------------
WARNING: shift/reduce conflict for MINUS in state 76 resolved as shift
            state 76

                (38) relational_expression -> relational_expression COMPARISON_OPERATOR expression .
                (41) expression -> expression . PLUS arith_expression
                (42) expression -> expression . MINUS arith_expression                     *THIS*
                (43) expression -> expression . POWER arith_expression

              ! shift/reduce conflict for MINUS resolved as shift

                MINUS           shift and go to state 68
              ! MINUS           [ reduce using rule 38 (relational_expression -> relational_expression COMPARISON_OPERATOR expression .) ]
---------------

Grammar

Rule 0     S' -> program
Rule 1     program -> statements
Rule 2     statements -> statement
Rule 3     statements -> statement statements
Rule 4     statement -> assignment_statement
Rule 5     statement -> print_statement
Rule 6     statement -> general_expression
Rule 7     statement -> EOL
Rule 8     statement -> while_statement
Rule 9     statement -> break_statement
Rule 10    statement -> continue_statement
Rule 11    statement -> if_statement
Rule 12    statement -> for_statement
Rule 13    statement -> pass_statement
Rule 14    pass_statement -> PASS
Rule 15    break_statement -> BREAK
Rule 16    continue_statement -> CONTINUE
Rule 17    print_statement -> PRINT expr_list
Rule 18    while_statement -> WHILE general_expression COLON EOL statement_block
Rule 19    if_statement -> IF general_expression COLON EOL statement_block
Rule 20    if_statement -> IF general_expression COLON EOL statement_block extended_if_clauses
Rule 21    extended_if_clauses -> else_clause
Rule 22    extended_if_clauses -> elif_clause
Rule 23    else_clause -> ELSE COLON EOL statement_block
Rule 24    elif_clause -> ELIF general_expression COLON EOL statement_block
Rule 25    elif_clause -> ELIF general_expression COLON EOL statement_block extended_if_clauses
Rule 26    for_statement -> FOR IDENTIFIER IN general_expression COLON EOL statement_block
Rule 27    statement_block -> INDENT statements DEDENT

Rule 28    expr_list -> general_expression
Rule 29    expr_list -> general_expression COMMA expr_list

Rule 30    assignment_statement -> IDENTIFIER ASSIGN general_expression

Rule 31    general_expression -> boolean_expression
Rule 32    boolean_expression -> boolean_and_expression
Rule 33    boolean_expression -> boolean_expression OR boolean_and_expression
Rule 34    boolean_and_expression -> boolean_not_expression
Rule 35    boolean_and_expression -> boolean_and_expression AND boolean_not_expression
Rule 36    boolean_not_expression -> relational_expression
Rule 37    boolean_not_expression -> NOT boolean_not_expression
Rule 38    relational_expression -> relational_expression COMPARISON_OPERATOR expression
Rule 39    relational_expression -> expression
Rule 40    expression -> arith_expression
Rule 41    expression -> expression ( PLUS | MINUS | POWER ) arith_expression

Rule 44    arith_expression -> negatable_expression_atom
Rule 45    arith_expression -> arith_expression ( TIMES | DIVIDE ) negatable_expression_atom

Rule 47    negatable_expression_atom -> MINUS negatable_expression_atom
Rule 48    negatable_expression_atom -> expression_molecule

Rule 49    expression_molecule -> expression_atom
Rule 50    expression_molecule -> bracketed_expression

Rule 51    expression_atom -> value_literal
Rule 52    expression_atom -> expression_atom PARENL expr_list PARENR
Rule 53    expression_atom -> expression_atom PARENL PARENR
Rule 54    bracketed_expression -> PARENL general_expression PARENR
Rule 55    value_literal -> number

Rule 56    number -> NUMBER | FLOAT | HEX | OCTAL | BINARY | SIGNEDLONG | UNSIGNEDLONG

Rule 63    value_literal -> STRING | CHARACTER | BOOLEAN | identifiable

Rule 67    identifiable -> IDENTIFIER
Rule 68    identifiable -> expression_molecule dotexpression
Rule 69    dotexpression -> DOT IDENTIFIER



