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

Grammar

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

Terminals, with rules where they appear

COMMA                : 50 74 81
CONTINUE             : 26
DEFINE               : 45
ELSE                 : 60
ENDIF                : 57 58
EQ                   : 52 53 54 66
ERROR                : 43
FILENAME             : 34 36
GE                   : 70
GT                   : 69
ID                   : 40 42 45 49 50 51 52 52 53 54 55 56 61 62 78
IF                   : 63
IFDEF                : 61
IFNDEF               : 62
INCLUDE              : 33 34 35 36
INIT                 : 40 41
INTEGER              : 37 38 54
LE                   : 68
LINE                 : 37 38
LLP                  : 76 80 87 90
LP                   : 47 48 55 56
LT                   : 67
NE                   : 65
NEWLINE              : 11 12 22 23 29 30 31 32 37 38 39 40 41 57 59 60
NUMBER               : 28
ONCE                 : 35 36
POP                  : 56
PRAGMA               : 51 52 53 54 55 56
PUSH                 : 55
REQUIRE              : 39
RP                   : 47 48 55 56
RRP                  : 75 80 87 90
SEPARATOR            : 27
STRING               : 24 33 35 38 39 41 43 44 53
TOKEN                : 25
UNDEF                : 42
WARNING              : 44
_ENDFILE_            : 29 30 31 32
error                : 

Nonterminals, with rules where they appear

arg                  : 81 82
arglist              : 80 81 87 90
args                 : 78
argstring            : 84 88 89 90
def                  : 72
define               : 12 23
defs                 : 11 22 45 72
errormsg             : 9 20
expr                 : 63 65 65 66 66 67 67 68 68 69 69 70 70
if_header            : 57 59
ifdef                : 6 17
ifdefelsea           : 58
ifdefelseb           : 58
include              : 29 30
include_file         : 2 13
include_once         : 31 32
init                 : 4 15
line                 : 3 14
macrocall            : 64 77 86 89
paramlist            : 48 50
params               : 45
pragma               : 8 19
program              : 1 13 14 15 16 17 18 19 20 21 22 23 29 32 57 59 60
require              : 7 18
start                : 0
token                : 73 85 88
undef                : 5 16
warningmsg           : 10 21

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 -> . errormsg
    (10) program -> . warningmsg
    (11) program -> . defs NEWLINE
    (12) program -> . define NEWLINE
    (13) program -> . program include_file
    (14) program -> . program line
    (15) program -> . program init
    (16) program -> . program undef
    (17) program -> . program ifdef
    (18) program -> . program require
    (19) program -> . program pragma
    (20) program -> . program errormsg
    (21) program -> . program warningmsg
    (22) program -> . program defs NEWLINE
    (23) program -> . program define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 23
    defs                           shift and go to state 24
    program                        shift and go to state 25
    include                        shift and go to state 3
    require                        shift and go to state 15
    line                           shift and go to state 27
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 12
    start                          shift and go to state 18
    include_file                   shift and go to state 22
    pragma                         shift and go to state 5
    define                         shift and go to state 20
    if_header                      shift and go to state 11
    init                           shift and go to state 7
    warningmsg                     shift and go to state 28
    errormsg                       shift and go to state 8
    ifdefelsea                     shift and go to state 14

state 1

    (45) define -> DEFINE . ID params defs

    ID              shift and go to state 30


state 2

    (61) if_header -> IFDEF . ID

    ID              shift and go to state 31


state 3

    (29) include_file -> include . NEWLINE program _ENDFILE_
    (30) include_file -> include . NEWLINE _ENDFILE_

    NEWLINE         shift and go to state 32


state 4

    (40) init -> INIT . ID NEWLINE
    (41) init -> INIT . STRING NEWLINE

    ID              shift and go to state 33
    STRING          shift and go to state 34


state 5

    (8) program -> pragma .

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


state 6

    (63) if_header -> IF . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

    expr                           shift and go to state 35
    macrocall                      shift and go to state 37

state 7

    (4) program -> init .

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


state 8

    (9) program -> errormsg .

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


state 9

    (51) pragma -> PRAGMA . ID
    (52) pragma -> PRAGMA . ID EQ ID
    (53) pragma -> PRAGMA . ID EQ STRING
    (54) pragma -> PRAGMA . ID EQ INTEGER
    (55) pragma -> PRAGMA . PUSH LP ID RP
    (56) pragma -> PRAGMA . POP LP ID RP

    ID              shift and go to state 40
    PUSH            shift and go to state 38
    POP             shift and go to state 39


state 10

    (33) include -> INCLUDE . STRING
    (34) include -> INCLUDE . FILENAME
    (35) include_once -> INCLUDE . ONCE STRING
    (36) include_once -> INCLUDE . ONCE FILENAME

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


state 11

    (57) ifdef -> if_header . NEWLINE program ENDIF
    (59) ifdefelsea -> if_header . NEWLINE program

    NEWLINE         shift and go to state 44


state 12

    (6) program -> ifdef .

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


state 13

    (42) undef -> UNDEF . ID

    ID              shift and go to state 45


state 14

    (58) ifdef -> ifdefelsea . ifdefelseb ENDIF
    (60) ifdefelseb -> . ELSE NEWLINE program

    ELSE            shift and go to state 47

    ifdefelseb                     shift and go to state 46

state 15

    (7) program -> require .

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


state 16

    (31) include_file -> include_once . NEWLINE _ENDFILE_
    (32) include_file -> include_once . NEWLINE program _ENDFILE_

    NEWLINE         shift and go to state 48


state 17

    (44) warningmsg -> WARNING . STRING

    STRING          shift and go to state 49


state 18

    (0) S' -> start .



state 19

    (39) require -> REQUIRE . STRING NEWLINE

    STRING          shift and go to state 50


state 20

    (12) program -> define . NEWLINE

    NEWLINE         shift and go to state 51


state 21

    (62) if_header -> IFNDEF . ID

    ID              shift and go to state 52


state 22

    (2) program -> include_file .

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


state 23

    (5) program -> undef .

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


state 24

    (11) program -> defs . NEWLINE
    (72) defs -> defs . def
    (73) def -> . token
    (74) def -> . COMMA
    (75) def -> . RRP
    (76) def -> . LLP
    (77) def -> . macrocall
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    NEWLINE         shift and go to state 63
    COMMA           shift and go to state 57
    RRP             shift and go to state 55
    LLP             shift and go to state 56
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    def                            shift and go to state 53
    token                          shift and go to state 60
    macrocall                      shift and go to state 64

state 25

    (1) start -> program .
    (13) program -> program . include_file
    (14) program -> program . line
    (15) program -> program . init
    (16) program -> program . undef
    (17) program -> program . ifdef
    (18) program -> program . require
    (19) program -> program . pragma
    (20) program -> program . errormsg
    (21) program -> program . warningmsg
    (22) program -> program . defs NEWLINE
    (23) program -> program . define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    $end            reduce using rule 1 (start -> program .)
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 72
    defs                           shift and go to state 73
    require                        shift and go to state 70
    line                           shift and go to state 74
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 69
    include_file                   shift and go to state 65
    include                        shift and go to state 3
    pragma                         shift and go to state 66
    define                         shift and go to state 71
    if_header                      shift and go to state 11
    init                           shift and go to state 67
    warningmsg                     shift and go to state 75
    errormsg                       shift and go to state 68
    ifdefelsea                     shift and go to state 14

state 26

    (37) line -> LINE . INTEGER NEWLINE
    (38) line -> LINE . INTEGER STRING NEWLINE

    INTEGER         shift and go to state 76


state 27

    (3) program -> line .

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


state 28

    (10) program -> warningmsg .

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


state 29

    (43) errormsg -> ERROR . STRING

    STRING          shift and go to state 77


state 30

    (45) define -> DEFINE ID . params defs
    (46) params -> .
    (47) params -> . LP RP
    (48) params -> . LP paramlist RP

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

    params                         shift and go to state 78

state 31

    (61) if_header -> IFDEF ID .

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


state 32

    (29) include_file -> include NEWLINE . program _ENDFILE_
    (30) 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 -> . errormsg
    (10) program -> . warningmsg
    (11) program -> . defs NEWLINE
    (12) program -> . define NEWLINE
    (13) program -> . program include_file
    (14) program -> . program line
    (15) program -> . program init
    (16) program -> . program undef
    (17) program -> . program ifdef
    (18) program -> . program require
    (19) program -> . program pragma
    (20) program -> . program errormsg
    (21) program -> . program warningmsg
    (22) program -> . program defs NEWLINE
    (23) program -> . program define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 80
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 23
    defs                           shift and go to state 24
    program                        shift and go to state 81
    require                        shift and go to state 15
    line                           shift and go to state 27
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 12
    include                        shift and go to state 3
    include_file                   shift and go to state 22
    pragma                         shift and go to state 5
    define                         shift and go to state 20
    if_header                      shift and go to state 11
    init                           shift and go to state 7
    warningmsg                     shift and go to state 28
    errormsg                       shift and go to state 8
    ifdefelsea                     shift and go to state 14

state 33

    (40) init -> INIT ID . NEWLINE

    NEWLINE         shift and go to state 82


state 34

    (41) init -> INIT STRING . NEWLINE

    NEWLINE         shift and go to state 83


state 35

    (63) if_header -> IF expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

    NEWLINE         reduce using rule 63 (if_header -> IF expr .)
    NE              shift and go to state 88
    EQ              shift and go to state 84
    LT              shift and go to state 89
    LE              shift and go to state 87
    GT              shift and go to state 85
    GE              shift and go to state 86


state 36

    (78) macrocall -> ID . args
    (79) args -> .
    (80) args -> . LLP arglist RRP

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

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

    args                           shift and go to state 91

state 37

    (64) expr -> macrocall .

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


state 38

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

    LP              shift and go to state 92


state 39

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

    LP              shift and go to state 93


state 40

    (51) pragma -> PRAGMA ID .
    (52) pragma -> PRAGMA ID . EQ ID
    (53) pragma -> PRAGMA ID . EQ STRING
    (54) pragma -> PRAGMA ID . EQ INTEGER

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


state 41

    (35) include_once -> INCLUDE ONCE . STRING
    (36) include_once -> INCLUDE ONCE . FILENAME

    STRING          shift and go to state 95
    FILENAME        shift and go to state 96


state 42

    (33) include -> INCLUDE STRING .

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


state 43

    (34) include -> INCLUDE FILENAME .

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


state 44

    (57) ifdef -> if_header NEWLINE . program ENDIF
    (59) 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 -> . errormsg
    (10) program -> . warningmsg
    (11) program -> . defs NEWLINE
    (12) program -> . define NEWLINE
    (13) program -> . program include_file
    (14) program -> . program line
    (15) program -> . program init
    (16) program -> . program undef
    (17) program -> . program ifdef
    (18) program -> . program require
    (19) program -> . program pragma
    (20) program -> . program errormsg
    (21) program -> . program warningmsg
    (22) program -> . program defs NEWLINE
    (23) program -> . program define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 23
    defs                           shift and go to state 24
    program                        shift and go to state 97
    require                        shift and go to state 15
    line                           shift and go to state 27
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 12
    include_file                   shift and go to state 22
    include                        shift and go to state 3
    pragma                         shift and go to state 5
    define                         shift and go to state 20
    if_header                      shift and go to state 11
    init                           shift and go to state 7
    warningmsg                     shift and go to state 28
    errormsg                       shift and go to state 8
    ifdefelsea                     shift and go to state 14

state 45

    (42) undef -> UNDEF ID .

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


state 46

    (58) ifdef -> ifdefelsea ifdefelseb . ENDIF

    ENDIF           shift and go to state 98


state 47

    (60) ifdefelseb -> ELSE . NEWLINE program

    NEWLINE         shift and go to state 99


state 48

    (31) include_file -> include_once NEWLINE . _ENDFILE_
    (32) 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 -> . errormsg
    (10) program -> . warningmsg
    (11) program -> . defs NEWLINE
    (12) program -> . define NEWLINE
    (13) program -> . program include_file
    (14) program -> . program line
    (15) program -> . program init
    (16) program -> . program undef
    (17) program -> . program ifdef
    (18) program -> . program require
    (19) program -> . program pragma
    (20) program -> . program errormsg
    (21) program -> . program warningmsg
    (22) program -> . program defs NEWLINE
    (23) program -> . program define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 100
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 23
    defs                           shift and go to state 24
    program                        shift and go to state 101
    require                        shift and go to state 15
    line                           shift and go to state 27
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 12
    include_file                   shift and go to state 22
    include                        shift and go to state 3
    pragma                         shift and go to state 5
    define                         shift and go to state 20
    if_header                      shift and go to state 11
    init                           shift and go to state 7
    warningmsg                     shift and go to state 28
    errormsg                       shift and go to state 8
    ifdefelsea                     shift and go to state 14

state 49

    (44) warningmsg -> WARNING STRING .

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


state 50

    (39) require -> REQUIRE STRING . NEWLINE

    NEWLINE         shift and go to state 102


state 51

    (12) program -> define NEWLINE .

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


state 52

    (62) if_header -> IFNDEF ID .

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


state 53

    (72) defs -> defs def .

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


state 54

    (28) token -> NUMBER .

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


state 55

    (75) def -> RRP .

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


state 56

    (76) def -> LLP .

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


state 57

    (74) def -> COMMA .

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


state 58

    (26) token -> CONTINUE .

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


state 59

    (27) token -> SEPARATOR .

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


state 60

    (73) def -> token .

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


state 61

    (24) token -> STRING .

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


state 62

    (25) token -> TOKEN .

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


state 63

    (11) program -> defs NEWLINE .

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


state 64

    (77) def -> macrocall .

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


state 65

    (13) program -> program include_file .

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


state 66

    (19) program -> program pragma .

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


state 67

    (15) program -> program init .

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


state 68

    (20) program -> program errormsg .

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


state 69

    (17) program -> program ifdef .

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


state 70

    (18) program -> program require .

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


state 71

    (23) program -> program define . NEWLINE

    NEWLINE         shift and go to state 103


state 72

    (16) program -> program undef .

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


state 73

    (22) program -> program defs . NEWLINE
    (72) defs -> defs . def
    (73) def -> . token
    (74) def -> . COMMA
    (75) def -> . RRP
    (76) def -> . LLP
    (77) def -> . macrocall
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    NEWLINE         shift and go to state 104
    COMMA           shift and go to state 57
    RRP             shift and go to state 55
    LLP             shift and go to state 56
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    def                            shift and go to state 53
    token                          shift and go to state 60
    macrocall                      shift and go to state 64

state 74

    (14) program -> program line .

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


state 75

    (21) program -> program warningmsg .

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


state 76

    (37) line -> LINE INTEGER . NEWLINE
    (38) line -> LINE INTEGER . STRING NEWLINE

    NEWLINE         shift and go to state 105
    STRING          shift and go to state 106


state 77

    (43) errormsg -> ERROR STRING .

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


state 78

    (45) define -> DEFINE ID params . defs
    (71) defs -> .
    (72) defs -> . defs def

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

    defs                           shift and go to state 107

state 79

    (47) params -> LP . RP
    (48) params -> LP . paramlist RP
    (49) paramlist -> . ID
    (50) paramlist -> . paramlist COMMA ID

    RP              shift and go to state 108
    ID              shift and go to state 110

    paramlist                      shift and go to state 109

state 80

    (30) include_file -> include NEWLINE _ENDFILE_ .

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


state 81

    (29) include_file -> include NEWLINE program . _ENDFILE_
    (13) program -> program . include_file
    (14) program -> program . line
    (15) program -> program . init
    (16) program -> program . undef
    (17) program -> program . ifdef
    (18) program -> program . require
    (19) program -> program . pragma
    (20) program -> program . errormsg
    (21) program -> program . warningmsg
    (22) program -> program . defs NEWLINE
    (23) program -> program . define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 111
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 72
    defs                           shift and go to state 73
    require                        shift and go to state 70
    line                           shift and go to state 74
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 69
    include                        shift and go to state 3
    include_file                   shift and go to state 65
    pragma                         shift and go to state 66
    define                         shift and go to state 71
    if_header                      shift and go to state 11
    init                           shift and go to state 67
    warningmsg                     shift and go to state 75
    errormsg                       shift and go to state 68
    ifdefelsea                     shift and go to state 14

state 82

    (40) init -> INIT ID NEWLINE .

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


state 83

    (41) init -> INIT STRING NEWLINE .

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


state 84

    (66) expr -> expr EQ . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

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

state 85

    (69) expr -> expr GT . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

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

state 86

    (70) expr -> expr GE . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

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

state 87

    (68) expr -> expr LE . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

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

state 88

    (65) expr -> expr NE . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

    expr                           shift and go to state 116
    macrocall                      shift and go to state 37

state 89

    (67) expr -> expr LT . expr
    (64) expr -> . macrocall
    (65) expr -> . expr NE expr
    (66) expr -> . expr EQ expr
    (67) expr -> . expr LT expr
    (68) expr -> . expr LE expr
    (69) expr -> . expr GT expr
    (70) expr -> . expr GE expr
    (78) macrocall -> . ID args

    ID              shift and go to state 36

    expr                           shift and go to state 117
    macrocall                      shift and go to state 37

state 90

    (80) args -> LLP . arglist RRP
    (81) arglist -> . arglist COMMA arg
    (82) arglist -> . arg
    (83) arg -> .
    (84) arg -> . argstring
    (85) argstring -> . token
    (86) argstring -> . macrocall
    (87) argstring -> . LLP arglist RRP
    (88) argstring -> . argstring token
    (89) argstring -> . argstring macrocall
    (90) argstring -> . argstring LLP arglist RRP
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    RRP             reduce using rule 83 (arg -> .)
    COMMA           reduce using rule 83 (arg -> .)
    LLP             shift and go to state 120
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    arg                            shift and go to state 118
    macrocall                      shift and go to state 123
    token                          shift and go to state 122
    argstring                      shift and go to state 119
    arglist                        shift and go to state 121

state 91

    (78) macrocall -> ID args .

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


state 92

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

    ID              shift and go to state 124


state 93

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

    ID              shift and go to state 125


state 94

    (52) pragma -> PRAGMA ID EQ . ID
    (53) pragma -> PRAGMA ID EQ . STRING
    (54) pragma -> PRAGMA ID EQ . INTEGER

    ID              shift and go to state 126
    STRING          shift and go to state 127
    INTEGER         shift and go to state 128


state 95

    (35) include_once -> INCLUDE ONCE STRING .

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


state 96

    (36) include_once -> INCLUDE ONCE FILENAME .

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


state 97

    (57) ifdef -> if_header NEWLINE program . ENDIF
    (59) ifdefelsea -> if_header NEWLINE program .
    (13) program -> program . include_file
    (14) program -> program . line
    (15) program -> program . init
    (16) program -> program . undef
    (17) program -> program . ifdef
    (18) program -> program . require
    (19) program -> program . pragma
    (20) program -> program . errormsg
    (21) program -> program . warningmsg
    (22) program -> program . defs NEWLINE
    (23) program -> program . define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    ENDIF           shift and go to state 129
    ELSE            reduce using rule 59 (ifdefelsea -> if_header NEWLINE program .)
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 72
    defs                           shift and go to state 73
    require                        shift and go to state 70
    line                           shift and go to state 74
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 69
    include_file                   shift and go to state 65
    include                        shift and go to state 3
    pragma                         shift and go to state 66
    define                         shift and go to state 71
    if_header                      shift and go to state 11
    init                           shift and go to state 67
    warningmsg                     shift and go to state 75
    errormsg                       shift and go to state 68
    ifdefelsea                     shift and go to state 14

state 98

    (58) ifdef -> ifdefelsea ifdefelseb ENDIF .

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


state 99

    (60) 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 -> . errormsg
    (10) program -> . warningmsg
    (11) program -> . defs NEWLINE
    (12) program -> . define NEWLINE
    (13) program -> . program include_file
    (14) program -> . program line
    (15) program -> . program init
    (16) program -> . program undef
    (17) program -> . program ifdef
    (18) program -> . program require
    (19) program -> . program pragma
    (20) program -> . program errormsg
    (21) program -> . program warningmsg
    (22) program -> . program defs NEWLINE
    (23) program -> . program define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 23
    defs                           shift and go to state 24
    program                        shift and go to state 130
    require                        shift and go to state 15
    line                           shift and go to state 27
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 12
    include_file                   shift and go to state 22
    include                        shift and go to state 3
    pragma                         shift and go to state 5
    define                         shift and go to state 20
    if_header                      shift and go to state 11
    init                           shift and go to state 7
    warningmsg                     shift and go to state 28
    errormsg                       shift and go to state 8
    ifdefelsea                     shift and go to state 14

state 100

    (31) include_file -> include_once NEWLINE _ENDFILE_ .

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


state 101

    (32) include_file -> include_once NEWLINE program . _ENDFILE_
    (13) program -> program . include_file
    (14) program -> program . line
    (15) program -> program . init
    (16) program -> program . undef
    (17) program -> program . ifdef
    (18) program -> program . require
    (19) program -> program . pragma
    (20) program -> program . errormsg
    (21) program -> program . warningmsg
    (22) program -> program . defs NEWLINE
    (23) program -> program . define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    _ENDFILE_       shift and go to state 131
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 72
    defs                           shift and go to state 73
    require                        shift and go to state 70
    line                           shift and go to state 74
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 69
    include_file                   shift and go to state 65
    include                        shift and go to state 3
    pragma                         shift and go to state 66
    define                         shift and go to state 71
    if_header                      shift and go to state 11
    init                           shift and go to state 67
    warningmsg                     shift and go to state 75
    errormsg                       shift and go to state 68
    ifdefelsea                     shift and go to state 14

state 102

    (39) require -> REQUIRE STRING NEWLINE .

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


state 103

    (23) program -> program define NEWLINE .

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


state 104

    (22) program -> program defs NEWLINE .

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


state 105

    (37) line -> LINE INTEGER NEWLINE .

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


state 106

    (38) line -> LINE INTEGER STRING . NEWLINE

    NEWLINE         shift and go to state 132


state 107

    (45) define -> DEFINE ID params defs .
    (72) defs -> defs . def
    (73) def -> . token
    (74) def -> . COMMA
    (75) def -> . RRP
    (76) def -> . LLP
    (77) def -> . macrocall
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    NEWLINE         reduce using rule 45 (define -> DEFINE ID params defs .)
    COMMA           shift and go to state 57
    RRP             shift and go to state 55
    LLP             shift and go to state 56
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    def                            shift and go to state 53
    token                          shift and go to state 60
    macrocall                      shift and go to state 64

state 108

    (47) params -> LP RP .

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


state 109

    (48) params -> LP paramlist . RP
    (50) paramlist -> paramlist . COMMA ID

    RP              shift and go to state 133
    COMMA           shift and go to state 134


state 110

    (49) paramlist -> ID .

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


state 111

    (29) include_file -> include NEWLINE program _ENDFILE_ .

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


state 112

    (66) expr -> expr EQ expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

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

  ! NE              [ shift and go to state 88 ]
  ! EQ              [ shift and go to state 84 ]
  ! LT              [ shift and go to state 89 ]
  ! LE              [ shift and go to state 87 ]
  ! GT              [ shift and go to state 85 ]
  ! GE              [ shift and go to state 86 ]


state 113

    (69) expr -> expr GT expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

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

  ! NE              [ shift and go to state 88 ]
  ! EQ              [ shift and go to state 84 ]
  ! LT              [ shift and go to state 89 ]
  ! LE              [ shift and go to state 87 ]
  ! GT              [ shift and go to state 85 ]
  ! GE              [ shift and go to state 86 ]


state 114

    (70) expr -> expr GE expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

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

  ! NE              [ shift and go to state 88 ]
  ! EQ              [ shift and go to state 84 ]
  ! LT              [ shift and go to state 89 ]
  ! LE              [ shift and go to state 87 ]
  ! GT              [ shift and go to state 85 ]
  ! GE              [ shift and go to state 86 ]


state 115

    (68) expr -> expr LE expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

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

  ! NE              [ shift and go to state 88 ]
  ! EQ              [ shift and go to state 84 ]
  ! LT              [ shift and go to state 89 ]
  ! LE              [ shift and go to state 87 ]
  ! GT              [ shift and go to state 85 ]
  ! GE              [ shift and go to state 86 ]


state 116

    (65) expr -> expr NE expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

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

  ! NE              [ shift and go to state 88 ]
  ! EQ              [ shift and go to state 84 ]
  ! LT              [ shift and go to state 89 ]
  ! LE              [ shift and go to state 87 ]
  ! GT              [ shift and go to state 85 ]
  ! GE              [ shift and go to state 86 ]


state 117

    (67) expr -> expr LT expr .
    (65) expr -> expr . NE expr
    (66) expr -> expr . EQ expr
    (67) expr -> expr . LT expr
    (68) expr -> expr . LE expr
    (69) expr -> expr . GT expr
    (70) expr -> expr . GE expr

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

  ! NE              [ shift and go to state 88 ]
  ! EQ              [ shift and go to state 84 ]
  ! LT              [ shift and go to state 89 ]
  ! LE              [ shift and go to state 87 ]
  ! GT              [ shift and go to state 85 ]
  ! GE              [ shift and go to state 86 ]


state 118

    (82) arglist -> arg .

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


state 119

    (84) arg -> argstring .
    (88) argstring -> argstring . token
    (89) argstring -> argstring . macrocall
    (90) argstring -> argstring . LLP arglist RRP
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    RRP             reduce using rule 84 (arg -> argstring .)
    COMMA           reduce using rule 84 (arg -> argstring .)
    LLP             shift and go to state 135
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    macrocall                      shift and go to state 137
    token                          shift and go to state 136

state 120

    (87) argstring -> LLP . arglist RRP
    (81) arglist -> . arglist COMMA arg
    (82) arglist -> . arg
    (83) arg -> .
    (84) arg -> . argstring
    (85) argstring -> . token
    (86) argstring -> . macrocall
    (87) argstring -> . LLP arglist RRP
    (88) argstring -> . argstring token
    (89) argstring -> . argstring macrocall
    (90) argstring -> . argstring LLP arglist RRP
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    RRP             reduce using rule 83 (arg -> .)
    COMMA           reduce using rule 83 (arg -> .)
    LLP             shift and go to state 120
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    arg                            shift and go to state 118
    macrocall                      shift and go to state 123
    token                          shift and go to state 122
    argstring                      shift and go to state 119
    arglist                        shift and go to state 138

state 121

    (80) args -> LLP arglist . RRP
    (81) arglist -> arglist . COMMA arg

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


state 122

    (85) argstring -> token .

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


state 123

    (86) argstring -> macrocall .

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


state 124

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

    RP              shift and go to state 141


state 125

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

    RP              shift and go to state 142


state 126

    (52) pragma -> PRAGMA ID EQ ID .

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


state 127

    (53) pragma -> PRAGMA ID EQ STRING .

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


state 128

    (54) pragma -> PRAGMA ID EQ INTEGER .

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


state 129

    (57) ifdef -> if_header NEWLINE program ENDIF .

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


state 130

    (60) ifdefelseb -> ELSE NEWLINE program .
    (13) program -> program . include_file
    (14) program -> program . line
    (15) program -> program . init
    (16) program -> program . undef
    (17) program -> program . ifdef
    (18) program -> program . require
    (19) program -> program . pragma
    (20) program -> program . errormsg
    (21) program -> program . warningmsg
    (22) program -> program . defs NEWLINE
    (23) program -> program . define NEWLINE
    (29) include_file -> . include NEWLINE program _ENDFILE_
    (30) include_file -> . include NEWLINE _ENDFILE_
    (31) include_file -> . include_once NEWLINE _ENDFILE_
    (32) include_file -> . include_once NEWLINE program _ENDFILE_
    (37) line -> . LINE INTEGER NEWLINE
    (38) line -> . LINE INTEGER STRING NEWLINE
    (40) init -> . INIT ID NEWLINE
    (41) init -> . INIT STRING NEWLINE
    (42) undef -> . UNDEF ID
    (57) ifdef -> . if_header NEWLINE program ENDIF
    (58) ifdef -> . ifdefelsea ifdefelseb ENDIF
    (39) require -> . REQUIRE STRING NEWLINE
    (51) pragma -> . PRAGMA ID
    (52) pragma -> . PRAGMA ID EQ ID
    (53) pragma -> . PRAGMA ID EQ STRING
    (54) pragma -> . PRAGMA ID EQ INTEGER
    (55) pragma -> . PRAGMA PUSH LP ID RP
    (56) pragma -> . PRAGMA POP LP ID RP
    (43) errormsg -> . ERROR STRING
    (44) warningmsg -> . WARNING STRING
    (71) defs -> .
    (72) defs -> . defs def
    (45) define -> . DEFINE ID params defs
    (33) include -> . INCLUDE STRING
    (34) include -> . INCLUDE FILENAME
    (35) include_once -> . INCLUDE ONCE STRING
    (36) include_once -> . INCLUDE ONCE FILENAME
    (61) if_header -> . IFDEF ID
    (62) if_header -> . IFNDEF ID
    (63) if_header -> . IF expr
    (59) ifdefelsea -> . if_header NEWLINE program

    ENDIF           reduce using rule 60 (ifdefelseb -> ELSE NEWLINE program .)
    LINE            shift and go to state 26
    INIT            shift and go to state 4
    UNDEF           shift and go to state 13
    REQUIRE         shift and go to state 19
    PRAGMA          shift and go to state 9
    ERROR           shift and go to state 29
    WARNING         shift and go to state 17
    NEWLINE         reduce using rule 71 (defs -> .)
    COMMA           reduce using rule 71 (defs -> .)
    RRP             reduce using rule 71 (defs -> .)
    LLP             reduce using rule 71 (defs -> .)
    STRING          reduce using rule 71 (defs -> .)
    TOKEN           reduce using rule 71 (defs -> .)
    CONTINUE        reduce using rule 71 (defs -> .)
    SEPARATOR       reduce using rule 71 (defs -> .)
    NUMBER          reduce using rule 71 (defs -> .)
    ID              reduce using rule 71 (defs -> .)
    DEFINE          shift and go to state 1
    INCLUDE         shift and go to state 10
    IFDEF           shift and go to state 2
    IFNDEF          shift and go to state 21
    IF              shift and go to state 6

    undef                          shift and go to state 72
    defs                           shift and go to state 73
    require                        shift and go to state 70
    line                           shift and go to state 74
    include_once                   shift and go to state 16
    ifdef                          shift and go to state 69
    include_file                   shift and go to state 65
    include                        shift and go to state 3
    pragma                         shift and go to state 66
    define                         shift and go to state 71
    if_header                      shift and go to state 11
    init                           shift and go to state 67
    warningmsg                     shift and go to state 75
    errormsg                       shift and go to state 68
    ifdefelsea                     shift and go to state 14

state 131

    (32) include_file -> include_once NEWLINE program _ENDFILE_ .

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


state 132

    (38) line -> LINE INTEGER STRING NEWLINE .

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


state 133

    (48) params -> LP paramlist RP .

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


state 134

    (50) paramlist -> paramlist COMMA . ID

    ID              shift and go to state 143


state 135

    (90) argstring -> argstring LLP . arglist RRP
    (81) arglist -> . arglist COMMA arg
    (82) arglist -> . arg
    (83) arg -> .
    (84) arg -> . argstring
    (85) argstring -> . token
    (86) argstring -> . macrocall
    (87) argstring -> . LLP arglist RRP
    (88) argstring -> . argstring token
    (89) argstring -> . argstring macrocall
    (90) argstring -> . argstring LLP arglist RRP
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    RRP             reduce using rule 83 (arg -> .)
    COMMA           reduce using rule 83 (arg -> .)
    LLP             shift and go to state 120
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    arg                            shift and go to state 118
    macrocall                      shift and go to state 123
    token                          shift and go to state 122
    argstring                      shift and go to state 119
    arglist                        shift and go to state 144

state 136

    (88) argstring -> argstring token .

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


state 137

    (89) argstring -> argstring macrocall .

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


state 138

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

    RRP             shift and go to state 145
    COMMA           shift and go to state 140


state 139

    (80) args -> LLP arglist RRP .

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


state 140

    (81) arglist -> arglist COMMA . arg
    (83) arg -> .
    (84) arg -> . argstring
    (85) argstring -> . token
    (86) argstring -> . macrocall
    (87) argstring -> . LLP arglist RRP
    (88) argstring -> . argstring token
    (89) argstring -> . argstring macrocall
    (90) argstring -> . argstring LLP arglist RRP
    (24) token -> . STRING
    (25) token -> . TOKEN
    (26) token -> . CONTINUE
    (27) token -> . SEPARATOR
    (28) token -> . NUMBER
    (78) macrocall -> . ID args

    RRP             reduce using rule 83 (arg -> .)
    COMMA           reduce using rule 83 (arg -> .)
    LLP             shift and go to state 120
    STRING          shift and go to state 61
    TOKEN           shift and go to state 62
    CONTINUE        shift and go to state 58
    SEPARATOR       shift and go to state 59
    NUMBER          shift and go to state 54
    ID              shift and go to state 36

    arg                            shift and go to state 146
    macrocall                      shift and go to state 123
    token                          shift and go to state 122
    argstring                      shift and go to state 119

state 141

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

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


state 142

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

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


state 143

    (50) paramlist -> paramlist COMMA ID .

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


state 144

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

    RRP             shift and go to state 147
    COMMA           shift and go to state 140


state 145

    (87) argstring -> LLP arglist RRP .

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


state 146

    (81) arglist -> arglist COMMA arg .

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


state 147

    (90) argstring -> argstring LLP arglist RRP .

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

