Terminals unused in grammar

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


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_section
    9                        | /* empty */

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

   15 option_offset: var_string_list
   16              | /* empty */

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

   20 var_string_list_section: cfg_var_ref
   21                        | constant_literal
   22                        | '"' encapsed_list '"'
   23                        | var_string_list_section cfg_var_ref
   24                        | var_string_list_section constant_literal
   25                        | var_string_list_section '"' encapsed_list '"'

   26 var_string_list: cfg_var_ref
   27                | constant_string
   28                | '"' encapsed_list '"'
   29                | var_string_list cfg_var_ref
   30                | var_string_list constant_string
   31                | var_string_list '"' encapsed_list '"'

   32 expr: var_string_list
   33     | expr '|' expr
   34     | expr '&' expr
   35     | expr '^' expr
   36     | '~' expr
   37     | '!' expr
   38     | '(' expr ')'

   39 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME '}'

   40 constant_literal: TC_CONSTANT
   41                 | TC_RAW
   42                 | TC_NUMBER
   43                 | TC_STRING
   44                 | TC_WHITESPACE

   45 constant_string: TC_CONSTANT
   46                | TC_RAW
   47                | TC_NUMBER
   48                | TC_STRING
   49                | TC_WHITESPACE


Terminals, with rules where they appear

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


Nonterminals, with rules where they appear

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


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_section  go to state 16
    cfg_var_ref              go to state 17
    constant_literal         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 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25

    $default  reduce using rule 16 (option_offset)

    option_offset    go to state 26
    var_string_list  go to state 27
    cfg_var_ref      go to state 28
    constant_string  go to state 29


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

   41 constant_literal: TC_RAW .

    $default  reduce using rule 41 (constant_literal)


state 9

   40 constant_literal: TC_CONSTANT .

    $default  reduce using rule 40 (constant_literal)


state 10

   42 constant_literal: TC_NUMBER .

    $default  reduce using rule 42 (constant_literal)


state 11

   43 constant_literal: TC_STRING .

    $default  reduce using rule 43 (constant_literal)


state 12

   44 constant_literal: TC_WHITESPACE .

    $default  reduce using rule 44 (constant_literal)


state 13

   39 cfg_var_ref: TC_DOLLAR_CURLY . TC_VARNAME '}'

    TC_VARNAME  shift, and go to state 30


state 14

   22 var_string_list_section: '"' . encapsed_list '"'

    $default  reduce using rule 19 (encapsed_list)

    encapsed_list  go to state 31


state 15

    3 statement: TC_SECTION section_string_or_value . ']'

    ']'  shift, and go to state 32


state 16

    8 section_string_or_value: var_string_list_section .
   23 var_string_list_section: var_string_list_section . cfg_var_ref
   24                        | var_string_list_section . constant_literal
   25                        | var_string_list_section . '"' 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 33

    $default  reduce using rule 8 (section_string_or_value)

    cfg_var_ref       go to state 34
    constant_literal  go to state 35


state 17

   20 var_string_list_section: cfg_var_ref .

    $default  reduce using rule 20 (var_string_list_section)


state 18

   21 var_string_list_section: constant_literal .

    $default  reduce using rule 21 (var_string_list_section)


state 19

    4 statement: TC_LABEL '=' . string_or_value

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    BOOL_TRUE        shift, and go to state 36
    BOOL_FALSE       shift, and go to state 37
    NULL_NULL        shift, and go to state 38
    END_OF_LINE      shift, and go to state 39
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    string_or_value  go to state 43
    var_string_list  go to state 44
    expr             go to state 45
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 20

   46 constant_string: TC_RAW .

    $default  reduce using rule 46 (constant_string)


state 21

   45 constant_string: TC_CONSTANT .

    $default  reduce using rule 45 (constant_string)


state 22

   47 constant_string: TC_NUMBER .

    $default  reduce using rule 47 (constant_string)


state 23

   48 constant_string: TC_STRING .

    $default  reduce using rule 48 (constant_string)


state 24

   49 constant_string: TC_WHITESPACE .

    $default  reduce using rule 49 (constant_string)


state 25

   28 var_string_list: '"' . encapsed_list '"'

    $default  reduce using rule 19 (encapsed_list)

    encapsed_list  go to state 46


state 26

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

    ']'  shift, and go to state 47


state 27

   15 option_offset: var_string_list .
   29 var_string_list: var_string_list . cfg_var_ref
   30                | var_string_list . constant_string
   31                | var_string_list . '"' encapsed_list '"'

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 48

    $default  reduce using rule 15 (option_offset)

    cfg_var_ref      go to state 49
    constant_string  go to state 50


state 28

   26 var_string_list: cfg_var_ref .

    $default  reduce using rule 26 (var_string_list)


state 29

   27 var_string_list: constant_string .

    $default  reduce using rule 27 (var_string_list)


state 30

   39 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME . '}'

    '}'  shift, and go to state 51


state 31

   17 encapsed_list: encapsed_list . cfg_var_ref
   18              | encapsed_list . TC_QUOTED_STRING
   22 var_string_list_section: '"' encapsed_list . '"'

    TC_DOLLAR_CURLY   shift, and go to state 13
    TC_QUOTED_STRING  shift, and go to state 52
    '"'               shift, and go to state 53

    cfg_var_ref  go to state 54


state 32

    3 statement: TC_SECTION section_string_or_value ']' .

    $default  reduce using rule 3 (statement)


state 33

   25 var_string_list_section: var_string_list_section '"' . encapsed_list '"'

    $default  reduce using rule 19 (encapsed_list)

    encapsed_list  go to state 55


state 34

   23 var_string_list_section: var_string_list_section cfg_var_ref .

    $default  reduce using rule 23 (var_string_list_section)


state 35

   24 var_string_list_section: var_string_list_section constant_literal .

    $default  reduce using rule 24 (var_string_list_section)


state 36

   11 string_or_value: BOOL_TRUE .

    $default  reduce using rule 11 (string_or_value)


state 37

   12 string_or_value: BOOL_FALSE .

    $default  reduce using rule 12 (string_or_value)


state 38

   13 string_or_value: NULL_NULL .

    $default  reduce using rule 13 (string_or_value)


state 39

   14 string_or_value: END_OF_LINE .

    $default  reduce using rule 14 (string_or_value)


state 40

   36 expr: '~' . expr

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    var_string_list  go to state 44
    expr             go to state 56
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 41

   37 expr: '!' . expr

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    var_string_list  go to state 44
    expr             go to state 57
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 42

   38 expr: '(' . expr ')'

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    var_string_list  go to state 44
    expr             go to state 58
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 43

    4 statement: TC_LABEL '=' string_or_value .

    $default  reduce using rule 4 (statement)


state 44

   29 var_string_list: var_string_list . cfg_var_ref
   30                | var_string_list . constant_string
   31                | var_string_list . '"' encapsed_list '"'
   32 expr: var_string_list .

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 48

    $default  reduce using rule 32 (expr)

    cfg_var_ref      go to state 49
    constant_string  go to state 50


state 45

   10 string_or_value: expr .
   33 expr: expr . '|' expr
   34     | expr . '&' expr
   35     | expr . '^' expr

    '^'  shift, and go to state 59
    '|'  shift, and go to state 60
    '&'  shift, and go to state 61

    $default  reduce using rule 10 (string_or_value)


state 46

   17 encapsed_list: encapsed_list . cfg_var_ref
   18              | encapsed_list . TC_QUOTED_STRING
   28 var_string_list: '"' encapsed_list . '"'

    TC_DOLLAR_CURLY   shift, and go to state 13
    TC_QUOTED_STRING  shift, and go to state 52
    '"'               shift, and go to state 62

    cfg_var_ref  go to state 54


state 47

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

    '='  shift, and go to state 63


state 48

   31 var_string_list: var_string_list '"' . encapsed_list '"'

    $default  reduce using rule 19 (encapsed_list)

    encapsed_list  go to state 64


state 49

   29 var_string_list: var_string_list cfg_var_ref .

    $default  reduce using rule 29 (var_string_list)


state 50

   30 var_string_list: var_string_list constant_string .

    $default  reduce using rule 30 (var_string_list)


state 51

   39 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME '}' .

    $default  reduce using rule 39 (cfg_var_ref)


state 52

   18 encapsed_list: encapsed_list TC_QUOTED_STRING .

    $default  reduce using rule 18 (encapsed_list)


state 53

   22 var_string_list_section: '"' encapsed_list '"' .

    $default  reduce using rule 22 (var_string_list_section)


state 54

   17 encapsed_list: encapsed_list cfg_var_ref .

    $default  reduce using rule 17 (encapsed_list)


state 55

   17 encapsed_list: encapsed_list . cfg_var_ref
   18              | encapsed_list . TC_QUOTED_STRING
   25 var_string_list_section: var_string_list_section '"' encapsed_list . '"'

    TC_DOLLAR_CURLY   shift, and go to state 13
    TC_QUOTED_STRING  shift, and go to state 52
    '"'               shift, and go to state 65

    cfg_var_ref  go to state 54


state 56

   33 expr: expr . '|' expr
   34     | expr . '&' expr
   35     | expr . '^' expr
   36     | '~' expr .

    $default  reduce using rule 36 (expr)


state 57

   33 expr: expr . '|' expr
   34     | expr . '&' expr
   35     | expr . '^' expr
   37     | '!' expr .

    $default  reduce using rule 37 (expr)


state 58

   33 expr: expr . '|' expr
   34     | expr . '&' expr
   35     | expr . '^' expr
   38     | '(' expr . ')'

    '^'  shift, and go to state 59
    '|'  shift, and go to state 60
    '&'  shift, and go to state 61
    ')'  shift, and go to state 66


state 59

   35 expr: expr '^' . expr

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    var_string_list  go to state 44
    expr             go to state 67
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 60

   33 expr: expr '|' . expr

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    var_string_list  go to state 44
    expr             go to state 68
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 61

   34 expr: expr '&' . expr

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    var_string_list  go to state 44
    expr             go to state 69
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 62

   28 var_string_list: '"' encapsed_list '"' .

    $default  reduce using rule 28 (var_string_list)


state 63

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

    TC_RAW           shift, and go to state 20
    TC_CONSTANT      shift, and go to state 21
    TC_NUMBER        shift, and go to state 22
    TC_STRING        shift, and go to state 23
    TC_WHITESPACE    shift, and go to state 24
    TC_DOLLAR_CURLY  shift, and go to state 13
    BOOL_TRUE        shift, and go to state 36
    BOOL_FALSE       shift, and go to state 37
    NULL_NULL        shift, and go to state 38
    END_OF_LINE      shift, and go to state 39
    '"'              shift, and go to state 25
    '~'              shift, and go to state 40
    '!'              shift, and go to state 41
    '('              shift, and go to state 42

    string_or_value  go to state 70
    var_string_list  go to state 44
    expr             go to state 45
    cfg_var_ref      go to state 28
    constant_string  go to state 29


state 64

   17 encapsed_list: encapsed_list . cfg_var_ref
   18              | encapsed_list . TC_QUOTED_STRING
   31 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 52
    '"'               shift, and go to state 71

    cfg_var_ref  go to state 54


state 65

   25 var_string_list_section: var_string_list_section '"' encapsed_list '"' .

    $default  reduce using rule 25 (var_string_list_section)


state 66

   38 expr: '(' expr ')' .

    $default  reduce using rule 38 (expr)


state 67

   33 expr: expr . '|' expr
   34     | expr . '&' expr
   35     | expr . '^' expr
   35     | expr '^' expr .

    $default  reduce using rule 35 (expr)


state 68

   33 expr: expr . '|' expr
   33     | expr '|' expr .
   34     | expr . '&' expr
   35     | expr . '^' expr

    $default  reduce using rule 33 (expr)


state 69

   33 expr: expr . '|' expr
   34     | expr . '&' expr
   34     | expr '&' expr .
   35     | expr . '^' expr

    $default  reduce using rule 34 (expr)


state 70

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

    $default  reduce using rule 5 (statement)


state 71

   31 var_string_list: var_string_list '"' encapsed_list '"' .

    $default  reduce using rule 31 (var_string_list)
