State 8 conflicts: 2 shift/reduce
State 9 conflicts: 2 shift/reduce
State 20 conflicts: 1 shift/reduce


Grammar

    0 $accept: statement_list $end

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

    3 statement: TC_STRING '=' string_or_value
    4          | TC_STRING BRACK '=' string_or_value
    5          | TC_STRING
    6          | SECTION
    7          | '\n'

    8 string_or_value: expr
    9                | CFG_TRUE
   10                | CFG_FALSE
   11                | '\n'
   12                | /* empty */

   13 var_string_list: cfg_var_ref
   14                | TC_ENCAPSULATED_STRING
   15                | constant_string
   16                | var_string_list cfg_var_ref
   17                | var_string_list TC_ENCAPSULATED_STRING
   18                | var_string_list constant_string

   19 cfg_var_ref: TC_DOLLAR_CURLY TC_STRING '}'

   20 expr: var_string_list
   21     | expr '|' expr
   22     | expr '&' expr
   23     | '~' expr
   24     | '!' expr
   25     | '(' expr ')'

   26 constant_string: TC_STRING


Terminals, with rules where they appear

$end (0) 0
'\n' (10) 7 11
'!' (33) 24
'&' (38) 22
'(' (40) 25
')' (41) 25
'=' (61) 3 4
'|' (124) 21
'}' (125) 19
'~' (126) 23
error (256)
TC_STRING (258) 3 4 5 19 26
TC_ENCAPSULATED_STRING (259) 14 17
BRACK (260) 4
SECTION (261) 6
CFG_TRUE (262) 9
CFG_FALSE (263) 10
TC_DOLLAR_CURLY (264) 19


Nonterminals, with rules where they appear

$accept (19)
    on left: 0
statement_list (20)
    on left: 1 2, on right: 0 1
statement (21)
    on left: 3 4 5 6 7, on right: 1
string_or_value (22)
    on left: 8 9 10 11 12, on right: 3 4
var_string_list (23)
    on left: 13 14 15 16 17 18, on right: 16 17 18 20
cfg_var_ref (24)
    on left: 19, on right: 13 16
expr (25)
    on left: 20 21 22 23 24 25, on right: 8 21 22 23 24 25
constant_string (26)
    on left: 26, on right: 15 18


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_STRING  shift, and go to state 3
    SECTION    shift, and go to state 4
    '\n'       shift, and go to state 5

    statement  go to state 6


state 2

    0 $accept: statement_list $end .

    $default  accept


state 3

    3 statement: TC_STRING . '=' string_or_value
    4          | TC_STRING . BRACK '=' string_or_value
    5          | TC_STRING .

    BRACK  shift, and go to state 7
    '='    shift, and go to state 8

    $default  reduce using rule 5 (statement)


state 4

    6 statement: SECTION .

    $default  reduce using rule 6 (statement)


state 5

    7 statement: '\n' .

    $default  reduce using rule 7 (statement)


state 6

    1 statement_list: statement_list statement .

    $default  reduce using rule 1 (statement_list)


state 7

    4 statement: TC_STRING BRACK . '=' string_or_value

    '='  shift, and go to state 9


state 8

    3 statement: TC_STRING '=' . string_or_value

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    CFG_TRUE                shift, and go to state 12
    CFG_FALSE               shift, and go to state 13
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '\n'                    shift, and go to state 17
    '('                     shift, and go to state 18

    TC_STRING  [reduce using rule 12 (string_or_value)]
    '\n'       [reduce using rule 12 (string_or_value)]
    $default   reduce using rule 12 (string_or_value)

    string_or_value  go to state 19
    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 22
    constant_string  go to state 23


state 9

    4 statement: TC_STRING BRACK '=' . string_or_value

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    CFG_TRUE                shift, and go to state 12
    CFG_FALSE               shift, and go to state 13
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '\n'                    shift, and go to state 17
    '('                     shift, and go to state 18

    TC_STRING  [reduce using rule 12 (string_or_value)]
    '\n'       [reduce using rule 12 (string_or_value)]
    $default   reduce using rule 12 (string_or_value)

    string_or_value  go to state 24
    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 22
    constant_string  go to state 23


state 10

   26 constant_string: TC_STRING .

    $default  reduce using rule 26 (constant_string)


state 11

   14 var_string_list: TC_ENCAPSULATED_STRING .

    $default  reduce using rule 14 (var_string_list)


state 12

    9 string_or_value: CFG_TRUE .

    $default  reduce using rule 9 (string_or_value)


state 13

   10 string_or_value: CFG_FALSE .

    $default  reduce using rule 10 (string_or_value)


state 14

   19 cfg_var_ref: TC_DOLLAR_CURLY . TC_STRING '}'

    TC_STRING  shift, and go to state 25


state 15

   23 expr: '~' . expr

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '('                     shift, and go to state 18

    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 26
    constant_string  go to state 23


state 16

   24 expr: '!' . expr

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '('                     shift, and go to state 18

    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 27
    constant_string  go to state 23


state 17

   11 string_or_value: '\n' .

    $default  reduce using rule 11 (string_or_value)


state 18

   25 expr: '(' . expr ')'

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '('                     shift, and go to state 18

    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 28
    constant_string  go to state 23


state 19

    3 statement: TC_STRING '=' string_or_value .

    $default  reduce using rule 3 (statement)


state 20

   16 var_string_list: var_string_list . cfg_var_ref
   17                | var_string_list . TC_ENCAPSULATED_STRING
   18                | var_string_list . constant_string
   20 expr: var_string_list .

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 29
    TC_DOLLAR_CURLY         shift, and go to state 14

    TC_STRING  [reduce using rule 20 (expr)]
    $default   reduce using rule 20 (expr)

    cfg_var_ref      go to state 30
    constant_string  go to state 31


state 21

   13 var_string_list: cfg_var_ref .

    $default  reduce using rule 13 (var_string_list)


state 22

    8 string_or_value: expr .
   21 expr: expr . '|' expr
   22     | expr . '&' expr

    '|'  shift, and go to state 32
    '&'  shift, and go to state 33

    $default  reduce using rule 8 (string_or_value)


state 23

   15 var_string_list: constant_string .

    $default  reduce using rule 15 (var_string_list)


state 24

    4 statement: TC_STRING BRACK '=' string_or_value .

    $default  reduce using rule 4 (statement)


state 25

   19 cfg_var_ref: TC_DOLLAR_CURLY TC_STRING . '}'

    '}'  shift, and go to state 34


state 26

   21 expr: expr . '|' expr
   22     | expr . '&' expr
   23     | '~' expr .

    $default  reduce using rule 23 (expr)


state 27

   21 expr: expr . '|' expr
   22     | expr . '&' expr
   24     | '!' expr .

    $default  reduce using rule 24 (expr)


state 28

   21 expr: expr . '|' expr
   22     | expr . '&' expr
   25     | '(' expr . ')'

    '|'  shift, and go to state 32
    '&'  shift, and go to state 33
    ')'  shift, and go to state 35


state 29

   17 var_string_list: var_string_list TC_ENCAPSULATED_STRING .

    $default  reduce using rule 17 (var_string_list)


state 30

   16 var_string_list: var_string_list cfg_var_ref .

    $default  reduce using rule 16 (var_string_list)


state 31

   18 var_string_list: var_string_list constant_string .

    $default  reduce using rule 18 (var_string_list)


state 32

   21 expr: expr '|' . expr

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '('                     shift, and go to state 18

    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 36
    constant_string  go to state 23


state 33

   22 expr: expr '&' . expr

    TC_STRING               shift, and go to state 10
    TC_ENCAPSULATED_STRING  shift, and go to state 11
    TC_DOLLAR_CURLY         shift, and go to state 14
    '~'                     shift, and go to state 15
    '!'                     shift, and go to state 16
    '('                     shift, and go to state 18

    var_string_list  go to state 20
    cfg_var_ref      go to state 21
    expr             go to state 37
    constant_string  go to state 23


state 34

   19 cfg_var_ref: TC_DOLLAR_CURLY TC_STRING '}' .

    $default  reduce using rule 19 (cfg_var_ref)


state 35

   25 expr: '(' expr ')' .

    $default  reduce using rule 25 (expr)


state 36

   21 expr: expr . '|' expr
   21     | expr '|' expr .
   22     | expr . '&' expr

    $default  reduce using rule 21 (expr)


state 37

   21 expr: expr . '|' expr
   22     | expr . '&' expr
   22     | expr '&' expr .

    $default  reduce using rule 22 (expr)
