Terminals which are not used

   ':'
   ','
   '.'
   '''
   '^'
   '+'
   '-'
   '/'
   '*'
   '%'
   '$'
   '<'
   '>'
   '?'
   '@'
   '{'


Grammar

    0 $accept: statement_list $end

    1 statement_list: statement_list statement
    2               | /* empty */

    3 statement: TC_SECTION section_string_or_value ']'
    4          | TC_LABEL '=' string_or_value
    5          | TC_OFFSET option_offset ']' '=' string_or_value
    6          | TC_LABEL
    7          | END_OF_LINE

    8 section_string_or_value: var_string_list
    9                        | /* empty */

   10 string_or_value: expr
   11                | BOOL_TRUE
   12                | BOOL_FALSE
   13                | END_OF_LINE

   14 option_offset: var_string_list
   15              | /* empty */

   16 encapsed_list: encapsed_list cfg_var_ref
   17              | encapsed_list TC_QUOTED_STRING
   18              | /* empty */

   19 var_string_list: cfg_var_ref
   20                | constant_string
   21                | '"' encapsed_list '"'
   22                | var_string_list cfg_var_ref
   23                | var_string_list constant_string
   24                | var_string_list '"' encapsed_list '"'

   25 expr: var_string_list
   26     | expr '|' expr
   27     | expr '&' expr
   28     | '~' expr
   29     | '!' expr
   30     | '(' expr ')'

   31 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME '}'

   32 constant_string: TC_CONSTANT
   33                | TC_RAW
   34                | TC_NUMBER
   35                | TC_STRING
   36                | TC_WHITESPACE


Terminals, with rules where they appear

$end (0) 0
'!' (33) 29
'"' (34) 21 24
'$' (36)
'%' (37)
'&' (38) 27
''' (39)
'(' (40) 30
')' (41) 30
'*' (42)
'+' (43)
',' (44)
'-' (45)
'.' (46)
'/' (47)
':' (58)
'<' (60)
'=' (61) 4 5
'>' (62)
'?' (63)
'@' (64)
']' (93) 3 5
'^' (94)
'{' (123)
'|' (124) 26
'}' (125) 31
'~' (126) 28
error (256)
TC_SECTION (258) 3
TC_RAW (259) 33
TC_CONSTANT (260) 32
TC_NUMBER (261) 34
TC_STRING (262) 35
TC_WHITESPACE (263) 36
TC_LABEL (264) 4 6
TC_OFFSET (265) 5
TC_DOLLAR_CURLY (266) 31
TC_VARNAME (267) 31
TC_QUOTED_STRING (268) 17
BOOL_TRUE (269) 11
BOOL_FALSE (270) 12
END_OF_LINE (271) 7 13


Nonterminals, with rules where they appear

$accept (43)
    on left: 0
statement_list (44)
    on left: 1 2, on right: 0 1
statement (45)
    on left: 3 4 5 6 7, on right: 1
section_string_or_value (46)
    on left: 8 9, on right: 3
string_or_value (47)
    on left: 10 11 12 13, on right: 4 5
option_offset (48)
    on left: 14 15, on right: 5
encapsed_list (49)
    on left: 16 17 18, on right: 16 17 21 24
var_string_list (50)
    on left: 19 20 21 22 23 24, on right: 8 14 22 23 24 25
expr (51)
    on left: 25 26 27 28 29 30, on right: 10 26 27 28 29 30
cfg_var_ref (52)
    on left: 31, on right: 16 19 22
constant_string (53)
    on left: 32 33 34 35 36, on right: 20 23


state 0

    0 $accept: . statement_list $end

    $default  reduce using rule 2 (statement_list)

    statement_list  go to state 1


state 1

    0 $accept: statement_list . $end
    1 statement_list: statement_list . statement

    $end         shift, and go to state 2
    TC_SECTION   shift, and go to state 3
    TC_LABEL     shift, and go to state 4
    TC_OFFSET    shift, and go to state 5
    END_OF_LINE  shift, and go to state 6

    statement  go to state 7


state 2

    0 $accept: statement_list $end .

    $default  accept


state 3

    3 statement: TC_SECTION . section_string_or_value ']'

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14

    $default  reduce using rule 9 (section_string_or_value)

    section_string_or_value  go to state 15
    var_string_list          go to state 16
    cfg_var_ref              go to state 17
    constant_string          go to state 18


state 4

    4 statement: TC_LABEL . '=' string_or_value
    6          | TC_LABEL .

    '='  shift, and go to state 19

    $default  reduce using rule 6 (statement)


state 5

    5 statement: TC_OFFSET . option_offset ']' '=' string_or_value

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14

    $default  reduce using rule 15 (option_offset)

    option_offset    go to state 20
    var_string_list  go to state 21
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 6

    7 statement: END_OF_LINE .

    $default  reduce using rule 7 (statement)


state 7

    1 statement_list: statement_list statement .

    $default  reduce using rule 1 (statement_list)


state 8

   33 constant_string: TC_RAW .

    $default  reduce using rule 33 (constant_string)


state 9

   32 constant_string: TC_CONSTANT .

    $default  reduce using rule 32 (constant_string)


state 10

   34 constant_string: TC_NUMBER .

    $default  reduce using rule 34 (constant_string)


state 11

   35 constant_string: TC_STRING .

    $default  reduce using rule 35 (constant_string)


state 12

   36 constant_string: TC_WHITESPACE .

    $default  reduce using rule 36 (constant_string)


state 13

   31 cfg_var_ref: TC_DOLLAR_CURLY . TC_VARNAME '}'

    TC_VARNAME  shift, and go to state 22


state 14

   21 var_string_list: '"' . encapsed_list '"'

    $default  reduce using rule 18 (encapsed_list)

    encapsed_list  go to state 23


state 15

    3 statement: TC_SECTION section_string_or_value . ']'

    ']'  shift, and go to state 24


state 16

    8 section_string_or_value: var_string_list .
   22 var_string_list: var_string_list . cfg_var_ref
   23                | var_string_list . constant_string
   24                | var_string_list . '"' encapsed_list '"'

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25

    $default  reduce using rule 8 (section_string_or_value)

    cfg_var_ref      go to state 26
    constant_string  go to state 27


state 17

   19 var_string_list: cfg_var_ref .

    $default  reduce using rule 19 (var_string_list)


state 18

   20 var_string_list: constant_string .

    $default  reduce using rule 20 (var_string_list)


state 19

    4 statement: TC_LABEL '=' . string_or_value

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    BOOL_TRUE        shift, and go to state 28
    BOOL_FALSE       shift, and go to state 29
    END_OF_LINE      shift, and go to state 30
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    string_or_value  go to state 34
    var_string_list  go to state 35
    expr             go to state 36
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 20

    5 statement: TC_OFFSET option_offset . ']' '=' string_or_value

    ']'  shift, and go to state 37


state 21

   14 option_offset: var_string_list .
   22 var_string_list: var_string_list . cfg_var_ref
   23                | var_string_list . constant_string
   24                | var_string_list . '"' encapsed_list '"'

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25

    $default  reduce using rule 14 (option_offset)

    cfg_var_ref      go to state 26
    constant_string  go to state 27


state 22

   31 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME . '}'

    '}'  shift, and go to state 38


state 23

   16 encapsed_list: encapsed_list . cfg_var_ref
   17              | encapsed_list . TC_QUOTED_STRING
   21 var_string_list: '"' encapsed_list . '"'

    TC_DOLLAR_CURLY   shift, and go to state 13
    TC_QUOTED_STRING  shift, and go to state 39
    '"'               shift, and go to state 40

    cfg_var_ref  go to state 41


state 24

    3 statement: TC_SECTION section_string_or_value ']' .

    $default  reduce using rule 3 (statement)


state 25

   24 var_string_list: var_string_list '"' . encapsed_list '"'

    $default  reduce using rule 18 (encapsed_list)

    encapsed_list  go to state 42


state 26

   22 var_string_list: var_string_list cfg_var_ref .

    $default  reduce using rule 22 (var_string_list)


state 27

   23 var_string_list: var_string_list constant_string .

    $default  reduce using rule 23 (var_string_list)


state 28

   11 string_or_value: BOOL_TRUE .

    $default  reduce using rule 11 (string_or_value)


state 29

   12 string_or_value: BOOL_FALSE .

    $default  reduce using rule 12 (string_or_value)


state 30

   13 string_or_value: END_OF_LINE .

    $default  reduce using rule 13 (string_or_value)


state 31

   28 expr: '~' . expr

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    var_string_list  go to state 35
    expr             go to state 43
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 32

   29 expr: '!' . expr

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    var_string_list  go to state 35
    expr             go to state 44
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 33

   30 expr: '(' . expr ')'

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    var_string_list  go to state 35
    expr             go to state 45
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 34

    4 statement: TC_LABEL '=' string_or_value .

    $default  reduce using rule 4 (statement)


state 35

   22 var_string_list: var_string_list . cfg_var_ref
   23                | var_string_list . constant_string
   24                | var_string_list . '"' encapsed_list '"'
   25 expr: var_string_list .

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25

    $default  reduce using rule 25 (expr)

    cfg_var_ref      go to state 26
    constant_string  go to state 27


state 36

   10 string_or_value: expr .
   26 expr: expr . '|' expr
   27     | expr . '&' expr

    '|'  shift, and go to state 46
    '&'  shift, and go to state 47

    $default  reduce using rule 10 (string_or_value)


state 37

    5 statement: TC_OFFSET option_offset ']' . '=' string_or_value

    '='  shift, and go to state 48


state 38

   31 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME '}' .

    $default  reduce using rule 31 (cfg_var_ref)


state 39

   17 encapsed_list: encapsed_list TC_QUOTED_STRING .

    $default  reduce using rule 17 (encapsed_list)


state 40

   21 var_string_list: '"' encapsed_list '"' .

    $default  reduce using rule 21 (var_string_list)


state 41

   16 encapsed_list: encapsed_list cfg_var_ref .

    $default  reduce using rule 16 (encapsed_list)


state 42

   16 encapsed_list: encapsed_list . cfg_var_ref
   17              | encapsed_list . TC_QUOTED_STRING
   24 var_string_list: var_string_list '"' encapsed_list . '"'

    TC_DOLLAR_CURLY   shift, and go to state 13
    TC_QUOTED_STRING  shift, and go to state 39
    '"'               shift, and go to state 49

    cfg_var_ref  go to state 41


state 43

   26 expr: expr . '|' expr
   27     | expr . '&' expr
   28     | '~' expr .

    $default  reduce using rule 28 (expr)


state 44

   26 expr: expr . '|' expr
   27     | expr . '&' expr
   29     | '!' expr .

    $default  reduce using rule 29 (expr)


state 45

   26 expr: expr . '|' expr
   27     | expr . '&' expr
   30     | '(' expr . ')'

    '|'  shift, and go to state 46
    '&'  shift, and go to state 47
    ')'  shift, and go to state 50


state 46

   26 expr: expr '|' . expr

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    var_string_list  go to state 35
    expr             go to state 51
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 47

   27 expr: expr '&' . expr

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    var_string_list  go to state 35
    expr             go to state 52
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 48

    5 statement: TC_OFFSET option_offset ']' '=' . string_or_value

    TC_RAW           shift, and go to state 8
    TC_CONSTANT      shift, and go to state 9
    TC_NUMBER        shift, and go to state 10
    TC_STRING        shift, and go to state 11
    TC_WHITESPACE    shift, and go to state 12
    TC_DOLLAR_CURLY  shift, and go to state 13
    BOOL_TRUE        shift, and go to state 28
    BOOL_FALSE       shift, and go to state 29
    END_OF_LINE      shift, and go to state 30
    '"'              shift, and go to state 14
    '~'              shift, and go to state 31
    '!'              shift, and go to state 32
    '('              shift, and go to state 33

    string_or_value  go to state 53
    var_string_list  go to state 35
    expr             go to state 36
    cfg_var_ref      go to state 17
    constant_string  go to state 18


state 49

   24 var_string_list: var_string_list '"' encapsed_list '"' .

    $default  reduce using rule 24 (var_string_list)


state 50

   30 expr: '(' expr ')' .

    $default  reduce using rule 30 (expr)


state 51

   26 expr: expr . '|' expr
   26     | expr '|' expr .
   27     | expr . '&' expr

    $default  reduce using rule 26 (expr)


state 52

   26 expr: expr . '|' expr
   27     | expr . '&' expr
   27     | expr '&' expr .

    $default  reduce using rule 27 (expr)


state 53

    5 statement: TC_OFFSET option_offset ']' '=' string_or_value .

    $default  reduce using rule 5 (statement)