Created by PLY version 3.11 (http://www.dabeaz.com/ply)

Grammar

Rule 0     S' -> start
Rule 1     start -> program
Rule 2     program -> include_file
Rule 3     program -> line
Rule 4     program -> init
Rule 5     program -> undef
Rule 6     program -> ifdef
Rule 7     program -> require
Rule 8     program -> pragma
Rule 9     program -> defs NEWLINE
Rule 10    program -> define NEWLINE
Rule 11    program -> program include_file
Rule 12    program -> program line
Rule 13    program -> program init
Rule 14    program -> program undef
Rule 15    program -> program ifdef
Rule 16    program -> program require
Rule 17    program -> program pragma
Rule 18    program -> program defs NEWLINE
Rule 19    program -> program define NEWLINE
Rule 20    token -> STRING
Rule 21    token -> TOKEN
Rule 22    token -> CONTINUE
Rule 23    token -> SEPARATOR
Rule 24    token -> NUMBER
Rule 25    include_file -> include NEWLINE program _ENDFILE_
Rule 26    include_file -> include NEWLINE _ENDFILE_
Rule 27    include_file -> include_once NEWLINE _ENDFILE_
Rule 28    include_file -> include_once NEWLINE program _ENDFILE_
Rule 29    include -> INCLUDE STRING
Rule 30    include -> INCLUDE FILENAME
Rule 31    include_once -> INCLUDE ONCE STRING
Rule 32    include_once -> INCLUDE ONCE FILENAME
Rule 33    line -> LINE INTEGER NEWLINE
Rule 34    line -> LINE INTEGER STRING NEWLINE
Rule 35    require -> REQUIRE STRING NEWLINE
Rule 36    init -> INIT ID NEWLINE
Rule 37    init -> INIT STRING NEWLINE
Rule 38    undef -> UNDEF ID
Rule 39    define -> DEFINE ID params defs
Rule 40    params -> <empty>
Rule 41    params -> LP RP
Rule 42    params -> LP paramlist RP
Rule 43    paramlist -> ID
Rule 44    paramlist -> paramlist COMMA ID
Rule 45    pragma -> PRAGMA ID
Rule 46    pragma -> PRAGMA ID EQ ID
Rule 47    pragma -> PRAGMA ID EQ STRING
Rule 48    pragma -> PRAGMA ID EQ INTEGER
Rule 49    pragma -> PRAGMA PUSH LP ID RP
Rule 50    pragma -> PRAGMA POP LP ID RP
Rule 51    ifdef -> if_header NEWLINE program ENDIF
Rule 52    ifdef -> ifdefelsea ifdefelseb ENDIF
Rule 53    ifdefelsea -> if_header NEWLINE program
Rule 54    ifdefelseb -> ELSE NEWLINE program
Rule 55    if_header -> IFDEF ID
Rule 56    if_header -> IFNDEF ID
Rule 57    if_header -> IF expr
Rule 58    expr -> macrocall
Rule 59    expr -> expr NE expr
Rule 60    expr -> expr EQ expr
Rule 61    expr -> expr LT expr
Rule 62    expr -> expr LE expr
Rule 63    expr -> expr GT expr
Rule 64    expr -> expr GE expr
Rule 65    defs -> <empty>
Rule 66    defs -> defs def
Rule 67    def -> token
Rule 68    def -> COMMA
Rule 69    def -> RRP
Rule 70    def -> LLP
Rule 71    def -> macrocall
Rule 72    macrocall -> ID args
Rule 73    args -> <empty>
Rule 74    args -> LLP arglist RRP
Rule 75    arglist -> arglist COMMA arg
Rule 76    arglist -> arg
Rule 77    arg -> <empty>
Rule 78    arg -> argstring
Rule 79    argstring -> token
Rule 80    argstring -> macrocall
Rule 81    argstring -> LLP arglist RRP
Rule 82    argstring -> argstring token
Rule 83    argstring -> argstring macrocall
Rule 84    argstring -> argstring LLP arglist RRP

Terminals, with rules where they appear

COMMA                : 44 68 75
CONTINUE             : 22
DEFINE               : 39
ELSE                 : 54
ENDIF                : 51 52
EQ                   : 46 47 48 60
FILENAME             : 30 32
GE                   : 64
GT                   : 63
ID                   : 36 38 39 43 44 45 46 46 47 48 49 50 55 56 72
IF                   : 57
IFDEF                : 55
IFNDEF               : 56
INCLUDE              : 29 30 31 32
INIT                 : 36 37
INTEGER              : 33 34 48
LE                   : 62
LINE                 : 33 34
LLP                  : 70 74 81 84
LP                   : 41 42 49 50
LT                   : 61
NE                   : 59
NEWLINE              : 9 10 18 19 25 26 27 28 33 34 35 36 37 51 53 54
NUMBER               : 24
ONCE                 : 31 32
POP                  : 50
PRAGMA               : 45 46 47 48 49 50
PUSH                 : 49
REQUIRE              : 35
RP                   : 41 42 49 50
RRP                  : 69 74 81 84
SEPARATOR            : 23
STRING               : 20 29 31 34 35 37 47
TOKEN                : 21
UNDEF                : 38
_ENDFILE_            : 25 26 27 28
error                : 

Nonterminals, with rules where they appear

arg                  : 75 76
arglist              : 74 75 81 84
args                 : 72
argstring            : 78 82 83 84
def                  : 66
define               : 10 19
defs                 : 9 18 39 66
expr                 : 57 59 59 60 60 61 61 62 62 63 63 64 64
if_header            : 51 53
ifdef                : 6 15
ifdefelsea           : 52
ifdefelseb           : 52
include              : 25 26
include_file         : 2 11
include_once         : 27 28
init                 : 4 13
line                 : 3 12
macrocall            : 58 71 80 83
paramlist            : 42 44
params               : 39
pragma               : 8 17
program              : 1 11 12 13 14 15 16 17 18 19 25 28 51 53 54
require              : 7 16
start                : 0
token                : 67 79 82
undef                : 5 14

Parsing method: LALR

state 0

    (0) S' -> . start
    (1) start -> . program
    (2) program -> . include_file
    (3) program -> . line
    (4) program -> . init
    (5) program -> . undef
    (6) program -> . ifdef
    (7) program -> . require
    (8) program -> . pragma
    (9) program -> . defs NEWLINE
    (10) program -> . define NEWLINE
    (11) program -> . program include_file
    (12) program -> . program line
    (13) program -> . program init
    (14) program -> . program undef
    (15) program -> . program ifdef
    (16) program -> . program require
    (17) program -> . program pragma
    (18) program -> . program defs NEWLINE
    (19) program -> . program define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 1
    ifdef                          shift and go to state 12
    if_header                      shift and go to state 3
    include_file                   shift and go to state 5
    program                        shift and go to state 23
    undef                          shift and go to state 21
    line                           shift and go to state 16
    start                          shift and go to state 17
    include_once                   shift and go to state 20
    init                           shift and go to state 7
    define                         shift and go to state 8
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 14
    require                        shift and go to state 24

state 1

    (9) program -> defs . NEWLINE
    (66) defs -> defs . def
    (67) def -> . token
    (68) def -> . COMMA
    (69) def -> . RRP
    (70) def -> . LLP
    (71) def -> . macrocall
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    NEWLINE         shift and go to state 35
    COMMA           shift and go to state 31
    RRP             shift and go to state 27
    LLP             shift and go to state 29
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    def                            shift and go to state 26
    macrocall                      shift and go to state 30
    token                          shift and go to state 37

state 2

    (38) undef -> UNDEF . ID

    ID              shift and go to state 39


state 3

    (51) ifdef -> if_header . NEWLINE program ENDIF
    (53) ifdefelsea -> if_header . NEWLINE program

    NEWLINE         shift and go to state 40


state 4

    (29) include -> INCLUDE . STRING
    (30) include -> INCLUDE . FILENAME
    (31) include_once -> INCLUDE . ONCE STRING
    (32) include_once -> INCLUDE . ONCE FILENAME

    STRING          shift and go to state 42
    FILENAME        shift and go to state 43
    ONCE            shift and go to state 41


state 5

    (2) program -> include_file .

    _ENDFILE_       reduce using rule 2 (program -> include_file .)
    LINE            reduce using rule 2 (program -> include_file .)
    INIT            reduce using rule 2 (program -> include_file .)
    UNDEF           reduce using rule 2 (program -> include_file .)
    REQUIRE         reduce using rule 2 (program -> include_file .)
    PRAGMA          reduce using rule 2 (program -> include_file .)
    DEFINE          reduce using rule 2 (program -> include_file .)
    INCLUDE         reduce using rule 2 (program -> include_file .)
    IFDEF           reduce using rule 2 (program -> include_file .)
    IFNDEF          reduce using rule 2 (program -> include_file .)
    IF              reduce using rule 2 (program -> include_file .)
    NEWLINE         reduce using rule 2 (program -> include_file .)
    COMMA           reduce using rule 2 (program -> include_file .)
    RRP             reduce using rule 2 (program -> include_file .)
    LLP             reduce using rule 2 (program -> include_file .)
    STRING          reduce using rule 2 (program -> include_file .)
    TOKEN           reduce using rule 2 (program -> include_file .)
    CONTINUE        reduce using rule 2 (program -> include_file .)
    SEPARATOR       reduce using rule 2 (program -> include_file .)
    NUMBER          reduce using rule 2 (program -> include_file .)
    ID              reduce using rule 2 (program -> include_file .)
    ENDIF           reduce using rule 2 (program -> include_file .)
    ELSE            reduce using rule 2 (program -> include_file .)
    $end            reduce using rule 2 (program -> include_file .)


state 6

    (35) require -> REQUIRE . STRING NEWLINE

    STRING          shift and go to state 44


state 7

    (4) program -> init .

    _ENDFILE_       reduce using rule 4 (program -> init .)
    LINE            reduce using rule 4 (program -> init .)
    INIT            reduce using rule 4 (program -> init .)
    UNDEF           reduce using rule 4 (program -> init .)
    REQUIRE         reduce using rule 4 (program -> init .)
    PRAGMA          reduce using rule 4 (program -> init .)
    DEFINE          reduce using rule 4 (program -> init .)
    INCLUDE         reduce using rule 4 (program -> init .)
    IFDEF           reduce using rule 4 (program -> init .)
    IFNDEF          reduce using rule 4 (program -> init .)
    IF              reduce using rule 4 (program -> init .)
    NEWLINE         reduce using rule 4 (program -> init .)
    COMMA           reduce using rule 4 (program -> init .)
    RRP             reduce using rule 4 (program -> init .)
    LLP             reduce using rule 4 (program -> init .)
    STRING          reduce using rule 4 (program -> init .)
    TOKEN           reduce using rule 4 (program -> init .)
    CONTINUE        reduce using rule 4 (program -> init .)
    SEPARATOR       reduce using rule 4 (program -> init .)
    NUMBER          reduce using rule 4 (program -> init .)
    ID              reduce using rule 4 (program -> init .)
    ENDIF           reduce using rule 4 (program -> init .)
    ELSE            reduce using rule 4 (program -> init .)
    $end            reduce using rule 4 (program -> init .)


state 8

    (10) program -> define . NEWLINE

    NEWLINE         shift and go to state 45


state 9

    (25) include_file -> include . NEWLINE program _ENDFILE_
    (26) include_file -> include . NEWLINE _ENDFILE_

    NEWLINE         shift and go to state 46


state 10

    (52) ifdef -> ifdefelsea . ifdefelseb ENDIF
    (54) ifdefelseb -> . ELSE NEWLINE program

    ELSE            shift and go to state 47

    ifdefelseb                     shift and go to state 48

state 11

    (57) if_header -> IF . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 50

state 12

    (6) program -> ifdef .

    _ENDFILE_       reduce using rule 6 (program -> ifdef .)
    LINE            reduce using rule 6 (program -> ifdef .)
    INIT            reduce using rule 6 (program -> ifdef .)
    UNDEF           reduce using rule 6 (program -> ifdef .)
    REQUIRE         reduce using rule 6 (program -> ifdef .)
    PRAGMA          reduce using rule 6 (program -> ifdef .)
    DEFINE          reduce using rule 6 (program -> ifdef .)
    INCLUDE         reduce using rule 6 (program -> ifdef .)
    IFDEF           reduce using rule 6 (program -> ifdef .)
    IFNDEF          reduce using rule 6 (program -> ifdef .)
    IF              reduce using rule 6 (program -> ifdef .)
    NEWLINE         reduce using rule 6 (program -> ifdef .)
    COMMA           reduce using rule 6 (program -> ifdef .)
    RRP             reduce using rule 6 (program -> ifdef .)
    LLP             reduce using rule 6 (program -> ifdef .)
    STRING          reduce using rule 6 (program -> ifdef .)
    TOKEN           reduce using rule 6 (program -> ifdef .)
    CONTINUE        reduce using rule 6 (program -> ifdef .)
    SEPARATOR       reduce using rule 6 (program -> ifdef .)
    NUMBER          reduce using rule 6 (program -> ifdef .)
    ID              reduce using rule 6 (program -> ifdef .)
    ENDIF           reduce using rule 6 (program -> ifdef .)
    ELSE            reduce using rule 6 (program -> ifdef .)
    $end            reduce using rule 6 (program -> ifdef .)


state 13

    (55) if_header -> IFDEF . ID

    ID              shift and go to state 51


state 14

    (8) program -> pragma .

    _ENDFILE_       reduce using rule 8 (program -> pragma .)
    LINE            reduce using rule 8 (program -> pragma .)
    INIT            reduce using rule 8 (program -> pragma .)
    UNDEF           reduce using rule 8 (program -> pragma .)
    REQUIRE         reduce using rule 8 (program -> pragma .)
    PRAGMA          reduce using rule 8 (program -> pragma .)
    DEFINE          reduce using rule 8 (program -> pragma .)
    INCLUDE         reduce using rule 8 (program -> pragma .)
    IFDEF           reduce using rule 8 (program -> pragma .)
    IFNDEF          reduce using rule 8 (program -> pragma .)
    IF              reduce using rule 8 (program -> pragma .)
    NEWLINE         reduce using rule 8 (program -> pragma .)
    COMMA           reduce using rule 8 (program -> pragma .)
    RRP             reduce using rule 8 (program -> pragma .)
    LLP             reduce using rule 8 (program -> pragma .)
    STRING          reduce using rule 8 (program -> pragma .)
    TOKEN           reduce using rule 8 (program -> pragma .)
    CONTINUE        reduce using rule 8 (program -> pragma .)
    SEPARATOR       reduce using rule 8 (program -> pragma .)
    NUMBER          reduce using rule 8 (program -> pragma .)
    ID              reduce using rule 8 (program -> pragma .)
    ENDIF           reduce using rule 8 (program -> pragma .)
    ELSE            reduce using rule 8 (program -> pragma .)
    $end            reduce using rule 8 (program -> pragma .)


state 15

    (56) if_header -> IFNDEF . ID

    ID              shift and go to state 52


state 16

    (3) program -> line .

    _ENDFILE_       reduce using rule 3 (program -> line .)
    LINE            reduce using rule 3 (program -> line .)
    INIT            reduce using rule 3 (program -> line .)
    UNDEF           reduce using rule 3 (program -> line .)
    REQUIRE         reduce using rule 3 (program -> line .)
    PRAGMA          reduce using rule 3 (program -> line .)
    DEFINE          reduce using rule 3 (program -> line .)
    INCLUDE         reduce using rule 3 (program -> line .)
    IFDEF           reduce using rule 3 (program -> line .)
    IFNDEF          reduce using rule 3 (program -> line .)
    IF              reduce using rule 3 (program -> line .)
    NEWLINE         reduce using rule 3 (program -> line .)
    COMMA           reduce using rule 3 (program -> line .)
    RRP             reduce using rule 3 (program -> line .)
    LLP             reduce using rule 3 (program -> line .)
    STRING          reduce using rule 3 (program -> line .)
    TOKEN           reduce using rule 3 (program -> line .)
    CONTINUE        reduce using rule 3 (program -> line .)
    SEPARATOR       reduce using rule 3 (program -> line .)
    NUMBER          reduce using rule 3 (program -> line .)
    ID              reduce using rule 3 (program -> line .)
    ENDIF           reduce using rule 3 (program -> line .)
    ELSE            reduce using rule 3 (program -> line .)
    $end            reduce using rule 3 (program -> line .)


state 17

    (0) S' -> start .



state 18

    (33) line -> LINE . INTEGER NEWLINE
    (34) line -> LINE . INTEGER STRING NEWLINE

    INTEGER         shift and go to state 53


state 19

    (39) define -> DEFINE . ID params defs

    ID              shift and go to state 54


state 20

    (27) include_file -> include_once . NEWLINE _ENDFILE_
    (28) include_file -> include_once . NEWLINE program _ENDFILE_

    NEWLINE         shift and go to state 55


state 21

    (5) program -> undef .

    _ENDFILE_       reduce using rule 5 (program -> undef .)
    LINE            reduce using rule 5 (program -> undef .)
    INIT            reduce using rule 5 (program -> undef .)
    UNDEF           reduce using rule 5 (program -> undef .)
    REQUIRE         reduce using rule 5 (program -> undef .)
    PRAGMA          reduce using rule 5 (program -> undef .)
    DEFINE          reduce using rule 5 (program -> undef .)
    INCLUDE         reduce using rule 5 (program -> undef .)
    IFDEF           reduce using rule 5 (program -> undef .)
    IFNDEF          reduce using rule 5 (program -> undef .)
    IF              reduce using rule 5 (program -> undef .)
    NEWLINE         reduce using rule 5 (program -> undef .)
    COMMA           reduce using rule 5 (program -> undef .)
    RRP             reduce using rule 5 (program -> undef .)
    LLP             reduce using rule 5 (program -> undef .)
    STRING          reduce using rule 5 (program -> undef .)
    TOKEN           reduce using rule 5 (program -> undef .)
    CONTINUE        reduce using rule 5 (program -> undef .)
    SEPARATOR       reduce using rule 5 (program -> undef .)
    NUMBER          reduce using rule 5 (program -> undef .)
    ID              reduce using rule 5 (program -> undef .)
    ENDIF           reduce using rule 5 (program -> undef .)
    ELSE            reduce using rule 5 (program -> undef .)
    $end            reduce using rule 5 (program -> undef .)


state 22

    (36) init -> INIT . ID NEWLINE
    (37) init -> INIT . STRING NEWLINE

    ID              shift and go to state 57
    STRING          shift and go to state 56


state 23

    (1) start -> program .
    (11) program -> program . include_file
    (12) program -> program . line
    (13) program -> program . init
    (14) program -> program . undef
    (15) program -> program . ifdef
    (16) program -> program . require
    (17) program -> program . pragma
    (18) program -> program . defs NEWLINE
    (19) program -> program . define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    $end            reduce using rule 1 (start -> program .)
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 58
    ifdef                          shift and go to state 62
    if_header                      shift and go to state 3
    include_file                   shift and go to state 59
    init                           shift and go to state 60
    line                           shift and go to state 64
    include_once                   shift and go to state 20
    undef                          shift and go to state 65
    define                         shift and go to state 61
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 63
    require                        shift and go to state 66

state 24

    (7) program -> require .

    _ENDFILE_       reduce using rule 7 (program -> require .)
    LINE            reduce using rule 7 (program -> require .)
    INIT            reduce using rule 7 (program -> require .)
    UNDEF           reduce using rule 7 (program -> require .)
    REQUIRE         reduce using rule 7 (program -> require .)
    PRAGMA          reduce using rule 7 (program -> require .)
    DEFINE          reduce using rule 7 (program -> require .)
    INCLUDE         reduce using rule 7 (program -> require .)
    IFDEF           reduce using rule 7 (program -> require .)
    IFNDEF          reduce using rule 7 (program -> require .)
    IF              reduce using rule 7 (program -> require .)
    NEWLINE         reduce using rule 7 (program -> require .)
    COMMA           reduce using rule 7 (program -> require .)
    RRP             reduce using rule 7 (program -> require .)
    LLP             reduce using rule 7 (program -> require .)
    STRING          reduce using rule 7 (program -> require .)
    TOKEN           reduce using rule 7 (program -> require .)
    CONTINUE        reduce using rule 7 (program -> require .)
    SEPARATOR       reduce using rule 7 (program -> require .)
    NUMBER          reduce using rule 7 (program -> require .)
    ID              reduce using rule 7 (program -> require .)
    ENDIF           reduce using rule 7 (program -> require .)
    ELSE            reduce using rule 7 (program -> require .)
    $end            reduce using rule 7 (program -> require .)


state 25

    (45) pragma -> PRAGMA . ID
    (46) pragma -> PRAGMA . ID EQ ID
    (47) pragma -> PRAGMA . ID EQ STRING
    (48) pragma -> PRAGMA . ID EQ INTEGER
    (49) pragma -> PRAGMA . PUSH LP ID RP
    (50) pragma -> PRAGMA . POP LP ID RP

    ID              shift and go to state 68
    PUSH            shift and go to state 67
    POP             shift and go to state 69


state 26

    (66) defs -> defs def .

    NEWLINE         reduce using rule 66 (defs -> defs def .)
    COMMA           reduce using rule 66 (defs -> defs def .)
    RRP             reduce using rule 66 (defs -> defs def .)
    LLP             reduce using rule 66 (defs -> defs def .)
    STRING          reduce using rule 66 (defs -> defs def .)
    TOKEN           reduce using rule 66 (defs -> defs def .)
    CONTINUE        reduce using rule 66 (defs -> defs def .)
    SEPARATOR       reduce using rule 66 (defs -> defs def .)
    NUMBER          reduce using rule 66 (defs -> defs def .)
    ID              reduce using rule 66 (defs -> defs def .)


state 27

    (69) def -> RRP .

    COMMA           reduce using rule 69 (def -> RRP .)
    RRP             reduce using rule 69 (def -> RRP .)
    LLP             reduce using rule 69 (def -> RRP .)
    STRING          reduce using rule 69 (def -> RRP .)
    TOKEN           reduce using rule 69 (def -> RRP .)
    CONTINUE        reduce using rule 69 (def -> RRP .)
    SEPARATOR       reduce using rule 69 (def -> RRP .)
    NUMBER          reduce using rule 69 (def -> RRP .)
    ID              reduce using rule 69 (def -> RRP .)
    NEWLINE         reduce using rule 69 (def -> RRP .)


state 28

    (72) macrocall -> ID . args
    (73) args -> .
    (74) args -> . LLP arglist RRP

    NEWLINE         reduce using rule 73 (args -> .)
    COMMA           reduce using rule 73 (args -> .)
    RRP             reduce using rule 73 (args -> .)
    STRING          reduce using rule 73 (args -> .)
    TOKEN           reduce using rule 73 (args -> .)
    CONTINUE        reduce using rule 73 (args -> .)
    SEPARATOR       reduce using rule 73 (args -> .)
    NUMBER          reduce using rule 73 (args -> .)
    ID              reduce using rule 73 (args -> .)
    NE              reduce using rule 73 (args -> .)
    EQ              reduce using rule 73 (args -> .)
    LT              reduce using rule 73 (args -> .)
    LE              reduce using rule 73 (args -> .)
    GT              reduce using rule 73 (args -> .)
    GE              reduce using rule 73 (args -> .)
    LLP             shift and go to state 70

  ! LLP             [ reduce using rule 73 (args -> .) ]

    args                           shift and go to state 71

state 29

    (70) def -> LLP .

    COMMA           reduce using rule 70 (def -> LLP .)
    RRP             reduce using rule 70 (def -> LLP .)
    LLP             reduce using rule 70 (def -> LLP .)
    STRING          reduce using rule 70 (def -> LLP .)
    TOKEN           reduce using rule 70 (def -> LLP .)
    CONTINUE        reduce using rule 70 (def -> LLP .)
    SEPARATOR       reduce using rule 70 (def -> LLP .)
    NUMBER          reduce using rule 70 (def -> LLP .)
    ID              reduce using rule 70 (def -> LLP .)
    NEWLINE         reduce using rule 70 (def -> LLP .)


state 30

    (71) def -> macrocall .

    COMMA           reduce using rule 71 (def -> macrocall .)
    RRP             reduce using rule 71 (def -> macrocall .)
    LLP             reduce using rule 71 (def -> macrocall .)
    STRING          reduce using rule 71 (def -> macrocall .)
    TOKEN           reduce using rule 71 (def -> macrocall .)
    CONTINUE        reduce using rule 71 (def -> macrocall .)
    SEPARATOR       reduce using rule 71 (def -> macrocall .)
    NUMBER          reduce using rule 71 (def -> macrocall .)
    ID              reduce using rule 71 (def -> macrocall .)
    NEWLINE         reduce using rule 71 (def -> macrocall .)


state 31

    (68) def -> COMMA .

    COMMA           reduce using rule 68 (def -> COMMA .)
    RRP             reduce using rule 68 (def -> COMMA .)
    LLP             reduce using rule 68 (def -> COMMA .)
    STRING          reduce using rule 68 (def -> COMMA .)
    TOKEN           reduce using rule 68 (def -> COMMA .)
    CONTINUE        reduce using rule 68 (def -> COMMA .)
    SEPARATOR       reduce using rule 68 (def -> COMMA .)
    NUMBER          reduce using rule 68 (def -> COMMA .)
    ID              reduce using rule 68 (def -> COMMA .)
    NEWLINE         reduce using rule 68 (def -> COMMA .)


state 32

    (24) token -> NUMBER .

    NEWLINE         reduce using rule 24 (token -> NUMBER .)
    COMMA           reduce using rule 24 (token -> NUMBER .)
    RRP             reduce using rule 24 (token -> NUMBER .)
    LLP             reduce using rule 24 (token -> NUMBER .)
    STRING          reduce using rule 24 (token -> NUMBER .)
    TOKEN           reduce using rule 24 (token -> NUMBER .)
    CONTINUE        reduce using rule 24 (token -> NUMBER .)
    SEPARATOR       reduce using rule 24 (token -> NUMBER .)
    NUMBER          reduce using rule 24 (token -> NUMBER .)
    ID              reduce using rule 24 (token -> NUMBER .)


state 33

    (21) token -> TOKEN .

    NEWLINE         reduce using rule 21 (token -> TOKEN .)
    COMMA           reduce using rule 21 (token -> TOKEN .)
    RRP             reduce using rule 21 (token -> TOKEN .)
    LLP             reduce using rule 21 (token -> TOKEN .)
    STRING          reduce using rule 21 (token -> TOKEN .)
    TOKEN           reduce using rule 21 (token -> TOKEN .)
    CONTINUE        reduce using rule 21 (token -> TOKEN .)
    SEPARATOR       reduce using rule 21 (token -> TOKEN .)
    NUMBER          reduce using rule 21 (token -> TOKEN .)
    ID              reduce using rule 21 (token -> TOKEN .)


state 34

    (22) token -> CONTINUE .

    NEWLINE         reduce using rule 22 (token -> CONTINUE .)
    COMMA           reduce using rule 22 (token -> CONTINUE .)
    RRP             reduce using rule 22 (token -> CONTINUE .)
    LLP             reduce using rule 22 (token -> CONTINUE .)
    STRING          reduce using rule 22 (token -> CONTINUE .)
    TOKEN           reduce using rule 22 (token -> CONTINUE .)
    CONTINUE        reduce using rule 22 (token -> CONTINUE .)
    SEPARATOR       reduce using rule 22 (token -> CONTINUE .)
    NUMBER          reduce using rule 22 (token -> CONTINUE .)
    ID              reduce using rule 22 (token -> CONTINUE .)


state 35

    (9) program -> defs NEWLINE .

    _ENDFILE_       reduce using rule 9 (program -> defs NEWLINE .)
    LINE            reduce using rule 9 (program -> defs NEWLINE .)
    INIT            reduce using rule 9 (program -> defs NEWLINE .)
    UNDEF           reduce using rule 9 (program -> defs NEWLINE .)
    REQUIRE         reduce using rule 9 (program -> defs NEWLINE .)
    PRAGMA          reduce using rule 9 (program -> defs NEWLINE .)
    DEFINE          reduce using rule 9 (program -> defs NEWLINE .)
    INCLUDE         reduce using rule 9 (program -> defs NEWLINE .)
    IFDEF           reduce using rule 9 (program -> defs NEWLINE .)
    IFNDEF          reduce using rule 9 (program -> defs NEWLINE .)
    IF              reduce using rule 9 (program -> defs NEWLINE .)
    NEWLINE         reduce using rule 9 (program -> defs NEWLINE .)
    COMMA           reduce using rule 9 (program -> defs NEWLINE .)
    RRP             reduce using rule 9 (program -> defs NEWLINE .)
    LLP             reduce using rule 9 (program -> defs NEWLINE .)
    STRING          reduce using rule 9 (program -> defs NEWLINE .)
    TOKEN           reduce using rule 9 (program -> defs NEWLINE .)
    CONTINUE        reduce using rule 9 (program -> defs NEWLINE .)
    SEPARATOR       reduce using rule 9 (program -> defs NEWLINE .)
    NUMBER          reduce using rule 9 (program -> defs NEWLINE .)
    ID              reduce using rule 9 (program -> defs NEWLINE .)
    ENDIF           reduce using rule 9 (program -> defs NEWLINE .)
    ELSE            reduce using rule 9 (program -> defs NEWLINE .)
    $end            reduce using rule 9 (program -> defs NEWLINE .)


state 36

    (20) token -> STRING .

    NEWLINE         reduce using rule 20 (token -> STRING .)
    COMMA           reduce using rule 20 (token -> STRING .)
    RRP             reduce using rule 20 (token -> STRING .)
    LLP             reduce using rule 20 (token -> STRING .)
    STRING          reduce using rule 20 (token -> STRING .)
    TOKEN           reduce using rule 20 (token -> STRING .)
    CONTINUE        reduce using rule 20 (token -> STRING .)
    SEPARATOR       reduce using rule 20 (token -> STRING .)
    NUMBER          reduce using rule 20 (token -> STRING .)
    ID              reduce using rule 20 (token -> STRING .)


state 37

    (67) def -> token .

    COMMA           reduce using rule 67 (def -> token .)
    RRP             reduce using rule 67 (def -> token .)
    LLP             reduce using rule 67 (def -> token .)
    STRING          reduce using rule 67 (def -> token .)
    TOKEN           reduce using rule 67 (def -> token .)
    CONTINUE        reduce using rule 67 (def -> token .)
    SEPARATOR       reduce using rule 67 (def -> token .)
    NUMBER          reduce using rule 67 (def -> token .)
    ID              reduce using rule 67 (def -> token .)
    NEWLINE         reduce using rule 67 (def -> token .)


state 38

    (23) token -> SEPARATOR .

    NEWLINE         reduce using rule 23 (token -> SEPARATOR .)
    COMMA           reduce using rule 23 (token -> SEPARATOR .)
    RRP             reduce using rule 23 (token -> SEPARATOR .)
    LLP             reduce using rule 23 (token -> SEPARATOR .)
    STRING          reduce using rule 23 (token -> SEPARATOR .)
    TOKEN           reduce using rule 23 (token -> SEPARATOR .)
    CONTINUE        reduce using rule 23 (token -> SEPARATOR .)
    SEPARATOR       reduce using rule 23 (token -> SEPARATOR .)
    NUMBER          reduce using rule 23 (token -> SEPARATOR .)
    ID              reduce using rule 23 (token -> SEPARATOR .)


state 39

    (38) undef -> UNDEF ID .

    ENDIF           reduce using rule 38 (undef -> UNDEF ID .)
    LINE            reduce using rule 38 (undef -> UNDEF ID .)
    INIT            reduce using rule 38 (undef -> UNDEF ID .)
    UNDEF           reduce using rule 38 (undef -> UNDEF ID .)
    REQUIRE         reduce using rule 38 (undef -> UNDEF ID .)
    PRAGMA          reduce using rule 38 (undef -> UNDEF ID .)
    DEFINE          reduce using rule 38 (undef -> UNDEF ID .)
    INCLUDE         reduce using rule 38 (undef -> UNDEF ID .)
    IFDEF           reduce using rule 38 (undef -> UNDEF ID .)
    IFNDEF          reduce using rule 38 (undef -> UNDEF ID .)
    IF              reduce using rule 38 (undef -> UNDEF ID .)
    NEWLINE         reduce using rule 38 (undef -> UNDEF ID .)
    COMMA           reduce using rule 38 (undef -> UNDEF ID .)
    RRP             reduce using rule 38 (undef -> UNDEF ID .)
    LLP             reduce using rule 38 (undef -> UNDEF ID .)
    STRING          reduce using rule 38 (undef -> UNDEF ID .)
    TOKEN           reduce using rule 38 (undef -> UNDEF ID .)
    CONTINUE        reduce using rule 38 (undef -> UNDEF ID .)
    SEPARATOR       reduce using rule 38 (undef -> UNDEF ID .)
    NUMBER          reduce using rule 38 (undef -> UNDEF ID .)
    ID              reduce using rule 38 (undef -> UNDEF ID .)
    ELSE            reduce using rule 38 (undef -> UNDEF ID .)
    _ENDFILE_       reduce using rule 38 (undef -> UNDEF ID .)
    $end            reduce using rule 38 (undef -> UNDEF ID .)


state 40

    (51) ifdef -> if_header NEWLINE . program ENDIF
    (53) ifdefelsea -> if_header NEWLINE . program
    (2) program -> . include_file
    (3) program -> . line
    (4) program -> . init
    (5) program -> . undef
    (6) program -> . ifdef
    (7) program -> . require
    (8) program -> . pragma
    (9) program -> . defs NEWLINE
    (10) program -> . define NEWLINE
    (11) program -> . program include_file
    (12) program -> . program line
    (13) program -> . program init
    (14) program -> . program undef
    (15) program -> . program ifdef
    (16) program -> . program require
    (17) program -> . program pragma
    (18) program -> . program defs NEWLINE
    (19) program -> . program define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 1
    ifdef                          shift and go to state 12
    if_header                      shift and go to state 3
    include_file                   shift and go to state 5
    program                        shift and go to state 72
    undef                          shift and go to state 21
    line                           shift and go to state 16
    include_once                   shift and go to state 20
    init                           shift and go to state 7
    define                         shift and go to state 8
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 14
    require                        shift and go to state 24

state 41

    (31) include_once -> INCLUDE ONCE . STRING
    (32) include_once -> INCLUDE ONCE . FILENAME

    STRING          shift and go to state 73
    FILENAME        shift and go to state 74


state 42

    (29) include -> INCLUDE STRING .

    NEWLINE         reduce using rule 29 (include -> INCLUDE STRING .)


state 43

    (30) include -> INCLUDE FILENAME .

    NEWLINE         reduce using rule 30 (include -> INCLUDE FILENAME .)


state 44

    (35) require -> REQUIRE STRING . NEWLINE

    NEWLINE         shift and go to state 75


state 45

    (10) program -> define NEWLINE .

    _ENDFILE_       reduce using rule 10 (program -> define NEWLINE .)
    LINE            reduce using rule 10 (program -> define NEWLINE .)
    INIT            reduce using rule 10 (program -> define NEWLINE .)
    UNDEF           reduce using rule 10 (program -> define NEWLINE .)
    REQUIRE         reduce using rule 10 (program -> define NEWLINE .)
    PRAGMA          reduce using rule 10 (program -> define NEWLINE .)
    DEFINE          reduce using rule 10 (program -> define NEWLINE .)
    INCLUDE         reduce using rule 10 (program -> define NEWLINE .)
    IFDEF           reduce using rule 10 (program -> define NEWLINE .)
    IFNDEF          reduce using rule 10 (program -> define NEWLINE .)
    IF              reduce using rule 10 (program -> define NEWLINE .)
    NEWLINE         reduce using rule 10 (program -> define NEWLINE .)
    COMMA           reduce using rule 10 (program -> define NEWLINE .)
    RRP             reduce using rule 10 (program -> define NEWLINE .)
    LLP             reduce using rule 10 (program -> define NEWLINE .)
    STRING          reduce using rule 10 (program -> define NEWLINE .)
    TOKEN           reduce using rule 10 (program -> define NEWLINE .)
    CONTINUE        reduce using rule 10 (program -> define NEWLINE .)
    SEPARATOR       reduce using rule 10 (program -> define NEWLINE .)
    NUMBER          reduce using rule 10 (program -> define NEWLINE .)
    ID              reduce using rule 10 (program -> define NEWLINE .)
    ENDIF           reduce using rule 10 (program -> define NEWLINE .)
    ELSE            reduce using rule 10 (program -> define NEWLINE .)
    $end            reduce using rule 10 (program -> define NEWLINE .)


state 46

    (25) include_file -> include NEWLINE . program _ENDFILE_
    (26) include_file -> include NEWLINE . _ENDFILE_
    (2) program -> . include_file
    (3) program -> . line
    (4) program -> . init
    (5) program -> . undef
    (6) program -> . ifdef
    (7) program -> . require
    (8) program -> . pragma
    (9) program -> . defs NEWLINE
    (10) program -> . define NEWLINE
    (11) program -> . program include_file
    (12) program -> . program line
    (13) program -> . program init
    (14) program -> . program undef
    (15) program -> . program ifdef
    (16) program -> . program require
    (17) program -> . program pragma
    (18) program -> . program defs NEWLINE
    (19) program -> . program define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 76
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 1
    ifdef                          shift and go to state 12
    if_header                      shift and go to state 3
    include_file                   shift and go to state 5
    program                        shift and go to state 77
    undef                          shift and go to state 21
    line                           shift and go to state 16
    include_once                   shift and go to state 20
    init                           shift and go to state 7
    define                         shift and go to state 8
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 14
    require                        shift and go to state 24

state 47

    (54) ifdefelseb -> ELSE . NEWLINE program

    NEWLINE         shift and go to state 78


state 48

    (52) ifdef -> ifdefelsea ifdefelseb . ENDIF

    ENDIF           shift and go to state 79


state 49

    (58) expr -> macrocall .

    NE              reduce using rule 58 (expr -> macrocall .)
    EQ              reduce using rule 58 (expr -> macrocall .)
    LT              reduce using rule 58 (expr -> macrocall .)
    LE              reduce using rule 58 (expr -> macrocall .)
    GT              reduce using rule 58 (expr -> macrocall .)
    GE              reduce using rule 58 (expr -> macrocall .)
    NEWLINE         reduce using rule 58 (expr -> macrocall .)


state 50

    (57) if_header -> IF expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NEWLINE         reduce using rule 57 (if_header -> IF expr .)
    NE              shift and go to state 81
    EQ              shift and go to state 82
    LT              shift and go to state 80
    LE              shift and go to state 85
    GT              shift and go to state 83
    GE              shift and go to state 84


state 51

    (55) if_header -> IFDEF ID .

    NEWLINE         reduce using rule 55 (if_header -> IFDEF ID .)


state 52

    (56) if_header -> IFNDEF ID .

    NEWLINE         reduce using rule 56 (if_header -> IFNDEF ID .)


state 53

    (33) line -> LINE INTEGER . NEWLINE
    (34) line -> LINE INTEGER . STRING NEWLINE

    NEWLINE         shift and go to state 87
    STRING          shift and go to state 86


state 54

    (39) define -> DEFINE ID . params defs
    (40) params -> .
    (41) params -> . LP RP
    (42) params -> . LP paramlist RP

    COMMA           reduce using rule 40 (params -> .)
    RRP             reduce using rule 40 (params -> .)
    LLP             reduce using rule 40 (params -> .)
    STRING          reduce using rule 40 (params -> .)
    TOKEN           reduce using rule 40 (params -> .)
    CONTINUE        reduce using rule 40 (params -> .)
    SEPARATOR       reduce using rule 40 (params -> .)
    NUMBER          reduce using rule 40 (params -> .)
    ID              reduce using rule 40 (params -> .)
    NEWLINE         reduce using rule 40 (params -> .)
    LP              shift and go to state 89

    params                         shift and go to state 88

state 55

    (27) include_file -> include_once NEWLINE . _ENDFILE_
    (28) include_file -> include_once NEWLINE . program _ENDFILE_
    (2) program -> . include_file
    (3) program -> . line
    (4) program -> . init
    (5) program -> . undef
    (6) program -> . ifdef
    (7) program -> . require
    (8) program -> . pragma
    (9) program -> . defs NEWLINE
    (10) program -> . define NEWLINE
    (11) program -> . program include_file
    (12) program -> . program line
    (13) program -> . program init
    (14) program -> . program undef
    (15) program -> . program ifdef
    (16) program -> . program require
    (17) program -> . program pragma
    (18) program -> . program defs NEWLINE
    (19) program -> . program define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 90
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 1
    ifdef                          shift and go to state 12
    if_header                      shift and go to state 3
    include_file                   shift and go to state 5
    program                        shift and go to state 91
    undef                          shift and go to state 21
    line                           shift and go to state 16
    include_once                   shift and go to state 20
    init                           shift and go to state 7
    define                         shift and go to state 8
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 14
    require                        shift and go to state 24

state 56

    (37) init -> INIT STRING . NEWLINE

    NEWLINE         shift and go to state 92


state 57

    (36) init -> INIT ID . NEWLINE

    NEWLINE         shift and go to state 93


state 58

    (18) program -> program defs . NEWLINE
    (66) defs -> defs . def
    (67) def -> . token
    (68) def -> . COMMA
    (69) def -> . RRP
    (70) def -> . LLP
    (71) def -> . macrocall
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    NEWLINE         shift and go to state 94
    COMMA           shift and go to state 31
    RRP             shift and go to state 27
    LLP             shift and go to state 29
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    def                            shift and go to state 26
    token                          shift and go to state 37
    macrocall                      shift and go to state 30

state 59

    (11) program -> program include_file .

    _ENDFILE_       reduce using rule 11 (program -> program include_file .)
    LINE            reduce using rule 11 (program -> program include_file .)
    INIT            reduce using rule 11 (program -> program include_file .)
    UNDEF           reduce using rule 11 (program -> program include_file .)
    REQUIRE         reduce using rule 11 (program -> program include_file .)
    PRAGMA          reduce using rule 11 (program -> program include_file .)
    DEFINE          reduce using rule 11 (program -> program include_file .)
    INCLUDE         reduce using rule 11 (program -> program include_file .)
    IFDEF           reduce using rule 11 (program -> program include_file .)
    IFNDEF          reduce using rule 11 (program -> program include_file .)
    IF              reduce using rule 11 (program -> program include_file .)
    NEWLINE         reduce using rule 11 (program -> program include_file .)
    COMMA           reduce using rule 11 (program -> program include_file .)
    RRP             reduce using rule 11 (program -> program include_file .)
    LLP             reduce using rule 11 (program -> program include_file .)
    STRING          reduce using rule 11 (program -> program include_file .)
    TOKEN           reduce using rule 11 (program -> program include_file .)
    CONTINUE        reduce using rule 11 (program -> program include_file .)
    SEPARATOR       reduce using rule 11 (program -> program include_file .)
    NUMBER          reduce using rule 11 (program -> program include_file .)
    ID              reduce using rule 11 (program -> program include_file .)
    ENDIF           reduce using rule 11 (program -> program include_file .)
    ELSE            reduce using rule 11 (program -> program include_file .)
    $end            reduce using rule 11 (program -> program include_file .)


state 60

    (13) program -> program init .

    _ENDFILE_       reduce using rule 13 (program -> program init .)
    LINE            reduce using rule 13 (program -> program init .)
    INIT            reduce using rule 13 (program -> program init .)
    UNDEF           reduce using rule 13 (program -> program init .)
    REQUIRE         reduce using rule 13 (program -> program init .)
    PRAGMA          reduce using rule 13 (program -> program init .)
    DEFINE          reduce using rule 13 (program -> program init .)
    INCLUDE         reduce using rule 13 (program -> program init .)
    IFDEF           reduce using rule 13 (program -> program init .)
    IFNDEF          reduce using rule 13 (program -> program init .)
    IF              reduce using rule 13 (program -> program init .)
    NEWLINE         reduce using rule 13 (program -> program init .)
    COMMA           reduce using rule 13 (program -> program init .)
    RRP             reduce using rule 13 (program -> program init .)
    LLP             reduce using rule 13 (program -> program init .)
    STRING          reduce using rule 13 (program -> program init .)
    TOKEN           reduce using rule 13 (program -> program init .)
    CONTINUE        reduce using rule 13 (program -> program init .)
    SEPARATOR       reduce using rule 13 (program -> program init .)
    NUMBER          reduce using rule 13 (program -> program init .)
    ID              reduce using rule 13 (program -> program init .)
    ENDIF           reduce using rule 13 (program -> program init .)
    ELSE            reduce using rule 13 (program -> program init .)
    $end            reduce using rule 13 (program -> program init .)


state 61

    (19) program -> program define . NEWLINE

    NEWLINE         shift and go to state 95


state 62

    (15) program -> program ifdef .

    _ENDFILE_       reduce using rule 15 (program -> program ifdef .)
    LINE            reduce using rule 15 (program -> program ifdef .)
    INIT            reduce using rule 15 (program -> program ifdef .)
    UNDEF           reduce using rule 15 (program -> program ifdef .)
    REQUIRE         reduce using rule 15 (program -> program ifdef .)
    PRAGMA          reduce using rule 15 (program -> program ifdef .)
    DEFINE          reduce using rule 15 (program -> program ifdef .)
    INCLUDE         reduce using rule 15 (program -> program ifdef .)
    IFDEF           reduce using rule 15 (program -> program ifdef .)
    IFNDEF          reduce using rule 15 (program -> program ifdef .)
    IF              reduce using rule 15 (program -> program ifdef .)
    NEWLINE         reduce using rule 15 (program -> program ifdef .)
    COMMA           reduce using rule 15 (program -> program ifdef .)
    RRP             reduce using rule 15 (program -> program ifdef .)
    LLP             reduce using rule 15 (program -> program ifdef .)
    STRING          reduce using rule 15 (program -> program ifdef .)
    TOKEN           reduce using rule 15 (program -> program ifdef .)
    CONTINUE        reduce using rule 15 (program -> program ifdef .)
    SEPARATOR       reduce using rule 15 (program -> program ifdef .)
    NUMBER          reduce using rule 15 (program -> program ifdef .)
    ID              reduce using rule 15 (program -> program ifdef .)
    ENDIF           reduce using rule 15 (program -> program ifdef .)
    ELSE            reduce using rule 15 (program -> program ifdef .)
    $end            reduce using rule 15 (program -> program ifdef .)


state 63

    (17) program -> program pragma .

    _ENDFILE_       reduce using rule 17 (program -> program pragma .)
    LINE            reduce using rule 17 (program -> program pragma .)
    INIT            reduce using rule 17 (program -> program pragma .)
    UNDEF           reduce using rule 17 (program -> program pragma .)
    REQUIRE         reduce using rule 17 (program -> program pragma .)
    PRAGMA          reduce using rule 17 (program -> program pragma .)
    DEFINE          reduce using rule 17 (program -> program pragma .)
    INCLUDE         reduce using rule 17 (program -> program pragma .)
    IFDEF           reduce using rule 17 (program -> program pragma .)
    IFNDEF          reduce using rule 17 (program -> program pragma .)
    IF              reduce using rule 17 (program -> program pragma .)
    NEWLINE         reduce using rule 17 (program -> program pragma .)
    COMMA           reduce using rule 17 (program -> program pragma .)
    RRP             reduce using rule 17 (program -> program pragma .)
    LLP             reduce using rule 17 (program -> program pragma .)
    STRING          reduce using rule 17 (program -> program pragma .)
    TOKEN           reduce using rule 17 (program -> program pragma .)
    CONTINUE        reduce using rule 17 (program -> program pragma .)
    SEPARATOR       reduce using rule 17 (program -> program pragma .)
    NUMBER          reduce using rule 17 (program -> program pragma .)
    ID              reduce using rule 17 (program -> program pragma .)
    ENDIF           reduce using rule 17 (program -> program pragma .)
    ELSE            reduce using rule 17 (program -> program pragma .)
    $end            reduce using rule 17 (program -> program pragma .)


state 64

    (12) program -> program line .

    _ENDFILE_       reduce using rule 12 (program -> program line .)
    LINE            reduce using rule 12 (program -> program line .)
    INIT            reduce using rule 12 (program -> program line .)
    UNDEF           reduce using rule 12 (program -> program line .)
    REQUIRE         reduce using rule 12 (program -> program line .)
    PRAGMA          reduce using rule 12 (program -> program line .)
    DEFINE          reduce using rule 12 (program -> program line .)
    INCLUDE         reduce using rule 12 (program -> program line .)
    IFDEF           reduce using rule 12 (program -> program line .)
    IFNDEF          reduce using rule 12 (program -> program line .)
    IF              reduce using rule 12 (program -> program line .)
    NEWLINE         reduce using rule 12 (program -> program line .)
    COMMA           reduce using rule 12 (program -> program line .)
    RRP             reduce using rule 12 (program -> program line .)
    LLP             reduce using rule 12 (program -> program line .)
    STRING          reduce using rule 12 (program -> program line .)
    TOKEN           reduce using rule 12 (program -> program line .)
    CONTINUE        reduce using rule 12 (program -> program line .)
    SEPARATOR       reduce using rule 12 (program -> program line .)
    NUMBER          reduce using rule 12 (program -> program line .)
    ID              reduce using rule 12 (program -> program line .)
    ENDIF           reduce using rule 12 (program -> program line .)
    ELSE            reduce using rule 12 (program -> program line .)
    $end            reduce using rule 12 (program -> program line .)


state 65

    (14) program -> program undef .

    _ENDFILE_       reduce using rule 14 (program -> program undef .)
    LINE            reduce using rule 14 (program -> program undef .)
    INIT            reduce using rule 14 (program -> program undef .)
    UNDEF           reduce using rule 14 (program -> program undef .)
    REQUIRE         reduce using rule 14 (program -> program undef .)
    PRAGMA          reduce using rule 14 (program -> program undef .)
    DEFINE          reduce using rule 14 (program -> program undef .)
    INCLUDE         reduce using rule 14 (program -> program undef .)
    IFDEF           reduce using rule 14 (program -> program undef .)
    IFNDEF          reduce using rule 14 (program -> program undef .)
    IF              reduce using rule 14 (program -> program undef .)
    NEWLINE         reduce using rule 14 (program -> program undef .)
    COMMA           reduce using rule 14 (program -> program undef .)
    RRP             reduce using rule 14 (program -> program undef .)
    LLP             reduce using rule 14 (program -> program undef .)
    STRING          reduce using rule 14 (program -> program undef .)
    TOKEN           reduce using rule 14 (program -> program undef .)
    CONTINUE        reduce using rule 14 (program -> program undef .)
    SEPARATOR       reduce using rule 14 (program -> program undef .)
    NUMBER          reduce using rule 14 (program -> program undef .)
    ID              reduce using rule 14 (program -> program undef .)
    ENDIF           reduce using rule 14 (program -> program undef .)
    ELSE            reduce using rule 14 (program -> program undef .)
    $end            reduce using rule 14 (program -> program undef .)


state 66

    (16) program -> program require .

    _ENDFILE_       reduce using rule 16 (program -> program require .)
    LINE            reduce using rule 16 (program -> program require .)
    INIT            reduce using rule 16 (program -> program require .)
    UNDEF           reduce using rule 16 (program -> program require .)
    REQUIRE         reduce using rule 16 (program -> program require .)
    PRAGMA          reduce using rule 16 (program -> program require .)
    DEFINE          reduce using rule 16 (program -> program require .)
    INCLUDE         reduce using rule 16 (program -> program require .)
    IFDEF           reduce using rule 16 (program -> program require .)
    IFNDEF          reduce using rule 16 (program -> program require .)
    IF              reduce using rule 16 (program -> program require .)
    NEWLINE         reduce using rule 16 (program -> program require .)
    COMMA           reduce using rule 16 (program -> program require .)
    RRP             reduce using rule 16 (program -> program require .)
    LLP             reduce using rule 16 (program -> program require .)
    STRING          reduce using rule 16 (program -> program require .)
    TOKEN           reduce using rule 16 (program -> program require .)
    CONTINUE        reduce using rule 16 (program -> program require .)
    SEPARATOR       reduce using rule 16 (program -> program require .)
    NUMBER          reduce using rule 16 (program -> program require .)
    ID              reduce using rule 16 (program -> program require .)
    ENDIF           reduce using rule 16 (program -> program require .)
    ELSE            reduce using rule 16 (program -> program require .)
    $end            reduce using rule 16 (program -> program require .)


state 67

    (49) pragma -> PRAGMA PUSH . LP ID RP

    LP              shift and go to state 96


state 68

    (45) pragma -> PRAGMA ID .
    (46) pragma -> PRAGMA ID . EQ ID
    (47) pragma -> PRAGMA ID . EQ STRING
    (48) pragma -> PRAGMA ID . EQ INTEGER

    LINE            reduce using rule 45 (pragma -> PRAGMA ID .)
    INIT            reduce using rule 45 (pragma -> PRAGMA ID .)
    UNDEF           reduce using rule 45 (pragma -> PRAGMA ID .)
    REQUIRE         reduce using rule 45 (pragma -> PRAGMA ID .)
    PRAGMA          reduce using rule 45 (pragma -> PRAGMA ID .)
    DEFINE          reduce using rule 45 (pragma -> PRAGMA ID .)
    INCLUDE         reduce using rule 45 (pragma -> PRAGMA ID .)
    IFDEF           reduce using rule 45 (pragma -> PRAGMA ID .)
    IFNDEF          reduce using rule 45 (pragma -> PRAGMA ID .)
    IF              reduce using rule 45 (pragma -> PRAGMA ID .)
    NEWLINE         reduce using rule 45 (pragma -> PRAGMA ID .)
    COMMA           reduce using rule 45 (pragma -> PRAGMA ID .)
    RRP             reduce using rule 45 (pragma -> PRAGMA ID .)
    LLP             reduce using rule 45 (pragma -> PRAGMA ID .)
    STRING          reduce using rule 45 (pragma -> PRAGMA ID .)
    TOKEN           reduce using rule 45 (pragma -> PRAGMA ID .)
    CONTINUE        reduce using rule 45 (pragma -> PRAGMA ID .)
    SEPARATOR       reduce using rule 45 (pragma -> PRAGMA ID .)
    NUMBER          reduce using rule 45 (pragma -> PRAGMA ID .)
    ID              reduce using rule 45 (pragma -> PRAGMA ID .)
    ENDIF           reduce using rule 45 (pragma -> PRAGMA ID .)
    $end            reduce using rule 45 (pragma -> PRAGMA ID .)
    _ENDFILE_       reduce using rule 45 (pragma -> PRAGMA ID .)
    ELSE            reduce using rule 45 (pragma -> PRAGMA ID .)
    EQ              shift and go to state 97


state 69

    (50) pragma -> PRAGMA POP . LP ID RP

    LP              shift and go to state 98


state 70

    (74) args -> LLP . arglist RRP
    (75) arglist -> . arglist COMMA arg
    (76) arglist -> . arg
    (77) arg -> .
    (78) arg -> . argstring
    (79) argstring -> . token
    (80) argstring -> . macrocall
    (81) argstring -> . LLP arglist RRP
    (82) argstring -> . argstring token
    (83) argstring -> . argstring macrocall
    (84) argstring -> . argstring LLP arglist RRP
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    RRP             reduce using rule 77 (arg -> .)
    COMMA           reduce using rule 77 (arg -> .)
    LLP             shift and go to state 101
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    argstring                      shift and go to state 99
    macrocall                      shift and go to state 102
    arglist                        shift and go to state 100
    token                          shift and go to state 103
    arg                            shift and go to state 104

state 71

    (72) macrocall -> ID args .

    LLP             reduce using rule 72 (macrocall -> ID args .)
    STRING          reduce using rule 72 (macrocall -> ID args .)
    TOKEN           reduce using rule 72 (macrocall -> ID args .)
    CONTINUE        reduce using rule 72 (macrocall -> ID args .)
    SEPARATOR       reduce using rule 72 (macrocall -> ID args .)
    NUMBER          reduce using rule 72 (macrocall -> ID args .)
    ID              reduce using rule 72 (macrocall -> ID args .)
    RRP             reduce using rule 72 (macrocall -> ID args .)
    COMMA           reduce using rule 72 (macrocall -> ID args .)
    NE              reduce using rule 72 (macrocall -> ID args .)
    EQ              reduce using rule 72 (macrocall -> ID args .)
    LT              reduce using rule 72 (macrocall -> ID args .)
    LE              reduce using rule 72 (macrocall -> ID args .)
    GT              reduce using rule 72 (macrocall -> ID args .)
    GE              reduce using rule 72 (macrocall -> ID args .)
    NEWLINE         reduce using rule 72 (macrocall -> ID args .)


state 72

    (51) ifdef -> if_header NEWLINE program . ENDIF
    (53) ifdefelsea -> if_header NEWLINE program .
    (11) program -> program . include_file
    (12) program -> program . line
    (13) program -> program . init
    (14) program -> program . undef
    (15) program -> program . ifdef
    (16) program -> program . require
    (17) program -> program . pragma
    (18) program -> program . defs NEWLINE
    (19) program -> program . define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    ENDIF           shift and go to state 105
    ELSE            reduce using rule 53 (ifdefelsea -> if_header NEWLINE program .)
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 58
    ifdef                          shift and go to state 62
    if_header                      shift and go to state 3
    include_file                   shift and go to state 59
    undef                          shift and go to state 65
    line                           shift and go to state 64
    include_once                   shift and go to state 20
    init                           shift and go to state 60
    define                         shift and go to state 61
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 63
    require                        shift and go to state 66

state 73

    (31) include_once -> INCLUDE ONCE STRING .

    NEWLINE         reduce using rule 31 (include_once -> INCLUDE ONCE STRING .)


state 74

    (32) include_once -> INCLUDE ONCE FILENAME .

    NEWLINE         reduce using rule 32 (include_once -> INCLUDE ONCE FILENAME .)


state 75

    (35) require -> REQUIRE STRING NEWLINE .

    _ENDFILE_       reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    LINE            reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    INIT            reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    UNDEF           reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    REQUIRE         reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    PRAGMA          reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    DEFINE          reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    INCLUDE         reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    IFDEF           reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    IFNDEF          reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    IF              reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    NEWLINE         reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    COMMA           reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    RRP             reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    LLP             reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    STRING          reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    TOKEN           reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    CONTINUE        reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    SEPARATOR       reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    NUMBER          reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    ID              reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    $end            reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    ENDIF           reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    ELSE            reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)


state 76

    (26) include_file -> include NEWLINE _ENDFILE_ .

    _ENDFILE_       reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    LINE            reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    INIT            reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    UNDEF           reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    REQUIRE         reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    PRAGMA          reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    DEFINE          reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    INCLUDE         reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    IFDEF           reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    IFNDEF          reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    IF              reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    NEWLINE         reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    COMMA           reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    RRP             reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    LLP             reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    STRING          reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    TOKEN           reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    CONTINUE        reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    SEPARATOR       reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    NUMBER          reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    ID              reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    ENDIF           reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    ELSE            reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)
    $end            reduce using rule 26 (include_file -> include NEWLINE _ENDFILE_ .)


state 77

    (25) include_file -> include NEWLINE program . _ENDFILE_
    (11) program -> program . include_file
    (12) program -> program . line
    (13) program -> program . init
    (14) program -> program . undef
    (15) program -> program . ifdef
    (16) program -> program . require
    (17) program -> program . pragma
    (18) program -> program . defs NEWLINE
    (19) program -> program . define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 106
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 58
    ifdef                          shift and go to state 62
    if_header                      shift and go to state 3
    include_file                   shift and go to state 59
    undef                          shift and go to state 65
    line                           shift and go to state 64
    include_once                   shift and go to state 20
    init                           shift and go to state 60
    define                         shift and go to state 61
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 63
    require                        shift and go to state 66

state 78

    (54) ifdefelseb -> ELSE NEWLINE . program
    (2) program -> . include_file
    (3) program -> . line
    (4) program -> . init
    (5) program -> . undef
    (6) program -> . ifdef
    (7) program -> . require
    (8) program -> . pragma
    (9) program -> . defs NEWLINE
    (10) program -> . define NEWLINE
    (11) program -> . program include_file
    (12) program -> . program line
    (13) program -> . program init
    (14) program -> . program undef
    (15) program -> . program ifdef
    (16) program -> . program require
    (17) program -> . program pragma
    (18) program -> . program defs NEWLINE
    (19) program -> . program define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 1
    ifdef                          shift and go to state 12
    if_header                      shift and go to state 3
    include_file                   shift and go to state 5
    program                        shift and go to state 107
    init                           shift and go to state 7
    line                           shift and go to state 16
    include_once                   shift and go to state 20
    undef                          shift and go to state 21
    define                         shift and go to state 8
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 14
    require                        shift and go to state 24

state 79

    (52) ifdef -> ifdefelsea ifdefelseb ENDIF .

    ENDIF           reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    LINE            reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    INIT            reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    UNDEF           reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    REQUIRE         reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    PRAGMA          reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    DEFINE          reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    INCLUDE         reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    IFDEF           reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    IFNDEF          reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    IF              reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    NEWLINE         reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    COMMA           reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    RRP             reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    LLP             reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    STRING          reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    TOKEN           reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    CONTINUE        reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    SEPARATOR       reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    NUMBER          reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    ID              reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    ELSE            reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    $end            reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    _ENDFILE_       reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)


state 80

    (61) expr -> expr LT . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 108

state 81

    (59) expr -> expr NE . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 109

state 82

    (60) expr -> expr EQ . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 110

state 83

    (63) expr -> expr GT . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 111

state 84

    (64) expr -> expr GE . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 112

state 85

    (62) expr -> expr LE . expr
    (58) expr -> . macrocall
    (59) expr -> . expr NE expr
    (60) expr -> . expr EQ expr
    (61) expr -> . expr LT expr
    (62) expr -> . expr LE expr
    (63) expr -> . expr GT expr
    (64) expr -> . expr GE expr
    (72) macrocall -> . ID args

    ID              shift and go to state 28

    macrocall                      shift and go to state 49
    expr                           shift and go to state 113

state 86

    (34) line -> LINE INTEGER STRING . NEWLINE

    NEWLINE         shift and go to state 114


state 87

    (33) line -> LINE INTEGER NEWLINE .

    LINE            reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    INIT            reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    UNDEF           reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    REQUIRE         reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    PRAGMA          reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    DEFINE          reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    INCLUDE         reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    IFDEF           reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    IFNDEF          reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    IF              reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    NEWLINE         reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    COMMA           reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    RRP             reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    LLP             reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    STRING          reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    TOKEN           reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    CONTINUE        reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    SEPARATOR       reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    NUMBER          reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    ID              reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    ENDIF           reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    _ENDFILE_       reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    ELSE            reduce using rule 33 (line -> LINE INTEGER NEWLINE .)
    $end            reduce using rule 33 (line -> LINE INTEGER NEWLINE .)


state 88

    (39) define -> DEFINE ID params . defs
    (65) defs -> .
    (66) defs -> . defs def

    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    NEWLINE         reduce using rule 65 (defs -> .)

    defs                           shift and go to state 115

state 89

    (41) params -> LP . RP
    (42) params -> LP . paramlist RP
    (43) paramlist -> . ID
    (44) paramlist -> . paramlist COMMA ID

    RP              shift and go to state 118
    ID              shift and go to state 116

    paramlist                      shift and go to state 117

state 90

    (27) include_file -> include_once NEWLINE _ENDFILE_ .

    _ENDFILE_       reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    LINE            reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    INIT            reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    UNDEF           reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    REQUIRE         reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    PRAGMA          reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    DEFINE          reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    INCLUDE         reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    IFDEF           reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    IFNDEF          reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    IF              reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    NEWLINE         reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    COMMA           reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    RRP             reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    LLP             reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    STRING          reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    TOKEN           reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    CONTINUE        reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    SEPARATOR       reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    NUMBER          reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    ID              reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    ENDIF           reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    ELSE            reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)
    $end            reduce using rule 27 (include_file -> include_once NEWLINE _ENDFILE_ .)


state 91

    (28) include_file -> include_once NEWLINE program . _ENDFILE_
    (11) program -> program . include_file
    (12) program -> program . line
    (13) program -> program . init
    (14) program -> program . undef
    (15) program -> program . ifdef
    (16) program -> program . require
    (17) program -> program . pragma
    (18) program -> program . defs NEWLINE
    (19) program -> program . define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 119
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 58
    ifdef                          shift and go to state 62
    if_header                      shift and go to state 3
    include_file                   shift and go to state 59
    undef                          shift and go to state 65
    line                           shift and go to state 64
    include_once                   shift and go to state 20
    init                           shift and go to state 60
    define                         shift and go to state 61
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 63
    require                        shift and go to state 66

state 92

    (37) init -> INIT STRING NEWLINE .

    ENDIF           reduce using rule 37 (init -> INIT STRING NEWLINE .)
    LINE            reduce using rule 37 (init -> INIT STRING NEWLINE .)
    INIT            reduce using rule 37 (init -> INIT STRING NEWLINE .)
    UNDEF           reduce using rule 37 (init -> INIT STRING NEWLINE .)
    REQUIRE         reduce using rule 37 (init -> INIT STRING NEWLINE .)
    PRAGMA          reduce using rule 37 (init -> INIT STRING NEWLINE .)
    DEFINE          reduce using rule 37 (init -> INIT STRING NEWLINE .)
    INCLUDE         reduce using rule 37 (init -> INIT STRING NEWLINE .)
    IFDEF           reduce using rule 37 (init -> INIT STRING NEWLINE .)
    IFNDEF          reduce using rule 37 (init -> INIT STRING NEWLINE .)
    IF              reduce using rule 37 (init -> INIT STRING NEWLINE .)
    NEWLINE         reduce using rule 37 (init -> INIT STRING NEWLINE .)
    COMMA           reduce using rule 37 (init -> INIT STRING NEWLINE .)
    RRP             reduce using rule 37 (init -> INIT STRING NEWLINE .)
    LLP             reduce using rule 37 (init -> INIT STRING NEWLINE .)
    STRING          reduce using rule 37 (init -> INIT STRING NEWLINE .)
    TOKEN           reduce using rule 37 (init -> INIT STRING NEWLINE .)
    CONTINUE        reduce using rule 37 (init -> INIT STRING NEWLINE .)
    SEPARATOR       reduce using rule 37 (init -> INIT STRING NEWLINE .)
    NUMBER          reduce using rule 37 (init -> INIT STRING NEWLINE .)
    ID              reduce using rule 37 (init -> INIT STRING NEWLINE .)
    ELSE            reduce using rule 37 (init -> INIT STRING NEWLINE .)
    _ENDFILE_       reduce using rule 37 (init -> INIT STRING NEWLINE .)
    $end            reduce using rule 37 (init -> INIT STRING NEWLINE .)


state 93

    (36) init -> INIT ID NEWLINE .

    ENDIF           reduce using rule 36 (init -> INIT ID NEWLINE .)
    LINE            reduce using rule 36 (init -> INIT ID NEWLINE .)
    INIT            reduce using rule 36 (init -> INIT ID NEWLINE .)
    UNDEF           reduce using rule 36 (init -> INIT ID NEWLINE .)
    REQUIRE         reduce using rule 36 (init -> INIT ID NEWLINE .)
    PRAGMA          reduce using rule 36 (init -> INIT ID NEWLINE .)
    DEFINE          reduce using rule 36 (init -> INIT ID NEWLINE .)
    INCLUDE         reduce using rule 36 (init -> INIT ID NEWLINE .)
    IFDEF           reduce using rule 36 (init -> INIT ID NEWLINE .)
    IFNDEF          reduce using rule 36 (init -> INIT ID NEWLINE .)
    IF              reduce using rule 36 (init -> INIT ID NEWLINE .)
    NEWLINE         reduce using rule 36 (init -> INIT ID NEWLINE .)
    COMMA           reduce using rule 36 (init -> INIT ID NEWLINE .)
    RRP             reduce using rule 36 (init -> INIT ID NEWLINE .)
    LLP             reduce using rule 36 (init -> INIT ID NEWLINE .)
    STRING          reduce using rule 36 (init -> INIT ID NEWLINE .)
    TOKEN           reduce using rule 36 (init -> INIT ID NEWLINE .)
    CONTINUE        reduce using rule 36 (init -> INIT ID NEWLINE .)
    SEPARATOR       reduce using rule 36 (init -> INIT ID NEWLINE .)
    NUMBER          reduce using rule 36 (init -> INIT ID NEWLINE .)
    ID              reduce using rule 36 (init -> INIT ID NEWLINE .)
    ELSE            reduce using rule 36 (init -> INIT ID NEWLINE .)
    _ENDFILE_       reduce using rule 36 (init -> INIT ID NEWLINE .)
    $end            reduce using rule 36 (init -> INIT ID NEWLINE .)


state 94

    (18) program -> program defs NEWLINE .

    _ENDFILE_       reduce using rule 18 (program -> program defs NEWLINE .)
    LINE            reduce using rule 18 (program -> program defs NEWLINE .)
    INIT            reduce using rule 18 (program -> program defs NEWLINE .)
    UNDEF           reduce using rule 18 (program -> program defs NEWLINE .)
    REQUIRE         reduce using rule 18 (program -> program defs NEWLINE .)
    PRAGMA          reduce using rule 18 (program -> program defs NEWLINE .)
    DEFINE          reduce using rule 18 (program -> program defs NEWLINE .)
    INCLUDE         reduce using rule 18 (program -> program defs NEWLINE .)
    IFDEF           reduce using rule 18 (program -> program defs NEWLINE .)
    IFNDEF          reduce using rule 18 (program -> program defs NEWLINE .)
    IF              reduce using rule 18 (program -> program defs NEWLINE .)
    NEWLINE         reduce using rule 18 (program -> program defs NEWLINE .)
    COMMA           reduce using rule 18 (program -> program defs NEWLINE .)
    RRP             reduce using rule 18 (program -> program defs NEWLINE .)
    LLP             reduce using rule 18 (program -> program defs NEWLINE .)
    STRING          reduce using rule 18 (program -> program defs NEWLINE .)
    TOKEN           reduce using rule 18 (program -> program defs NEWLINE .)
    CONTINUE        reduce using rule 18 (program -> program defs NEWLINE .)
    SEPARATOR       reduce using rule 18 (program -> program defs NEWLINE .)
    NUMBER          reduce using rule 18 (program -> program defs NEWLINE .)
    ID              reduce using rule 18 (program -> program defs NEWLINE .)
    ENDIF           reduce using rule 18 (program -> program defs NEWLINE .)
    ELSE            reduce using rule 18 (program -> program defs NEWLINE .)
    $end            reduce using rule 18 (program -> program defs NEWLINE .)


state 95

    (19) program -> program define NEWLINE .

    _ENDFILE_       reduce using rule 19 (program -> program define NEWLINE .)
    LINE            reduce using rule 19 (program -> program define NEWLINE .)
    INIT            reduce using rule 19 (program -> program define NEWLINE .)
    UNDEF           reduce using rule 19 (program -> program define NEWLINE .)
    REQUIRE         reduce using rule 19 (program -> program define NEWLINE .)
    PRAGMA          reduce using rule 19 (program -> program define NEWLINE .)
    DEFINE          reduce using rule 19 (program -> program define NEWLINE .)
    INCLUDE         reduce using rule 19 (program -> program define NEWLINE .)
    IFDEF           reduce using rule 19 (program -> program define NEWLINE .)
    IFNDEF          reduce using rule 19 (program -> program define NEWLINE .)
    IF              reduce using rule 19 (program -> program define NEWLINE .)
    NEWLINE         reduce using rule 19 (program -> program define NEWLINE .)
    COMMA           reduce using rule 19 (program -> program define NEWLINE .)
    RRP             reduce using rule 19 (program -> program define NEWLINE .)
    LLP             reduce using rule 19 (program -> program define NEWLINE .)
    STRING          reduce using rule 19 (program -> program define NEWLINE .)
    TOKEN           reduce using rule 19 (program -> program define NEWLINE .)
    CONTINUE        reduce using rule 19 (program -> program define NEWLINE .)
    SEPARATOR       reduce using rule 19 (program -> program define NEWLINE .)
    NUMBER          reduce using rule 19 (program -> program define NEWLINE .)
    ID              reduce using rule 19 (program -> program define NEWLINE .)
    ENDIF           reduce using rule 19 (program -> program define NEWLINE .)
    ELSE            reduce using rule 19 (program -> program define NEWLINE .)
    $end            reduce using rule 19 (program -> program define NEWLINE .)


state 96

    (49) pragma -> PRAGMA PUSH LP . ID RP

    ID              shift and go to state 120


state 97

    (46) pragma -> PRAGMA ID EQ . ID
    (47) pragma -> PRAGMA ID EQ . STRING
    (48) pragma -> PRAGMA ID EQ . INTEGER

    ID              shift and go to state 122
    STRING          shift and go to state 123
    INTEGER         shift and go to state 121


state 98

    (50) pragma -> PRAGMA POP LP . ID RP

    ID              shift and go to state 124


state 99

    (78) arg -> argstring .
    (82) argstring -> argstring . token
    (83) argstring -> argstring . macrocall
    (84) argstring -> argstring . LLP arglist RRP
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    RRP             reduce using rule 78 (arg -> argstring .)
    COMMA           reduce using rule 78 (arg -> argstring .)
    LLP             shift and go to state 125
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    macrocall                      shift and go to state 126
    token                          shift and go to state 127

state 100

    (74) args -> LLP arglist . RRP
    (75) arglist -> arglist . COMMA arg

    RRP             shift and go to state 128
    COMMA           shift and go to state 129


state 101

    (81) argstring -> LLP . arglist RRP
    (75) arglist -> . arglist COMMA arg
    (76) arglist -> . arg
    (77) arg -> .
    (78) arg -> . argstring
    (79) argstring -> . token
    (80) argstring -> . macrocall
    (81) argstring -> . LLP arglist RRP
    (82) argstring -> . argstring token
    (83) argstring -> . argstring macrocall
    (84) argstring -> . argstring LLP arglist RRP
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    RRP             reduce using rule 77 (arg -> .)
    COMMA           reduce using rule 77 (arg -> .)
    LLP             shift and go to state 101
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    argstring                      shift and go to state 99
    macrocall                      shift and go to state 102
    arglist                        shift and go to state 130
    token                          shift and go to state 103
    arg                            shift and go to state 104

state 102

    (80) argstring -> macrocall .

    LLP             reduce using rule 80 (argstring -> macrocall .)
    STRING          reduce using rule 80 (argstring -> macrocall .)
    TOKEN           reduce using rule 80 (argstring -> macrocall .)
    CONTINUE        reduce using rule 80 (argstring -> macrocall .)
    SEPARATOR       reduce using rule 80 (argstring -> macrocall .)
    NUMBER          reduce using rule 80 (argstring -> macrocall .)
    ID              reduce using rule 80 (argstring -> macrocall .)
    RRP             reduce using rule 80 (argstring -> macrocall .)
    COMMA           reduce using rule 80 (argstring -> macrocall .)


state 103

    (79) argstring -> token .

    LLP             reduce using rule 79 (argstring -> token .)
    STRING          reduce using rule 79 (argstring -> token .)
    TOKEN           reduce using rule 79 (argstring -> token .)
    CONTINUE        reduce using rule 79 (argstring -> token .)
    SEPARATOR       reduce using rule 79 (argstring -> token .)
    NUMBER          reduce using rule 79 (argstring -> token .)
    ID              reduce using rule 79 (argstring -> token .)
    RRP             reduce using rule 79 (argstring -> token .)
    COMMA           reduce using rule 79 (argstring -> token .)


state 104

    (76) arglist -> arg .

    RRP             reduce using rule 76 (arglist -> arg .)
    COMMA           reduce using rule 76 (arglist -> arg .)


state 105

    (51) ifdef -> if_header NEWLINE program ENDIF .

    ENDIF           reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    LINE            reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    INIT            reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    UNDEF           reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    REQUIRE         reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    PRAGMA          reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    DEFINE          reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    INCLUDE         reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    IFDEF           reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    IFNDEF          reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    IF              reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    NEWLINE         reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    COMMA           reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    RRP             reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    LLP             reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    STRING          reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    TOKEN           reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    CONTINUE        reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    SEPARATOR       reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    NUMBER          reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    ID              reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    ELSE            reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    $end            reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    _ENDFILE_       reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)


state 106

    (25) include_file -> include NEWLINE program _ENDFILE_ .

    _ENDFILE_       reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    LINE            reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    INIT            reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    UNDEF           reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    REQUIRE         reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    PRAGMA          reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    DEFINE          reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    INCLUDE         reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    IFDEF           reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    IFNDEF          reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    IF              reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    NEWLINE         reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    COMMA           reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    RRP             reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    LLP             reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    STRING          reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    TOKEN           reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    CONTINUE        reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    SEPARATOR       reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    NUMBER          reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    ID              reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    ENDIF           reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    ELSE            reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)
    $end            reduce using rule 25 (include_file -> include NEWLINE program _ENDFILE_ .)


state 107

    (54) ifdefelseb -> ELSE NEWLINE program .
    (11) program -> program . include_file
    (12) program -> program . line
    (13) program -> program . init
    (14) program -> program . undef
    (15) program -> program . ifdef
    (16) program -> program . require
    (17) program -> program . pragma
    (18) program -> program . defs NEWLINE
    (19) program -> program . define NEWLINE
    (25) include_file -> . include NEWLINE program _ENDFILE_
    (26) include_file -> . include NEWLINE _ENDFILE_
    (27) include_file -> . include_once NEWLINE _ENDFILE_
    (28) include_file -> . include_once NEWLINE program _ENDFILE_
    (33) line -> . LINE INTEGER NEWLINE
    (34) line -> . LINE INTEGER STRING NEWLINE
    (36) init -> . INIT ID NEWLINE
    (37) init -> . INIT STRING NEWLINE
    (38) undef -> . UNDEF ID
    (51) ifdef -> . if_header NEWLINE program ENDIF
    (52) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (35) require -> . REQUIRE STRING NEWLINE
    (45) pragma -> . PRAGMA ID
    (46) pragma -> . PRAGMA ID EQ ID
    (47) pragma -> . PRAGMA ID EQ STRING
    (48) pragma -> . PRAGMA ID EQ INTEGER
    (49) pragma -> . PRAGMA PUSH LP ID RP
    (50) pragma -> . PRAGMA POP LP ID RP
    (65) defs -> .
    (66) defs -> . defs def
    (39) define -> . DEFINE ID params defs
    (29) include -> . INCLUDE STRING
    (30) include -> . INCLUDE FILENAME
    (31) include_once -> . INCLUDE ONCE STRING
    (32) include_once -> . INCLUDE ONCE FILENAME
    (55) if_header -> . IFDEF ID
    (56) if_header -> . IFNDEF ID
    (57) if_header -> . IF expr
    (53) ifdefelsea -> . if_header NEWLINE program

    ENDIF           reduce using rule 54 (ifdefelseb -> ELSE NEWLINE program .)
    LINE            shift and go to state 18
    INIT            shift and go to state 22
    UNDEF           shift and go to state 2
    REQUIRE         shift and go to state 6
    PRAGMA          shift and go to state 25
    NEWLINE         reduce using rule 65 (defs -> .)
    COMMA           reduce using rule 65 (defs -> .)
    RRP             reduce using rule 65 (defs -> .)
    LLP             reduce using rule 65 (defs -> .)
    STRING          reduce using rule 65 (defs -> .)
    TOKEN           reduce using rule 65 (defs -> .)
    CONTINUE        reduce using rule 65 (defs -> .)
    SEPARATOR       reduce using rule 65 (defs -> .)
    NUMBER          reduce using rule 65 (defs -> .)
    ID              reduce using rule 65 (defs -> .)
    DEFINE          shift and go to state 19
    INCLUDE         shift and go to state 4
    IFDEF           shift and go to state 13
    IFNDEF          shift and go to state 15
    IF              shift and go to state 11

    defs                           shift and go to state 58
    ifdef                          shift and go to state 62
    if_header                      shift and go to state 3
    include_file                   shift and go to state 59
    init                           shift and go to state 60
    line                           shift and go to state 64
    include_once                   shift and go to state 20
    undef                          shift and go to state 65
    define                         shift and go to state 61
    include                        shift and go to state 9
    ifdefelsea                     shift and go to state 10
    pragma                         shift and go to state 63
    require                        shift and go to state 66

state 108

    (61) expr -> expr LT expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NE              reduce using rule 61 (expr -> expr LT expr .)
    EQ              reduce using rule 61 (expr -> expr LT expr .)
    LT              reduce using rule 61 (expr -> expr LT expr .)
    LE              reduce using rule 61 (expr -> expr LT expr .)
    GT              reduce using rule 61 (expr -> expr LT expr .)
    GE              reduce using rule 61 (expr -> expr LT expr .)
    NEWLINE         reduce using rule 61 (expr -> expr LT expr .)

  ! NE              [ shift and go to state 81 ]
  ! EQ              [ shift and go to state 82 ]
  ! LT              [ shift and go to state 80 ]
  ! LE              [ shift and go to state 85 ]
  ! GT              [ shift and go to state 83 ]
  ! GE              [ shift and go to state 84 ]


state 109

    (59) expr -> expr NE expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NE              reduce using rule 59 (expr -> expr NE expr .)
    EQ              reduce using rule 59 (expr -> expr NE expr .)
    LT              reduce using rule 59 (expr -> expr NE expr .)
    LE              reduce using rule 59 (expr -> expr NE expr .)
    GT              reduce using rule 59 (expr -> expr NE expr .)
    GE              reduce using rule 59 (expr -> expr NE expr .)
    NEWLINE         reduce using rule 59 (expr -> expr NE expr .)

  ! NE              [ shift and go to state 81 ]
  ! EQ              [ shift and go to state 82 ]
  ! LT              [ shift and go to state 80 ]
  ! LE              [ shift and go to state 85 ]
  ! GT              [ shift and go to state 83 ]
  ! GE              [ shift and go to state 84 ]


state 110

    (60) expr -> expr EQ expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NE              reduce using rule 60 (expr -> expr EQ expr .)
    EQ              reduce using rule 60 (expr -> expr EQ expr .)
    LT              reduce using rule 60 (expr -> expr EQ expr .)
    LE              reduce using rule 60 (expr -> expr EQ expr .)
    GT              reduce using rule 60 (expr -> expr EQ expr .)
    GE              reduce using rule 60 (expr -> expr EQ expr .)
    NEWLINE         reduce using rule 60 (expr -> expr EQ expr .)

  ! NE              [ shift and go to state 81 ]
  ! EQ              [ shift and go to state 82 ]
  ! LT              [ shift and go to state 80 ]
  ! LE              [ shift and go to state 85 ]
  ! GT              [ shift and go to state 83 ]
  ! GE              [ shift and go to state 84 ]


state 111

    (63) expr -> expr GT expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NE              reduce using rule 63 (expr -> expr GT expr .)
    EQ              reduce using rule 63 (expr -> expr GT expr .)
    LT              reduce using rule 63 (expr -> expr GT expr .)
    LE              reduce using rule 63 (expr -> expr GT expr .)
    GT              reduce using rule 63 (expr -> expr GT expr .)
    GE              reduce using rule 63 (expr -> expr GT expr .)
    NEWLINE         reduce using rule 63 (expr -> expr GT expr .)

  ! NE              [ shift and go to state 81 ]
  ! EQ              [ shift and go to state 82 ]
  ! LT              [ shift and go to state 80 ]
  ! LE              [ shift and go to state 85 ]
  ! GT              [ shift and go to state 83 ]
  ! GE              [ shift and go to state 84 ]


state 112

    (64) expr -> expr GE expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NE              reduce using rule 64 (expr -> expr GE expr .)
    EQ              reduce using rule 64 (expr -> expr GE expr .)
    LT              reduce using rule 64 (expr -> expr GE expr .)
    LE              reduce using rule 64 (expr -> expr GE expr .)
    GT              reduce using rule 64 (expr -> expr GE expr .)
    GE              reduce using rule 64 (expr -> expr GE expr .)
    NEWLINE         reduce using rule 64 (expr -> expr GE expr .)

  ! NE              [ shift and go to state 81 ]
  ! EQ              [ shift and go to state 82 ]
  ! LT              [ shift and go to state 80 ]
  ! LE              [ shift and go to state 85 ]
  ! GT              [ shift and go to state 83 ]
  ! GE              [ shift and go to state 84 ]


state 113

    (62) expr -> expr LE expr .
    (59) expr -> expr . NE expr
    (60) expr -> expr . EQ expr
    (61) expr -> expr . LT expr
    (62) expr -> expr . LE expr
    (63) expr -> expr . GT expr
    (64) expr -> expr . GE expr

    NE              reduce using rule 62 (expr -> expr LE expr .)
    EQ              reduce using rule 62 (expr -> expr LE expr .)
    LT              reduce using rule 62 (expr -> expr LE expr .)
    LE              reduce using rule 62 (expr -> expr LE expr .)
    GT              reduce using rule 62 (expr -> expr LE expr .)
    GE              reduce using rule 62 (expr -> expr LE expr .)
    NEWLINE         reduce using rule 62 (expr -> expr LE expr .)

  ! NE              [ shift and go to state 81 ]
  ! EQ              [ shift and go to state 82 ]
  ! LT              [ shift and go to state 80 ]
  ! LE              [ shift and go to state 85 ]
  ! GT              [ shift and go to state 83 ]
  ! GE              [ shift and go to state 84 ]


state 114

    (34) line -> LINE INTEGER STRING NEWLINE .

    LINE            reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    INIT            reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    UNDEF           reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    REQUIRE         reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    PRAGMA          reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    DEFINE          reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    INCLUDE         reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    IFDEF           reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    IFNDEF          reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    IF              reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    NEWLINE         reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    COMMA           reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    RRP             reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    LLP             reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    STRING          reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    TOKEN           reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    CONTINUE        reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    SEPARATOR       reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    NUMBER          reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    ID              reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    ENDIF           reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    _ENDFILE_       reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    ELSE            reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)
    $end            reduce using rule 34 (line -> LINE INTEGER STRING NEWLINE .)


state 115

    (39) define -> DEFINE ID params defs .
    (66) defs -> defs . def
    (67) def -> . token
    (68) def -> . COMMA
    (69) def -> . RRP
    (70) def -> . LLP
    (71) def -> . macrocall
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    NEWLINE         reduce using rule 39 (define -> DEFINE ID params defs .)
    COMMA           shift and go to state 31
    RRP             shift and go to state 27
    LLP             shift and go to state 29
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    def                            shift and go to state 26
    macrocall                      shift and go to state 30
    token                          shift and go to state 37

state 116

    (43) paramlist -> ID .

    RP              reduce using rule 43 (paramlist -> ID .)
    COMMA           reduce using rule 43 (paramlist -> ID .)


state 117

    (42) params -> LP paramlist . RP
    (44) paramlist -> paramlist . COMMA ID

    RP              shift and go to state 132
    COMMA           shift and go to state 131


state 118

    (41) params -> LP RP .

    COMMA           reduce using rule 41 (params -> LP RP .)
    RRP             reduce using rule 41 (params -> LP RP .)
    LLP             reduce using rule 41 (params -> LP RP .)
    STRING          reduce using rule 41 (params -> LP RP .)
    TOKEN           reduce using rule 41 (params -> LP RP .)
    CONTINUE        reduce using rule 41 (params -> LP RP .)
    SEPARATOR       reduce using rule 41 (params -> LP RP .)
    NUMBER          reduce using rule 41 (params -> LP RP .)
    ID              reduce using rule 41 (params -> LP RP .)
    NEWLINE         reduce using rule 41 (params -> LP RP .)


state 119

    (28) include_file -> include_once NEWLINE program _ENDFILE_ .

    _ENDFILE_       reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    LINE            reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    INIT            reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    UNDEF           reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    REQUIRE         reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    PRAGMA          reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    DEFINE          reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    INCLUDE         reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    IFDEF           reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    IFNDEF          reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    IF              reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    NEWLINE         reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    COMMA           reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    RRP             reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    LLP             reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    STRING          reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    TOKEN           reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    CONTINUE        reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    SEPARATOR       reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    NUMBER          reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    ID              reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    ENDIF           reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    ELSE            reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)
    $end            reduce using rule 28 (include_file -> include_once NEWLINE program _ENDFILE_ .)


state 120

    (49) pragma -> PRAGMA PUSH LP ID . RP

    RP              shift and go to state 133


state 121

    (48) pragma -> PRAGMA ID EQ INTEGER .

    LINE            reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    INIT            reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    UNDEF           reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    REQUIRE         reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    PRAGMA          reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    DEFINE          reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    INCLUDE         reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    IFDEF           reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    IFNDEF          reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    IF              reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    NEWLINE         reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    COMMA           reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    RRP             reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    LLP             reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    STRING          reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    TOKEN           reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    CONTINUE        reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    SEPARATOR       reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    NUMBER          reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    ID              reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    ENDIF           reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    $end            reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    _ENDFILE_       reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)
    ELSE            reduce using rule 48 (pragma -> PRAGMA ID EQ INTEGER .)


state 122

    (46) pragma -> PRAGMA ID EQ ID .

    LINE            reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    INIT            reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    UNDEF           reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    REQUIRE         reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    PRAGMA          reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    DEFINE          reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    INCLUDE         reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    IFDEF           reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    IFNDEF          reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    IF              reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    NEWLINE         reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    COMMA           reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    RRP             reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    LLP             reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    STRING          reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    TOKEN           reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    CONTINUE        reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    SEPARATOR       reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    NUMBER          reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    ID              reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    ENDIF           reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    $end            reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    _ENDFILE_       reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)
    ELSE            reduce using rule 46 (pragma -> PRAGMA ID EQ ID .)


state 123

    (47) pragma -> PRAGMA ID EQ STRING .

    LINE            reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    INIT            reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    UNDEF           reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    REQUIRE         reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    PRAGMA          reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    DEFINE          reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    INCLUDE         reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    IFDEF           reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    IFNDEF          reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    IF              reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    NEWLINE         reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    COMMA           reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    RRP             reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    LLP             reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    STRING          reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    TOKEN           reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    CONTINUE        reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    SEPARATOR       reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    NUMBER          reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    ID              reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    ENDIF           reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    $end            reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    _ENDFILE_       reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)
    ELSE            reduce using rule 47 (pragma -> PRAGMA ID EQ STRING .)


state 124

    (50) pragma -> PRAGMA POP LP ID . RP

    RP              shift and go to state 134


state 125

    (84) argstring -> argstring LLP . arglist RRP
    (75) arglist -> . arglist COMMA arg
    (76) arglist -> . arg
    (77) arg -> .
    (78) arg -> . argstring
    (79) argstring -> . token
    (80) argstring -> . macrocall
    (81) argstring -> . LLP arglist RRP
    (82) argstring -> . argstring token
    (83) argstring -> . argstring macrocall
    (84) argstring -> . argstring LLP arglist RRP
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    RRP             reduce using rule 77 (arg -> .)
    COMMA           reduce using rule 77 (arg -> .)
    LLP             shift and go to state 101
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    argstring                      shift and go to state 99
    macrocall                      shift and go to state 102
    arglist                        shift and go to state 135
    token                          shift and go to state 103
    arg                            shift and go to state 104

state 126

    (83) argstring -> argstring macrocall .

    LLP             reduce using rule 83 (argstring -> argstring macrocall .)
    STRING          reduce using rule 83 (argstring -> argstring macrocall .)
    TOKEN           reduce using rule 83 (argstring -> argstring macrocall .)
    CONTINUE        reduce using rule 83 (argstring -> argstring macrocall .)
    SEPARATOR       reduce using rule 83 (argstring -> argstring macrocall .)
    NUMBER          reduce using rule 83 (argstring -> argstring macrocall .)
    ID              reduce using rule 83 (argstring -> argstring macrocall .)
    RRP             reduce using rule 83 (argstring -> argstring macrocall .)
    COMMA           reduce using rule 83 (argstring -> argstring macrocall .)


state 127

    (82) argstring -> argstring token .

    LLP             reduce using rule 82 (argstring -> argstring token .)
    STRING          reduce using rule 82 (argstring -> argstring token .)
    TOKEN           reduce using rule 82 (argstring -> argstring token .)
    CONTINUE        reduce using rule 82 (argstring -> argstring token .)
    SEPARATOR       reduce using rule 82 (argstring -> argstring token .)
    NUMBER          reduce using rule 82 (argstring -> argstring token .)
    ID              reduce using rule 82 (argstring -> argstring token .)
    RRP             reduce using rule 82 (argstring -> argstring token .)
    COMMA           reduce using rule 82 (argstring -> argstring token .)


state 128

    (74) args -> LLP arglist RRP .

    NEWLINE         reduce using rule 74 (args -> LLP arglist RRP .)
    COMMA           reduce using rule 74 (args -> LLP arglist RRP .)
    RRP             reduce using rule 74 (args -> LLP arglist RRP .)
    LLP             reduce using rule 74 (args -> LLP arglist RRP .)
    STRING          reduce using rule 74 (args -> LLP arglist RRP .)
    TOKEN           reduce using rule 74 (args -> LLP arglist RRP .)
    CONTINUE        reduce using rule 74 (args -> LLP arglist RRP .)
    SEPARATOR       reduce using rule 74 (args -> LLP arglist RRP .)
    NUMBER          reduce using rule 74 (args -> LLP arglist RRP .)
    ID              reduce using rule 74 (args -> LLP arglist RRP .)
    NE              reduce using rule 74 (args -> LLP arglist RRP .)
    EQ              reduce using rule 74 (args -> LLP arglist RRP .)
    LT              reduce using rule 74 (args -> LLP arglist RRP .)
    LE              reduce using rule 74 (args -> LLP arglist RRP .)
    GT              reduce using rule 74 (args -> LLP arglist RRP .)
    GE              reduce using rule 74 (args -> LLP arglist RRP .)


state 129

    (75) arglist -> arglist COMMA . arg
    (77) arg -> .
    (78) arg -> . argstring
    (79) argstring -> . token
    (80) argstring -> . macrocall
    (81) argstring -> . LLP arglist RRP
    (82) argstring -> . argstring token
    (83) argstring -> . argstring macrocall
    (84) argstring -> . argstring LLP arglist RRP
    (20) token -> . STRING
    (21) token -> . TOKEN
    (22) token -> . CONTINUE
    (23) token -> . SEPARATOR
    (24) token -> . NUMBER
    (72) macrocall -> . ID args

    RRP             reduce using rule 77 (arg -> .)
    COMMA           reduce using rule 77 (arg -> .)
    LLP             shift and go to state 101
    STRING          shift and go to state 36
    TOKEN           shift and go to state 33
    CONTINUE        shift and go to state 34
    SEPARATOR       shift and go to state 38
    NUMBER          shift and go to state 32
    ID              shift and go to state 28

    argstring                      shift and go to state 99
    macrocall                      shift and go to state 102
    token                          shift and go to state 103
    arg                            shift and go to state 136

state 130

    (81) argstring -> LLP arglist . RRP
    (75) arglist -> arglist . COMMA arg

    RRP             shift and go to state 137
    COMMA           shift and go to state 129


state 131

    (44) paramlist -> paramlist COMMA . ID

    ID              shift and go to state 138


state 132

    (42) params -> LP paramlist RP .

    COMMA           reduce using rule 42 (params -> LP paramlist RP .)
    RRP             reduce using rule 42 (params -> LP paramlist RP .)
    LLP             reduce using rule 42 (params -> LP paramlist RP .)
    STRING          reduce using rule 42 (params -> LP paramlist RP .)
    TOKEN           reduce using rule 42 (params -> LP paramlist RP .)
    CONTINUE        reduce using rule 42 (params -> LP paramlist RP .)
    SEPARATOR       reduce using rule 42 (params -> LP paramlist RP .)
    NUMBER          reduce using rule 42 (params -> LP paramlist RP .)
    ID              reduce using rule 42 (params -> LP paramlist RP .)
    NEWLINE         reduce using rule 42 (params -> LP paramlist RP .)


state 133

    (49) pragma -> PRAGMA PUSH LP ID RP .

    LINE            reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    INIT            reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    UNDEF           reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    REQUIRE         reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    PRAGMA          reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    DEFINE          reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    INCLUDE         reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    IFDEF           reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    IFNDEF          reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    IF              reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    NEWLINE         reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    COMMA           reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    RRP             reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    LLP             reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    STRING          reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    TOKEN           reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    CONTINUE        reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    SEPARATOR       reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    NUMBER          reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    ID              reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    ENDIF           reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    $end            reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    _ENDFILE_       reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)
    ELSE            reduce using rule 49 (pragma -> PRAGMA PUSH LP ID RP .)


state 134

    (50) pragma -> PRAGMA POP LP ID RP .

    LINE            reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    INIT            reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    UNDEF           reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    REQUIRE         reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    PRAGMA          reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    DEFINE          reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    INCLUDE         reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    IFDEF           reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    IFNDEF          reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    IF              reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    NEWLINE         reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    COMMA           reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    RRP             reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    LLP             reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    STRING          reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    TOKEN           reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    CONTINUE        reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    SEPARATOR       reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    NUMBER          reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    ID              reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    ENDIF           reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    $end            reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    _ENDFILE_       reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)
    ELSE            reduce using rule 50 (pragma -> PRAGMA POP LP ID RP .)


state 135

    (84) argstring -> argstring LLP arglist . RRP
    (75) arglist -> arglist . COMMA arg

    RRP             shift and go to state 139
    COMMA           shift and go to state 129


state 136

    (75) arglist -> arglist COMMA arg .

    RRP             reduce using rule 75 (arglist -> arglist COMMA arg .)
    COMMA           reduce using rule 75 (arglist -> arglist COMMA arg .)


state 137

    (81) argstring -> LLP arglist RRP .

    LLP             reduce using rule 81 (argstring -> LLP arglist RRP .)
    STRING          reduce using rule 81 (argstring -> LLP arglist RRP .)
    TOKEN           reduce using rule 81 (argstring -> LLP arglist RRP .)
    CONTINUE        reduce using rule 81 (argstring -> LLP arglist RRP .)
    SEPARATOR       reduce using rule 81 (argstring -> LLP arglist RRP .)
    NUMBER          reduce using rule 81 (argstring -> LLP arglist RRP .)
    ID              reduce using rule 81 (argstring -> LLP arglist RRP .)
    RRP             reduce using rule 81 (argstring -> LLP arglist RRP .)
    COMMA           reduce using rule 81 (argstring -> LLP arglist RRP .)


state 138

    (44) paramlist -> paramlist COMMA ID .

    RP              reduce using rule 44 (paramlist -> paramlist COMMA ID .)
    COMMA           reduce using rule 44 (paramlist -> paramlist COMMA ID .)


state 139

    (84) argstring -> argstring LLP arglist RRP .

    LLP             reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    STRING          reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    TOKEN           reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    CONTINUE        reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    SEPARATOR       reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    NUMBER          reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    ID              reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    RRP             reduce using rule 84 (argstring -> argstring LLP arglist RRP .)
    COMMA           reduce using rule 84 (argstring -> argstring LLP arglist RRP .)

