Grammar

    0 $accept: rcfile $end

    1 rcfile: skipeol select

    2 select: preface skipeol content
    3       | "erroneous token"

    4 preface: "rush" T_VERSION "end of line"

    5 skipeol: %empty
    6        | eol

    7 eol: "end of line"
    8    | eol "end of line"

    9 content: %empty
   10        | rulelist

   11 rulelist: rule
   12         | rulelist rule

   13 rule: rulehdr rulebody
   14     | globhdr globbody

   15 globhdr: "global" eol

   16 globbody: glob_stmt
   17         | globbody glob_stmt

   18 glob_stmt: "global attribute" arglist eol

   19 arglist: arg
   20        | arglist arg

   21 arg: literal
   22    | "number"

   23 rulehdr: "rule" ruleid eol

   24 ruleid: %empty
   25       | string

   26 rulebody: stmt
   27         | rulebody stmt

   28 stmt: match_stmt eol
   29     | set_stmt eol
   30     | map_stmt eol
   31     | delete_stmt eol
   32     | limits_stmt eol
   33     | environ_stmt eol
   34     | flowctl_stmt eol
   35     | attrib_stmt eol
   36     | remopt_stmt eol
   37     | include_stmt skipeol
   38     | error

   39 match_stmt: "match" compound_cond

   40 compound_cond: simple_cond
   41              | compound_cond "&&" simple_cond
   42              | compound_cond "||" simple_cond

   43 simple_cond: expr
   44            | "!" simple_cond
   45            | '(' compound_cond ')'

   46 expr: string '~' regex
   47     | string "!~" regex
   48     | string "==" literal
   49     | string "!=" literal
   50     | string "==" "number"
   51     | string "!=" "number"
   52     | string "<" "number"
   53     | string "<=" "number"
   54     | string ">" "number"
   55     | string ">=" "number"
   56     | string "in" strlist
   57     | "group" string
   58     | "group" strlist
   59     | "test" string

   60 literal: "identifier"
   61        | "string"

   62 string: "identifier"
   63       | "string"
   64       | "number"

   65 regex: string

   66 set_stmt: "set" index '=' value
   67         | "insert" index '=' value
   68         | "set" index "=~" value
   69         | "set" index '=' string '~' value
   70         | "insert" index '=' string '~' value
   71         | "set" "identifier" '=' value
   72         | "set" "identifier" "=~" value
   73         | "set" "identifier" '=' string '~' value
   74         | "unset" "identifier"
   75         | "unset" index

   76 map_stmt: "map" index value value value "number" "number" defval
   77         | "map" "identifier" value value value "number" "number" defval

   78 defval: %empty
   79       | string

   80 index: '[' "number" ']'

   81 value: string

   82 flowctl_stmt: "fallthrough"
   83             | "exit" fdescr "string"
   84             | "exit" fdescr "identifier"

   85 fdescr: %empty
   86       | "number"

   87 delete_stmt: "delete" range

   88 range: "number"
   89      | "number" "number"

   90 include_stmt: "include" string "end of line"

   91 limits_stmt: "limits" resource_limits

   92 resource_limits: "identifier"
   93                | resource_limits "identifier"

   94 remopt_stmt: "remopt" string optstring

   95 optstring: %empty
   96          | string

   97 environ_stmt: "clrenv"
   98             | "setenv" "identifier" '=' string
   99             | "evalenv" string
  100             | "unsetenv" asgn_list
  101             | "keepenv" asgn_list

  102 asgn_list: asgn
  103          | asgn_list asgn

  104 asgn: literal
  105     | "identifier" '=' value

  106 attrib_stmt: "rule attribute" string

  107 $@1: %empty

  108 strlist: '(' $@1 arglist ')'


Terminals, with rules where they appear

$end (0) 0
'(' (40) 45 108
')' (41) 45 108
'=' (61) 66 67 69 70 71 73 98 105
'[' (91) 80
']' (93) 80
'~' (126) 46 69 70 73
error (256) 38
"string" (258) 61 63 83
"identifier" (259) 60 62 71 72 73 74 77 84 92 93 98 105
"number" (260) 22 50 51 52 53 54 55 64 76 77 80 86 88 89
"rush" (261) 4
T_VERSION (262) 4
"rule" (263) 23
"global" (264) 15
"end of line" (265) 4 7 8 90
"set" (266) 66 68 69 71 72 73
"insert" (267) 67 70
"remopt" (268) 94
"map" (269) 76 77
"unset" (270) 74 75
"match" (271) 39
"fallthrough" (272) 82
"include" (273) 90
"limits" (274) 91
"clrenv" (275) 97
"setenv" (276) 98
"unsetenv" (277) 100
"keepenv" (278) 101
"evalenv" (279) 99
"delete" (280) 87
"exit" (281) 83 84
"rule attribute" (282) 106
"global attribute" (283) 18
"erroneous token" (284) 3
"||" (285) 42
"&&" (286) 41
"!" (287) 44
"==" (288) 48 50
"!=" (289) 49 51
"<" (290) 52
"<=" (291) 53
">" (292) 54
">=" (293) 55
"=~" (294) 68 72
"!~" (295) 47
"in" (296) 56
"group" (297) 57 58
"test" (298) 59


Nonterminals, with rules where they appear

$accept (50)
    on left: 0
rcfile (51)
    on left: 1, on right: 0
select (52)
    on left: 2 3, on right: 1
preface (53)
    on left: 4, on right: 2
skipeol (54)
    on left: 5 6, on right: 1 2 37
eol (55)
    on left: 7 8, on right: 6 8 15 18 23 28 29 30 31 32 33 34 35 36
content (56)
    on left: 9 10, on right: 2
rulelist (57)
    on left: 11 12, on right: 10 12
rule (58)
    on left: 13 14, on right: 11 12
globhdr (59)
    on left: 15, on right: 14
globbody (60)
    on left: 16 17, on right: 14 17
glob_stmt (61)
    on left: 18, on right: 16 17
arglist (62)
    on left: 19 20, on right: 18 20 108
arg (63)
    on left: 21 22, on right: 19 20
rulehdr (64)
    on left: 23, on right: 13
ruleid (65)
    on left: 24 25, on right: 23
rulebody (66)
    on left: 26 27, on right: 13 27
stmt (67)
    on left: 28 29 30 31 32 33 34 35 36 37 38, on right: 26 27
match_stmt (68)
    on left: 39, on right: 28
compound_cond (69)
    on left: 40 41 42, on right: 39 41 42 45
simple_cond (70)
    on left: 43 44 45, on right: 40 41 42 44
expr (71)
    on left: 46 47 48 49 50 51 52 53 54 55 56 57 58 59, on right: 43
literal (72)
    on left: 60 61, on right: 21 48 49 104
string (73)
    on left: 62 63 64, on right: 25 46 47 48 49 50 51 52 53 54 55 56
    57 59 65 69 70 73 79 81 90 94 96 98 99 106
regex (74)
    on left: 65, on right: 46 47
set_stmt (75)
    on left: 66 67 68 69 70 71 72 73 74 75, on right: 29
map_stmt (76)
    on left: 76 77, on right: 30
defval (77)
    on left: 78 79, on right: 76 77
index (78)
    on left: 80, on right: 66 67 68 69 70 75 76
value (79)
    on left: 81, on right: 66 67 68 69 70 71 72 73 76 77 105
flowctl_stmt (80)
    on left: 82 83 84, on right: 34
fdescr (81)
    on left: 85 86, on right: 83 84
delete_stmt (82)
    on left: 87, on right: 31
range (83)
    on left: 88 89, on right: 87
include_stmt (84)
    on left: 90, on right: 37
limits_stmt (85)
    on left: 91, on right: 32
resource_limits (86)
    on left: 92 93, on right: 91 93
remopt_stmt (87)
    on left: 94, on right: 36
optstring (88)
    on left: 95 96, on right: 94
environ_stmt (89)
    on left: 97 98 99 100 101, on right: 33
asgn_list (90)
    on left: 102 103, on right: 100 101 103
asgn (91)
    on left: 104 105, on right: 102 103
attrib_stmt (92)
    on left: 106, on right: 35
strlist (93)
    on left: 108, on right: 56 58
$@1 (94)
    on left: 107, on right: 108


State 0

    0 $accept: . rcfile $end

    "end of line"  shift, and go to state 1

    $default  reduce using rule 5 (skipeol)

    rcfile   go to state 2
    skipeol  go to state 3
    eol      go to state 4


State 1

    7 eol: "end of line" .

    $default  reduce using rule 7 (eol)


State 2

    0 $accept: rcfile . $end

    $end  shift, and go to state 5


State 3

    1 rcfile: skipeol . select

    "rush"             shift, and go to state 6
    "erroneous token"  shift, and go to state 7

    select   go to state 8
    preface  go to state 9


State 4

    6 skipeol: eol .
    8 eol: eol . "end of line"

    "end of line"  shift, and go to state 10

    $default  reduce using rule 6 (skipeol)


State 5

    0 $accept: rcfile $end .

    $default  accept


State 6

    4 preface: "rush" . T_VERSION "end of line"

    T_VERSION  shift, and go to state 11


State 7

    3 select: "erroneous token" .

    $default  reduce using rule 3 (select)


State 8

    1 rcfile: skipeol select .

    $default  reduce using rule 1 (rcfile)


State 9

    2 select: preface . skipeol content

    "end of line"  shift, and go to state 1

    $default  reduce using rule 5 (skipeol)

    skipeol  go to state 12
    eol      go to state 4


State 10

    8 eol: eol "end of line" .

    $default  reduce using rule 8 (eol)


State 11

    4 preface: "rush" T_VERSION . "end of line"

    "end of line"  shift, and go to state 13


State 12

    2 select: preface skipeol . content

    "rule"    shift, and go to state 14
    "global"  shift, and go to state 15

    $default  reduce using rule 9 (content)

    content   go to state 16
    rulelist  go to state 17
    rule      go to state 18
    globhdr   go to state 19
    rulehdr   go to state 20


State 13

    4 preface: "rush" T_VERSION "end of line" .

    $default  reduce using rule 4 (preface)


State 14

   23 rulehdr: "rule" . ruleid eol

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    $default  reduce using rule 24 (ruleid)

    ruleid  go to state 24
    string  go to state 25


State 15

   15 globhdr: "global" . eol

    "end of line"  shift, and go to state 1

    eol  go to state 26


State 16

    2 select: preface skipeol content .

    $default  reduce using rule 2 (select)


State 17

   10 content: rulelist .
   12 rulelist: rulelist . rule

    "rule"    shift, and go to state 14
    "global"  shift, and go to state 15

    $default  reduce using rule 10 (content)

    rule     go to state 27
    globhdr  go to state 19
    rulehdr  go to state 20


State 18

   11 rulelist: rule .

    $default  reduce using rule 11 (rulelist)


State 19

   14 rule: globhdr . globbody

    "global attribute"  shift, and go to state 28

    globbody   go to state 29
    glob_stmt  go to state 30


State 20

   13 rule: rulehdr . rulebody

    error             shift, and go to state 31
    "set"             shift, and go to state 32
    "insert"          shift, and go to state 33
    "remopt"          shift, and go to state 34
    "map"             shift, and go to state 35
    "unset"           shift, and go to state 36
    "match"           shift, and go to state 37
    "fallthrough"     shift, and go to state 38
    "include"         shift, and go to state 39
    "limits"          shift, and go to state 40
    "clrenv"          shift, and go to state 41
    "setenv"          shift, and go to state 42
    "unsetenv"        shift, and go to state 43
    "keepenv"         shift, and go to state 44
    "evalenv"         shift, and go to state 45
    "delete"          shift, and go to state 46
    "exit"            shift, and go to state 47
    "rule attribute"  shift, and go to state 48

    rulebody      go to state 49
    stmt          go to state 50
    match_stmt    go to state 51
    set_stmt      go to state 52
    map_stmt      go to state 53
    flowctl_stmt  go to state 54
    delete_stmt   go to state 55
    include_stmt  go to state 56
    limits_stmt   go to state 57
    remopt_stmt   go to state 58
    environ_stmt  go to state 59
    attrib_stmt   go to state 60


State 21

   63 string: "string" .

    $default  reduce using rule 63 (string)


State 22

   62 string: "identifier" .

    $default  reduce using rule 62 (string)


State 23

   64 string: "number" .

    $default  reduce using rule 64 (string)


State 24

   23 rulehdr: "rule" ruleid . eol

    "end of line"  shift, and go to state 1

    eol  go to state 61


State 25

   25 ruleid: string .

    $default  reduce using rule 25 (ruleid)


State 26

    8 eol: eol . "end of line"
   15 globhdr: "global" eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 15 (globhdr)


State 27

   12 rulelist: rulelist rule .

    $default  reduce using rule 12 (rulelist)


State 28

   18 glob_stmt: "global attribute" . arglist eol

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 63
    "number"      shift, and go to state 64

    arglist  go to state 65
    arg      go to state 66
    literal  go to state 67


State 29

   14 rule: globhdr globbody .
   17 globbody: globbody . glob_stmt

    "global attribute"  shift, and go to state 28

    $default  reduce using rule 14 (rule)

    glob_stmt  go to state 68


State 30

   16 globbody: glob_stmt .

    $default  reduce using rule 16 (globbody)


State 31

   38 stmt: error .

    $default  reduce using rule 38 (stmt)


State 32

   66 set_stmt: "set" . index '=' value
   68         | "set" . index "=~" value
   69         | "set" . index '=' string '~' value
   71         | "set" . "identifier" '=' value
   72         | "set" . "identifier" "=~" value
   73         | "set" . "identifier" '=' string '~' value

    "identifier"  shift, and go to state 69
    '['           shift, and go to state 70

    index  go to state 71


State 33

   67 set_stmt: "insert" . index '=' value
   70         | "insert" . index '=' string '~' value

    '['  shift, and go to state 70

    index  go to state 72


State 34

   94 remopt_stmt: "remopt" . string optstring

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 73


State 35

   76 map_stmt: "map" . index value value value "number" "number" defval
   77         | "map" . "identifier" value value value "number" "number" defval

    "identifier"  shift, and go to state 74
    '['           shift, and go to state 70

    index  go to state 75


State 36

   74 set_stmt: "unset" . "identifier"
   75         | "unset" . index

    "identifier"  shift, and go to state 76
    '['           shift, and go to state 70

    index  go to state 77


State 37

   39 match_stmt: "match" . compound_cond

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23
    "!"           shift, and go to state 78
    "group"       shift, and go to state 79
    "test"        shift, and go to state 80
    '('           shift, and go to state 81

    compound_cond  go to state 82
    simple_cond    go to state 83
    expr           go to state 84
    string         go to state 85


State 38

   82 flowctl_stmt: "fallthrough" .

    $default  reduce using rule 82 (flowctl_stmt)


State 39

   90 include_stmt: "include" . string "end of line"

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 86


State 40

   91 limits_stmt: "limits" . resource_limits

    "identifier"  shift, and go to state 87

    resource_limits  go to state 88


State 41

   97 environ_stmt: "clrenv" .

    $default  reduce using rule 97 (environ_stmt)


State 42

   98 environ_stmt: "setenv" . "identifier" '=' string

    "identifier"  shift, and go to state 89


State 43

  100 environ_stmt: "unsetenv" . asgn_list

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 90

    literal    go to state 91
    asgn_list  go to state 92
    asgn       go to state 93


State 44

  101 environ_stmt: "keepenv" . asgn_list

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 90

    literal    go to state 91
    asgn_list  go to state 94
    asgn       go to state 93


State 45

   99 environ_stmt: "evalenv" . string

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 95


State 46

   87 delete_stmt: "delete" . range

    "number"  shift, and go to state 96

    range  go to state 97


State 47

   83 flowctl_stmt: "exit" . fdescr "string"
   84             | "exit" . fdescr "identifier"

    "number"  shift, and go to state 98

    $default  reduce using rule 85 (fdescr)

    fdescr  go to state 99


State 48

  106 attrib_stmt: "rule attribute" . string

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 100


State 49

   13 rule: rulehdr rulebody .
   27 rulebody: rulebody . stmt

    error             shift, and go to state 31
    "set"             shift, and go to state 32
    "insert"          shift, and go to state 33
    "remopt"          shift, and go to state 34
    "map"             shift, and go to state 35
    "unset"           shift, and go to state 36
    "match"           shift, and go to state 37
    "fallthrough"     shift, and go to state 38
    "include"         shift, and go to state 39
    "limits"          shift, and go to state 40
    "clrenv"          shift, and go to state 41
    "setenv"          shift, and go to state 42
    "unsetenv"        shift, and go to state 43
    "keepenv"         shift, and go to state 44
    "evalenv"         shift, and go to state 45
    "delete"          shift, and go to state 46
    "exit"            shift, and go to state 47
    "rule attribute"  shift, and go to state 48

    $end      reduce using rule 13 (rule)
    "rule"    reduce using rule 13 (rule)
    "global"  reduce using rule 13 (rule)

    stmt          go to state 101
    match_stmt    go to state 51
    set_stmt      go to state 52
    map_stmt      go to state 53
    flowctl_stmt  go to state 54
    delete_stmt   go to state 55
    include_stmt  go to state 56
    limits_stmt   go to state 57
    remopt_stmt   go to state 58
    environ_stmt  go to state 59
    attrib_stmt   go to state 60


State 50

   26 rulebody: stmt .

    $default  reduce using rule 26 (rulebody)


State 51

   28 stmt: match_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 102


State 52

   29 stmt: set_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 103


State 53

   30 stmt: map_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 104


State 54

   34 stmt: flowctl_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 105


State 55

   31 stmt: delete_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 106


State 56

   37 stmt: include_stmt . skipeol

    "end of line"  shift, and go to state 1

    $default  reduce using rule 5 (skipeol)

    skipeol  go to state 107
    eol      go to state 4


State 57

   32 stmt: limits_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 108


State 58

   36 stmt: remopt_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 109


State 59

   33 stmt: environ_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 110


State 60

   35 stmt: attrib_stmt . eol

    "end of line"  shift, and go to state 1

    eol  go to state 111


State 61

    8 eol: eol . "end of line"
   23 rulehdr: "rule" ruleid eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 23 (rulehdr)


State 62

   61 literal: "string" .

    $default  reduce using rule 61 (literal)


State 63

   60 literal: "identifier" .

    $default  reduce using rule 60 (literal)


State 64

   22 arg: "number" .

    $default  reduce using rule 22 (arg)


State 65

   18 glob_stmt: "global attribute" arglist . eol
   20 arglist: arglist . arg

    "string"       shift, and go to state 62
    "identifier"   shift, and go to state 63
    "number"       shift, and go to state 64
    "end of line"  shift, and go to state 1

    eol      go to state 112
    arg      go to state 113
    literal  go to state 67


State 66

   19 arglist: arg .

    $default  reduce using rule 19 (arglist)


State 67

   21 arg: literal .

    $default  reduce using rule 21 (arg)


State 68

   17 globbody: globbody glob_stmt .

    $default  reduce using rule 17 (globbody)


State 69

   71 set_stmt: "set" "identifier" . '=' value
   72         | "set" "identifier" . "=~" value
   73         | "set" "identifier" . '=' string '~' value

    "=~"  shift, and go to state 114
    '='   shift, and go to state 115


State 70

   80 index: '[' . "number" ']'

    "number"  shift, and go to state 116


State 71

   66 set_stmt: "set" index . '=' value
   68         | "set" index . "=~" value
   69         | "set" index . '=' string '~' value

    "=~"  shift, and go to state 117
    '='   shift, and go to state 118


State 72

   67 set_stmt: "insert" index . '=' value
   70         | "insert" index . '=' string '~' value

    '='  shift, and go to state 119


State 73

   94 remopt_stmt: "remopt" string . optstring

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    $default  reduce using rule 95 (optstring)

    string     go to state 120
    optstring  go to state 121


State 74

   77 map_stmt: "map" "identifier" . value value value "number" "number" defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 123


State 75

   76 map_stmt: "map" index . value value value "number" "number" defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 124


State 76

   74 set_stmt: "unset" "identifier" .

    $default  reduce using rule 74 (set_stmt)


State 77

   75 set_stmt: "unset" index .

    $default  reduce using rule 75 (set_stmt)


State 78

   44 simple_cond: "!" . simple_cond

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23
    "!"           shift, and go to state 78
    "group"       shift, and go to state 79
    "test"        shift, and go to state 80
    '('           shift, and go to state 81

    simple_cond  go to state 125
    expr         go to state 84
    string       go to state 85


State 79

   57 expr: "group" . string
   58     | "group" . strlist

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23
    '('           shift, and go to state 126

    string   go to state 127
    strlist  go to state 128


State 80

   59 expr: "test" . string

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 129


State 81

   45 simple_cond: '(' . compound_cond ')'

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23
    "!"           shift, and go to state 78
    "group"       shift, and go to state 79
    "test"        shift, and go to state 80
    '('           shift, and go to state 81

    compound_cond  go to state 130
    simple_cond    go to state 83
    expr           go to state 84
    string         go to state 85


State 82

   39 match_stmt: "match" compound_cond .
   41 compound_cond: compound_cond . "&&" simple_cond
   42              | compound_cond . "||" simple_cond

    "||"  shift, and go to state 131
    "&&"  shift, and go to state 132

    $default  reduce using rule 39 (match_stmt)


State 83

   40 compound_cond: simple_cond .

    $default  reduce using rule 40 (compound_cond)


State 84

   43 simple_cond: expr .

    $default  reduce using rule 43 (simple_cond)


State 85

   46 expr: string . '~' regex
   47     | string . "!~" regex
   48     | string . "==" literal
   49     | string . "!=" literal
   50     | string . "==" "number"
   51     | string . "!=" "number"
   52     | string . "<" "number"
   53     | string . "<=" "number"
   54     | string . ">" "number"
   55     | string . ">=" "number"
   56     | string . "in" strlist

    "=="  shift, and go to state 133
    "!="  shift, and go to state 134
    "<"   shift, and go to state 135
    "<="  shift, and go to state 136
    ">"   shift, and go to state 137
    ">="  shift, and go to state 138
    "!~"  shift, and go to state 139
    "in"  shift, and go to state 140
    '~'   shift, and go to state 141


State 86

   90 include_stmt: "include" string . "end of line"

    "end of line"  shift, and go to state 142


State 87

   92 resource_limits: "identifier" .

    $default  reduce using rule 92 (resource_limits)


State 88

   91 limits_stmt: "limits" resource_limits .
   93 resource_limits: resource_limits . "identifier"

    "identifier"  shift, and go to state 143

    $default  reduce using rule 91 (limits_stmt)


State 89

   98 environ_stmt: "setenv" "identifier" . '=' string

    '='  shift, and go to state 144


State 90

   60 literal: "identifier" .
  105 asgn: "identifier" . '=' value

    '='  shift, and go to state 145

    $default  reduce using rule 60 (literal)


State 91

  104 asgn: literal .

    $default  reduce using rule 104 (asgn)


State 92

  100 environ_stmt: "unsetenv" asgn_list .
  103 asgn_list: asgn_list . asgn

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 90

    $default  reduce using rule 100 (environ_stmt)

    literal  go to state 91
    asgn     go to state 146


State 93

  102 asgn_list: asgn .

    $default  reduce using rule 102 (asgn_list)


State 94

  101 environ_stmt: "keepenv" asgn_list .
  103 asgn_list: asgn_list . asgn

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 90

    $default  reduce using rule 101 (environ_stmt)

    literal  go to state 91
    asgn     go to state 146


State 95

   99 environ_stmt: "evalenv" string .

    $default  reduce using rule 99 (environ_stmt)


State 96

   88 range: "number" .
   89      | "number" . "number"

    "number"  shift, and go to state 147

    $default  reduce using rule 88 (range)


State 97

   87 delete_stmt: "delete" range .

    $default  reduce using rule 87 (delete_stmt)


State 98

   86 fdescr: "number" .

    $default  reduce using rule 86 (fdescr)


State 99

   83 flowctl_stmt: "exit" fdescr . "string"
   84             | "exit" fdescr . "identifier"

    "string"      shift, and go to state 148
    "identifier"  shift, and go to state 149


State 100

  106 attrib_stmt: "rule attribute" string .

    $default  reduce using rule 106 (attrib_stmt)


State 101

   27 rulebody: rulebody stmt .

    $default  reduce using rule 27 (rulebody)


State 102

    8 eol: eol . "end of line"
   28 stmt: match_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 28 (stmt)


State 103

    8 eol: eol . "end of line"
   29 stmt: set_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 29 (stmt)


State 104

    8 eol: eol . "end of line"
   30 stmt: map_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 30 (stmt)


State 105

    8 eol: eol . "end of line"
   34 stmt: flowctl_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 34 (stmt)


State 106

    8 eol: eol . "end of line"
   31 stmt: delete_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 31 (stmt)


State 107

   37 stmt: include_stmt skipeol .

    $default  reduce using rule 37 (stmt)


State 108

    8 eol: eol . "end of line"
   32 stmt: limits_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 32 (stmt)


State 109

    8 eol: eol . "end of line"
   36 stmt: remopt_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 36 (stmt)


State 110

    8 eol: eol . "end of line"
   33 stmt: environ_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 33 (stmt)


State 111

    8 eol: eol . "end of line"
   35 stmt: attrib_stmt eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 35 (stmt)


State 112

    8 eol: eol . "end of line"
   18 glob_stmt: "global attribute" arglist eol .

    "end of line"  shift, and go to state 10

    $default  reduce using rule 18 (glob_stmt)


State 113

   20 arglist: arglist arg .

    $default  reduce using rule 20 (arglist)


State 114

   72 set_stmt: "set" "identifier" "=~" . value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 150


State 115

   71 set_stmt: "set" "identifier" '=' . value
   73         | "set" "identifier" '=' . string '~' value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 151
    value   go to state 152


State 116

   80 index: '[' "number" . ']'

    ']'  shift, and go to state 153


State 117

   68 set_stmt: "set" index "=~" . value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 154


State 118

   66 set_stmt: "set" index '=' . value
   69         | "set" index '=' . string '~' value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 155
    value   go to state 156


State 119

   67 set_stmt: "insert" index '=' . value
   70         | "insert" index '=' . string '~' value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 157
    value   go to state 158


State 120

   96 optstring: string .

    $default  reduce using rule 96 (optstring)


State 121

   94 remopt_stmt: "remopt" string optstring .

    $default  reduce using rule 94 (remopt_stmt)


State 122

   81 value: string .

    $default  reduce using rule 81 (value)


State 123

   77 map_stmt: "map" "identifier" value . value value "number" "number" defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 159


State 124

   76 map_stmt: "map" index value . value value "number" "number" defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 160


State 125

   44 simple_cond: "!" simple_cond .

    $default  reduce using rule 44 (simple_cond)


State 126

  108 strlist: '(' . $@1 arglist ')'

    $default  reduce using rule 107 ($@1)

    $@1  go to state 161


State 127

   57 expr: "group" string .

    $default  reduce using rule 57 (expr)


State 128

   58 expr: "group" strlist .

    $default  reduce using rule 58 (expr)


State 129

   59 expr: "test" string .

    $default  reduce using rule 59 (expr)


State 130

   41 compound_cond: compound_cond . "&&" simple_cond
   42              | compound_cond . "||" simple_cond
   45 simple_cond: '(' compound_cond . ')'

    "||"  shift, and go to state 131
    "&&"  shift, and go to state 132
    ')'   shift, and go to state 162


State 131

   42 compound_cond: compound_cond "||" . simple_cond

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23
    "!"           shift, and go to state 78
    "group"       shift, and go to state 79
    "test"        shift, and go to state 80
    '('           shift, and go to state 81

    simple_cond  go to state 163
    expr         go to state 84
    string       go to state 85


State 132

   41 compound_cond: compound_cond "&&" . simple_cond

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23
    "!"           shift, and go to state 78
    "group"       shift, and go to state 79
    "test"        shift, and go to state 80
    '('           shift, and go to state 81

    simple_cond  go to state 164
    expr         go to state 84
    string       go to state 85


State 133

   48 expr: string "==" . literal
   50     | string "==" . "number"

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 63
    "number"      shift, and go to state 165

    literal  go to state 166


State 134

   49 expr: string "!=" . literal
   51     | string "!=" . "number"

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 63
    "number"      shift, and go to state 167

    literal  go to state 168


State 135

   52 expr: string "<" . "number"

    "number"  shift, and go to state 169


State 136

   53 expr: string "<=" . "number"

    "number"  shift, and go to state 170


State 137

   54 expr: string ">" . "number"

    "number"  shift, and go to state 171


State 138

   55 expr: string ">=" . "number"

    "number"  shift, and go to state 172


State 139

   47 expr: string "!~" . regex

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 173
    regex   go to state 174


State 140

   56 expr: string "in" . strlist

    '('  shift, and go to state 126

    strlist  go to state 175


State 141

   46 expr: string '~' . regex

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 173
    regex   go to state 176


State 142

   90 include_stmt: "include" string "end of line" .

    $default  reduce using rule 90 (include_stmt)


State 143

   93 resource_limits: resource_limits "identifier" .

    $default  reduce using rule 93 (resource_limits)


State 144

   98 environ_stmt: "setenv" "identifier" '=' . string

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 177


State 145

  105 asgn: "identifier" '=' . value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 178


State 146

  103 asgn_list: asgn_list asgn .

    $default  reduce using rule 103 (asgn_list)


State 147

   89 range: "number" "number" .

    $default  reduce using rule 89 (range)


State 148

   83 flowctl_stmt: "exit" fdescr "string" .

    $default  reduce using rule 83 (flowctl_stmt)


State 149

   84 flowctl_stmt: "exit" fdescr "identifier" .

    $default  reduce using rule 84 (flowctl_stmt)


State 150

   72 set_stmt: "set" "identifier" "=~" value .

    $default  reduce using rule 72 (set_stmt)


State 151

   73 set_stmt: "set" "identifier" '=' string . '~' value
   81 value: string .

    '~'  shift, and go to state 179

    $default  reduce using rule 81 (value)


State 152

   71 set_stmt: "set" "identifier" '=' value .

    $default  reduce using rule 71 (set_stmt)


State 153

   80 index: '[' "number" ']' .

    $default  reduce using rule 80 (index)


State 154

   68 set_stmt: "set" index "=~" value .

    $default  reduce using rule 68 (set_stmt)


State 155

   69 set_stmt: "set" index '=' string . '~' value
   81 value: string .

    '~'  shift, and go to state 180

    $default  reduce using rule 81 (value)


State 156

   66 set_stmt: "set" index '=' value .

    $default  reduce using rule 66 (set_stmt)


State 157

   70 set_stmt: "insert" index '=' string . '~' value
   81 value: string .

    '~'  shift, and go to state 181

    $default  reduce using rule 81 (value)


State 158

   67 set_stmt: "insert" index '=' value .

    $default  reduce using rule 67 (set_stmt)


State 159

   77 map_stmt: "map" "identifier" value value . value "number" "number" defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 182


State 160

   76 map_stmt: "map" index value value . value "number" "number" defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 183


State 161

  108 strlist: '(' $@1 . arglist ')'

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 63
    "number"      shift, and go to state 64

    arglist  go to state 184
    arg      go to state 66
    literal  go to state 67


State 162

   45 simple_cond: '(' compound_cond ')' .

    $default  reduce using rule 45 (simple_cond)


State 163

   42 compound_cond: compound_cond "||" simple_cond .

    $default  reduce using rule 42 (compound_cond)


State 164

   41 compound_cond: compound_cond "&&" simple_cond .

    $default  reduce using rule 41 (compound_cond)


State 165

   50 expr: string "==" "number" .

    $default  reduce using rule 50 (expr)


State 166

   48 expr: string "==" literal .

    $default  reduce using rule 48 (expr)


State 167

   51 expr: string "!=" "number" .

    $default  reduce using rule 51 (expr)


State 168

   49 expr: string "!=" literal .

    $default  reduce using rule 49 (expr)


State 169

   52 expr: string "<" "number" .

    $default  reduce using rule 52 (expr)


State 170

   53 expr: string "<=" "number" .

    $default  reduce using rule 53 (expr)


State 171

   54 expr: string ">" "number" .

    $default  reduce using rule 54 (expr)


State 172

   55 expr: string ">=" "number" .

    $default  reduce using rule 55 (expr)


State 173

   65 regex: string .

    $default  reduce using rule 65 (regex)


State 174

   47 expr: string "!~" regex .

    $default  reduce using rule 47 (expr)


State 175

   56 expr: string "in" strlist .

    $default  reduce using rule 56 (expr)


State 176

   46 expr: string '~' regex .

    $default  reduce using rule 46 (expr)


State 177

   98 environ_stmt: "setenv" "identifier" '=' string .

    $default  reduce using rule 98 (environ_stmt)


State 178

  105 asgn: "identifier" '=' value .

    $default  reduce using rule 105 (asgn)


State 179

   73 set_stmt: "set" "identifier" '=' string '~' . value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 185


State 180

   69 set_stmt: "set" index '=' string '~' . value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 186


State 181

   70 set_stmt: "insert" index '=' string '~' . value

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    string  go to state 122
    value   go to state 187


State 182

   77 map_stmt: "map" "identifier" value value value . "number" "number" defval

    "number"  shift, and go to state 188


State 183

   76 map_stmt: "map" index value value value . "number" "number" defval

    "number"  shift, and go to state 189


State 184

   20 arglist: arglist . arg
  108 strlist: '(' $@1 arglist . ')'

    "string"      shift, and go to state 62
    "identifier"  shift, and go to state 63
    "number"      shift, and go to state 64
    ')'           shift, and go to state 190

    arg      go to state 113
    literal  go to state 67


State 185

   73 set_stmt: "set" "identifier" '=' string '~' value .

    $default  reduce using rule 73 (set_stmt)


State 186

   69 set_stmt: "set" index '=' string '~' value .

    $default  reduce using rule 69 (set_stmt)


State 187

   70 set_stmt: "insert" index '=' string '~' value .

    $default  reduce using rule 70 (set_stmt)


State 188

   77 map_stmt: "map" "identifier" value value value "number" . "number" defval

    "number"  shift, and go to state 191


State 189

   76 map_stmt: "map" index value value value "number" . "number" defval

    "number"  shift, and go to state 192


State 190

  108 strlist: '(' $@1 arglist ')' .

    $default  reduce using rule 108 (strlist)


State 191

   77 map_stmt: "map" "identifier" value value value "number" "number" . defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    $default  reduce using rule 78 (defval)

    string  go to state 193
    defval  go to state 194


State 192

   76 map_stmt: "map" index value value value "number" "number" . defval

    "string"      shift, and go to state 21
    "identifier"  shift, and go to state 22
    "number"      shift, and go to state 23

    $default  reduce using rule 78 (defval)

    string  go to state 193
    defval  go to state 195


State 193

   79 defval: string .

    $default  reduce using rule 79 (defval)


State 194

   77 map_stmt: "map" "identifier" value value value "number" "number" defval .

    $default  reduce using rule 77 (map_stmt)


State 195

   76 map_stmt: "map" index value value value "number" "number" defval .

    $default  reduce using rule 76 (map_stmt)
