Created by PLY version 3.10 (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 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 13
    init                           shift and go to state 5
    start                          shift and go to state 14
    defs                           shift and go to state 16
    ifdef                          shift and go to state 18
    undef                          shift and go to state 19
    program                        shift and go to state 12
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 9
    include                        shift and go to state 23
    include_file                   shift and go to state 11
    require                        shift and go to state 25
    line                           shift and go to state 20

state 1

    (39) define -> DEFINE . ID params defs

    ID              shift and go to state 26


state 2

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

    ELSE            shift and go to state 27

    ifdefelseb                     shift and go to state 28

state 3

    (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 29

    expr                           shift and go to state 31
    macrocall                      shift and go to state 30

state 4

    (38) undef -> UNDEF . ID

    ID              shift and go to state 32


state 5

    (4) program -> init .

    ENDIF           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 .)
    ELSE            reduce using rule 4 (program -> init .)
    _ENDFILE_       reduce using rule 4 (program -> init .)
    $end            reduce using rule 4 (program -> init .)


state 6

    (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 33
    FILENAME        shift and go to state 35
    ONCE            shift and go to state 34


state 7

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

    NEWLINE         shift and go to state 36


state 8

    (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 37
    PUSH            shift and go to state 39
    POP             shift and go to state 38


state 9

    (10) program -> define . NEWLINE

    NEWLINE         shift and go to state 40


state 10

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

    ID              shift and go to state 42
    STRING          shift and go to state 41


state 11

    (2) program -> include_file .

    ENDIF           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 .)
    ELSE            reduce using rule 2 (program -> include_file .)
    _ENDFILE_       reduce using rule 2 (program -> include_file .)
    $end            reduce using rule 2 (program -> include_file .)


state 12

    (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 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 46
    init                           shift and go to state 43
    defs                           shift and go to state 47
    ifdef                          shift and go to state 48
    undef                          shift and go to state 49
    line                           shift and go to state 50
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 44
    include                        shift and go to state 23
    include_file                   shift and go to state 45
    require                        shift and go to state 51

state 13

    (8) program -> pragma .

    ENDIF           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 .)
    ELSE            reduce using rule 8 (program -> pragma .)
    _ENDFILE_       reduce using rule 8 (program -> pragma .)
    $end            reduce using rule 8 (program -> pragma .)


state 14

    (0) S' -> start .



state 15

    (55) if_header -> IFDEF . ID

    ID              shift and go to state 52


state 16

    (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 62
    COMMA           shift and go to state 59
    RRP             shift and go to state 58
    LLP             shift and go to state 60
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 54
    macrocall                      shift and go to state 56
    def                            shift and go to state 55

state 17

    (35) require -> REQUIRE . STRING NEWLINE

    STRING          shift and go to state 65


state 18

    (6) program -> ifdef .

    ENDIF           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 .)
    ELSE            reduce using rule 6 (program -> ifdef .)
    _ENDFILE_       reduce using rule 6 (program -> ifdef .)
    $end            reduce using rule 6 (program -> ifdef .)


state 19

    (5) program -> undef .

    ENDIF           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 .)
    ELSE            reduce using rule 5 (program -> undef .)
    _ENDFILE_       reduce using rule 5 (program -> undef .)
    $end            reduce using rule 5 (program -> undef .)


state 20

    (3) program -> line .

    ENDIF           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 .)
    ELSE            reduce using rule 3 (program -> line .)
    _ENDFILE_       reduce using rule 3 (program -> line .)
    $end            reduce using rule 3 (program -> line .)


state 21

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

    NEWLINE         shift and go to state 66


state 22

    (56) if_header -> IFNDEF . ID

    ID              shift and go to state 67


state 23

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

    NEWLINE         shift and go to state 68


state 24

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

    INTEGER         shift and go to state 69


state 25

    (7) program -> require .

    ENDIF           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 .)
    ELSE            reduce using rule 7 (program -> require .)
    _ENDFILE_       reduce using rule 7 (program -> require .)
    $end            reduce using rule 7 (program -> require .)


state 26

    (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 71

    params                         shift and go to state 70

state 27

    (54) ifdefelseb -> ELSE . NEWLINE program

    NEWLINE         shift and go to state 72


state 28

    (52) ifdef -> ifdefelsea ifdefelseb . ENDIF

    ENDIF           shift and go to state 73


state 29

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

    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 -> .)
    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 -> .)
    LLP             shift and go to state 75

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

    args                           shift and go to state 74

state 30

    (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 31

    (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 78
    EQ              shift and go to state 81
    LT              shift and go to state 79
    LE              shift and go to state 77
    GT              shift and go to state 80
    GE              shift and go to state 76


state 32

    (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 33

    (29) include -> INCLUDE STRING .

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


state 34

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

    STRING          shift and go to state 82
    FILENAME        shift and go to state 83


state 35

    (30) include -> INCLUDE FILENAME .

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


state 36

    (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 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 13
    init                           shift and go to state 5
    defs                           shift and go to state 16
    ifdef                          shift and go to state 18
    undef                          shift and go to state 19
    program                        shift and go to state 84
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 9
    include                        shift and go to state 23
    include_file                   shift and go to state 11
    require                        shift and go to state 25
    line                           shift and go to state 20

state 37

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

    ENDIF           reduce using rule 45 (pragma -> PRAGMA ID .)
    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 .)
    ELSE            reduce using rule 45 (pragma -> PRAGMA ID .)
    $end            reduce using rule 45 (pragma -> PRAGMA ID .)
    _ENDFILE_       reduce using rule 45 (pragma -> PRAGMA ID .)
    EQ              shift and go to state 85


state 38

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

    LP              shift and go to state 86


state 39

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

    LP              shift and go to state 87


state 40

    (10) program -> define NEWLINE .

    ENDIF           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 .)
    ELSE            reduce using rule 10 (program -> define NEWLINE .)
    _ENDFILE_       reduce using rule 10 (program -> define NEWLINE .)
    $end            reduce using rule 10 (program -> define NEWLINE .)


state 41

    (37) init -> INIT STRING . NEWLINE

    NEWLINE         shift and go to state 88


state 42

    (36) init -> INIT ID . NEWLINE

    NEWLINE         shift and go to state 89


state 43

    (13) program -> program init .

    ENDIF           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 .)
    ELSE            reduce using rule 13 (program -> program init .)
    _ENDFILE_       reduce using rule 13 (program -> program init .)
    $end            reduce using rule 13 (program -> program init .)


state 44

    (19) program -> program define . NEWLINE

    NEWLINE         shift and go to state 90


state 45

    (11) program -> program include_file .

    ENDIF           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 .)
    ELSE            reduce using rule 11 (program -> program include_file .)
    _ENDFILE_       reduce using rule 11 (program -> program include_file .)
    $end            reduce using rule 11 (program -> program include_file .)


state 46

    (17) program -> program pragma .

    ENDIF           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 .)
    ELSE            reduce using rule 17 (program -> program pragma .)
    _ENDFILE_       reduce using rule 17 (program -> program pragma .)
    $end            reduce using rule 17 (program -> program pragma .)


state 47

    (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 91
    COMMA           shift and go to state 59
    RRP             shift and go to state 58
    LLP             shift and go to state 60
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 54
    def                            shift and go to state 55
    macrocall                      shift and go to state 56

state 48

    (15) program -> program ifdef .

    ENDIF           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 .)
    ELSE            reduce using rule 15 (program -> program ifdef .)
    _ENDFILE_       reduce using rule 15 (program -> program ifdef .)
    $end            reduce using rule 15 (program -> program ifdef .)


state 49

    (14) program -> program undef .

    ENDIF           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 .)
    ELSE            reduce using rule 14 (program -> program undef .)
    _ENDFILE_       reduce using rule 14 (program -> program undef .)
    $end            reduce using rule 14 (program -> program undef .)


state 50

    (12) program -> program line .

    ENDIF           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 .)
    ELSE            reduce using rule 12 (program -> program line .)
    _ENDFILE_       reduce using rule 12 (program -> program line .)
    $end            reduce using rule 12 (program -> program line .)


state 51

    (16) program -> program require .

    ENDIF           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 .)
    ELSE            reduce using rule 16 (program -> program require .)
    _ENDFILE_       reduce using rule 16 (program -> program require .)
    $end            reduce using rule 16 (program -> program require .)


state 52

    (55) if_header -> IFDEF ID .

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


state 53

    (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 .)
    NEWLINE         reduce using rule 20 (token -> STRING .)


state 54

    (67) def -> token .

    NEWLINE         reduce using rule 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 .)


state 55

    (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 56

    (71) def -> macrocall .

    NEWLINE         reduce using rule 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 .)


state 57

    (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 .)
    NEWLINE         reduce using rule 23 (token -> SEPARATOR .)


state 58

    (69) def -> RRP .

    NEWLINE         reduce using rule 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 .)


state 59

    (68) def -> COMMA .

    NEWLINE         reduce using rule 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 .)


state 60

    (70) def -> LLP .

    NEWLINE         reduce using rule 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 .)


state 61

    (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 .)
    NEWLINE         reduce using rule 24 (token -> NUMBER .)


state 62

    (9) program -> defs NEWLINE .

    ENDIF           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 .)
    ELSE            reduce using rule 9 (program -> defs NEWLINE .)
    _ENDFILE_       reduce using rule 9 (program -> defs NEWLINE .)
    $end            reduce using rule 9 (program -> defs NEWLINE .)


state 63

    (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 .)
    NEWLINE         reduce using rule 21 (token -> TOKEN .)


state 64

    (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 .)
    NEWLINE         reduce using rule 22 (token -> CONTINUE .)


state 65

    (35) require -> REQUIRE STRING . NEWLINE

    NEWLINE         shift and go to state 92


state 66

    (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 93
    LINE            shift and go to state 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 13
    init                           shift and go to state 5
    defs                           shift and go to state 16
    ifdef                          shift and go to state 18
    undef                          shift and go to state 19
    program                        shift and go to state 94
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 9
    include                        shift and go to state 23
    include_file                   shift and go to state 11
    require                        shift and go to state 25
    line                           shift and go to state 20

state 67

    (56) if_header -> IFNDEF ID .

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


state 68

    (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 95
    LINE            shift and go to state 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 13
    init                           shift and go to state 5
    defs                           shift and go to state 16
    ifdef                          shift and go to state 18
    undef                          shift and go to state 19
    program                        shift and go to state 96
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 9
    include                        shift and go to state 23
    include_file                   shift and go to state 11
    require                        shift and go to state 25
    line                           shift and go to state 20

state 69

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

    NEWLINE         shift and go to state 97
    STRING          shift and go to state 98


state 70

    (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 99

state 71

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

    RP              shift and go to state 100
    ID              shift and go to state 102

    paramlist                      shift and go to state 101

state 72

    (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 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 13
    init                           shift and go to state 5
    defs                           shift and go to state 16
    program                        shift and go to state 103
    ifdef                          shift and go to state 18
    undef                          shift and go to state 19
    line                           shift and go to state 20
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 9
    include                        shift and go to state 23
    include_file                   shift and go to state 11
    require                        shift and go to state 25

state 73

    (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 .)
    ENDIF           reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    ELSE            reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    _ENDFILE_       reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)
    $end            reduce using rule 52 (ifdef -> ifdefelsea ifdefelseb ENDIF .)


state 74

    (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 .)
    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 .)


state 75

    (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 108
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 104
    arg                            shift and go to state 105
    macrocall                      shift and go to state 106
    arglist                        shift and go to state 109
    argstring                      shift and go to state 107

state 76

    (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 29

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

state 77

    (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 29

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

state 78

    (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 29

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

state 79

    (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 29

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

state 80

    (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 29

    expr                           shift and go to state 114
    macrocall                      shift and go to state 30

state 81

    (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 29

    expr                           shift and go to state 115
    macrocall                      shift and go to state 30

state 82

    (31) include_once -> INCLUDE ONCE STRING .

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


state 83

    (32) include_once -> INCLUDE ONCE FILENAME .

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


state 84

    (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 116
    ELSE            reduce using rule 53 (ifdefelsea -> if_header NEWLINE program .)
    LINE            shift and go to state 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 46
    init                           shift and go to state 43
    defs                           shift and go to state 47
    ifdef                          shift and go to state 48
    undef                          shift and go to state 49
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 44
    include                        shift and go to state 23
    include_file                   shift and go to state 45
    require                        shift and go to state 51
    line                           shift and go to state 50

state 85

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

    ID              shift and go to state 119
    STRING          shift and go to state 117
    INTEGER         shift and go to state 118


state 86

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

    ID              shift and go to state 120


state 87

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

    ID              shift and go to state 121


state 88

    (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 .)
    $end            reduce using rule 37 (init -> INIT STRING NEWLINE .)
    ENDIF           reduce using rule 37 (init -> INIT STRING NEWLINE .)
    _ENDFILE_       reduce using rule 37 (init -> INIT STRING NEWLINE .)
    ELSE            reduce using rule 37 (init -> INIT STRING NEWLINE .)


state 89

    (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 .)
    $end            reduce using rule 36 (init -> INIT ID NEWLINE .)
    ENDIF           reduce using rule 36 (init -> INIT ID NEWLINE .)
    _ENDFILE_       reduce using rule 36 (init -> INIT ID NEWLINE .)
    ELSE            reduce using rule 36 (init -> INIT ID NEWLINE .)


state 90

    (19) program -> program define NEWLINE .

    ENDIF           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 .)
    ELSE            reduce using rule 19 (program -> program define NEWLINE .)
    _ENDFILE_       reduce using rule 19 (program -> program define NEWLINE .)
    $end            reduce using rule 19 (program -> program define NEWLINE .)


state 91

    (18) program -> program defs NEWLINE .

    ENDIF           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 .)
    ELSE            reduce using rule 18 (program -> program defs NEWLINE .)
    _ENDFILE_       reduce using rule 18 (program -> program defs NEWLINE .)
    $end            reduce using rule 18 (program -> program defs NEWLINE .)


state 92

    (35) require -> REQUIRE STRING NEWLINE .

    ENDIF           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 .)
    ELSE            reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    _ENDFILE_       reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)
    $end            reduce using rule 35 (require -> REQUIRE STRING NEWLINE .)


state 93

    (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_ .)
    _ENDFILE_       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 94

    (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 122
    LINE            shift and go to state 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 46
    init                           shift and go to state 43
    defs                           shift and go to state 47
    ifdef                          shift and go to state 48
    undef                          shift and go to state 49
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 44
    include                        shift and go to state 23
    include_file                   shift and go to state 45
    require                        shift and go to state 51
    line                           shift and go to state 50

state 95

    (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_ .)
    _ENDFILE_       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 96

    (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 123
    LINE            shift and go to state 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 46
    init                           shift and go to state 43
    defs                           shift and go to state 47
    ifdef                          shift and go to state 48
    undef                          shift and go to state 49
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 44
    include                        shift and go to state 23
    include_file                   shift and go to state 45
    require                        shift and go to state 51
    line                           shift and go to state 50

state 97

    (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 .)
    $end            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 .)


state 98

    (34) line -> LINE INTEGER STRING . NEWLINE

    NEWLINE         shift and go to state 124


state 99

    (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 59
    RRP             shift and go to state 58
    LLP             shift and go to state 60
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 54
    def                            shift and go to state 55
    macrocall                      shift and go to state 56

state 100

    (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 101

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

    RP              shift and go to state 125
    COMMA           shift and go to state 126


state 102

    (43) paramlist -> ID .

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


state 103

    (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 24
    INIT            shift and go to state 10
    UNDEF           shift and go to state 4
    REQUIRE         shift and go to state 17
    PRAGMA          shift and go to state 8
    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 1
    INCLUDE         shift and go to state 6
    IFDEF           shift and go to state 15
    IFNDEF          shift and go to state 22
    IF              shift and go to state 3

    ifdefelsea                     shift and go to state 2
    pragma                         shift and go to state 46
    init                           shift and go to state 43
    defs                           shift and go to state 47
    ifdef                          shift and go to state 48
    undef                          shift and go to state 49
    line                           shift and go to state 50
    include_once                   shift and go to state 21
    if_header                      shift and go to state 7
    define                         shift and go to state 44
    include                        shift and go to state 23
    include_file                   shift and go to state 45
    require                        shift and go to state 51

state 104

    (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 105

    (76) arglist -> arg .

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


state 106

    (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 107

    (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 129
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

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

state 108

    (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 108
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 104
    arg                            shift and go to state 105
    macrocall                      shift and go to state 106
    arglist                        shift and go to state 130
    argstring                      shift and go to state 107

state 109

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

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


state 110

    (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 78 ]
  ! EQ              [ shift and go to state 81 ]
  ! LT              [ shift and go to state 79 ]
  ! LE              [ shift and go to state 77 ]
  ! GT              [ shift and go to state 80 ]
  ! GE              [ shift and go to state 76 ]


state 111

    (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 78 ]
  ! EQ              [ shift and go to state 81 ]
  ! LT              [ shift and go to state 79 ]
  ! LE              [ shift and go to state 77 ]
  ! GT              [ shift and go to state 80 ]
  ! GE              [ shift and go to state 76 ]


state 112

    (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 78 ]
  ! EQ              [ shift and go to state 81 ]
  ! LT              [ shift and go to state 79 ]
  ! LE              [ shift and go to state 77 ]
  ! GT              [ shift and go to state 80 ]
  ! GE              [ shift and go to state 76 ]


state 113

    (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 78 ]
  ! EQ              [ shift and go to state 81 ]
  ! LT              [ shift and go to state 79 ]
  ! LE              [ shift and go to state 77 ]
  ! GT              [ shift and go to state 80 ]
  ! GE              [ shift and go to state 76 ]


state 114

    (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 78 ]
  ! EQ              [ shift and go to state 81 ]
  ! LT              [ shift and go to state 79 ]
  ! LE              [ shift and go to state 77 ]
  ! GT              [ shift and go to state 80 ]
  ! GE              [ shift and go to state 76 ]


state 115

    (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 78 ]
  ! EQ              [ shift and go to state 81 ]
  ! LT              [ shift and go to state 79 ]
  ! LE              [ shift and go to state 77 ]
  ! GT              [ shift and go to state 80 ]
  ! GE              [ shift and go to state 76 ]


state 116

    (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 .)
    ENDIF           reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    ELSE            reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    _ENDFILE_       reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)
    $end            reduce using rule 51 (ifdef -> if_header NEWLINE program ENDIF .)


state 117

    (47) pragma -> PRAGMA ID EQ STRING .

    ENDIF           reduce using rule 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 .)
    ELSE            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 .)


state 118

    (48) pragma -> PRAGMA ID EQ INTEGER .

    ENDIF           reduce using rule 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 .)
    ELSE            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 .)


state 119

    (46) pragma -> PRAGMA ID EQ ID .

    ENDIF           reduce using rule 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 .)
    ELSE            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 .)


state 120

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

    RP              shift and go to state 133


state 121

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

    RP              shift and go to state 134


state 122

    (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_ .)
    _ENDFILE_       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 123

    (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_ .)
    _ENDFILE_       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 124

    (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 .)
    $end            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 .)


state 125

    (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 126

    (44) paramlist -> paramlist COMMA . ID

    ID              shift and go to state 135


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

    (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 129

    (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 108
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 104
    arg                            shift and go to state 105
    macrocall                      shift and go to state 106
    arglist                        shift and go to state 136
    argstring                      shift and go to state 107

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 132


state 131

    (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 .)
    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 .)


state 132

    (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 108
    STRING          shift and go to state 53
    TOKEN           shift and go to state 63
    CONTINUE        shift and go to state 64
    SEPARATOR       shift and go to state 57
    NUMBER          shift and go to state 61
    ID              shift and go to state 29

    token                          shift and go to state 104
    arg                            shift and go to state 138
    macrocall                      shift and go to state 106
    argstring                      shift and go to state 107

state 133

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

    ENDIF           reduce using rule 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 .)
    ELSE            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 .)


state 134

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

    ENDIF           reduce using rule 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 .)
    ELSE            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 .)


state 135

    (44) paramlist -> paramlist COMMA ID .

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


state 136

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

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


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

    (75) arglist -> arglist COMMA arg .

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


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 .)

