| additive_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| and_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| boolean_literal |
'false'
'true' |
| c_char |
"\'"
'\"'
'\'
'\?'
'\U'
'\\'
'\a'
'\b'
'\f'
'\n'
'\r'
'\t'
'\u'
'\v'
'\x'
ANY_CHARACTER_EXCEPT_NEWLINE_SQUOTE_BACKSLASH |
| c_char_sequence |
"\'"
'\"'
'\'
'\?'
'\U'
'\\'
'\a'
'\b'
'\f'
'\n'
'\r'
'\t'
'\u'
'\v'
'\x'
ANY_CHARACTER_EXCEPT_NEWLINE_SQUOTE_BACKSLASH |
| character_literal |
"'"
"L'" |
| conditional_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| control_line |
'#' |
| decimal_literal |
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9' |
| digit |
DIGIT |
| elif_group |
'#' |
| else_group |
'#' |
| endif_line |
'#' |
| equality_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| escape_sequence |
"\'"
'\"'
'\'
'\?'
'\\'
'\a'
'\b'
'\f'
'\n'
'\r'
'\t'
'\v'
'\x' |
| exclusive_or_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| group |
ø
"'"
"L'"
'!'
'!='
'"'
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'L"'
'['
'\U'
'\u'
']'
'^'
'^='
'_'
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~'
ALPHA_CHARACTER
ANY_NOT_YET_COVERED_NON_WS_CHARACTER
DIGIT
NEWLINE |
| group_part |
"'"
"L'"
'!'
'!='
'"'
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'L"'
'['
'\U'
'\u'
']'
'^'
'^='
'_'
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~'
ALPHA_CHARACTER
ANY_NOT_YET_COVERED_NON_WS_CHARACTER
DIGIT
NEWLINE |
| h_char |
ANY_CHARACTER_EXCEPT_NEWLINE_GT |
| h_char_sequence |
ANY_CHARACTER_EXCEPT_NEWLINE_GT |
| header_name |
'"'
'<' |
| hex_quad |
'0'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'A'
'B'
'C'
'D'
'E'
'F'
'a'
'b'
'c'
'd'
'e'
'f' |
| hexadecimal_digit |
'0'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'A'
'B'
'C'
'D'
'E'
'F'
'a'
'b'
'c'
'd'
'e'
'f' |
| hexadecimal_escape_sequence |
'\x' |
| hexadecimal_literal |
'0X'
'0x' |
| identifier |
'\U'
'\u'
'_'
ALPHA_CHARACTER |
| identifier_list |
'\U'
'\u'
'_'
ALPHA_CHARACTER |
| if_group |
'#' |
| if_section |
'#' |
| inclusive_or_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| integer_literal |
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9' |
| integer_suffix |
'L'
'U'
'l'
'u' |
| logical_and_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| logical_or_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| long_suffix |
'L'
'l' |
| lparen |
LEFT_PARENTHESIS_WITHOUT_LEADING_WS |
| multiplicative_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| new_line |
NEWLINE |
| nondigit |
'\U'
'\u'
'_'
ALPHA_CHARACTER |
| nonzero_digit |
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9' |
| octal_digit |
'0'
'1'
'2'
'3'
'4'
'5'
'6'
'7' |
| octal_escape_sequence |
'\' |
| octal_literal |
'0' |
| pp_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| pp_number |
'.'
DIGIT |
| pp_tokens |
ø
"'"
"L'"
'!'
'!='
'"'
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'L"'
'['
'\U'
'\u'
']'
'^'
'^='
'_'
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~'
ALPHA_CHARACTER
ANY_NOT_YET_COVERED_NON_WS_CHARACTER
DIGIT |
| preprocessing_file |
ø
"'"
"L'"
'!'
'!='
'"'
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'L"'
'['
'\U'
'\u'
']'
'^'
'^='
'_'
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~'
ALPHA_CHARACTER
ANY_NOT_YET_COVERED_NON_WS_CHARACTER
DIGIT
NEWLINE |
| preprocessing_op_or_punc |
'!'
'!='
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'['
']'
'^'
'^='
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~' |
| preprocessing_token |
"'"
"L'"
'!'
'!='
'"'
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'L"'
'['
'\U'
'\u'
']'
'^'
'^='
'_'
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~'
ALPHA_CHARACTER
ANY_NOT_YET_COVERED_NON_WS_CHARACTER
DIGIT |
| primary_expression |
"'"
"L'"
'('
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
ALPHA_CHARACTER |
| q_char |
ANY_CHARACTER_EXCEPT_NEWLINE_DQUOTE |
| q_char_sequence |
ANY_CHARACTER_EXCEPT_NEWLINE_DQUOTE |
| relational_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| replacement_list |
ø
"'"
"L'"
'!'
'!='
'"'
'##'
'#'
'%'
'%:%:'
'%:'
'%='
'%>'
'&&'
'&'
'&='
'('
')'
'*'
'*='
'+'
'++'
'+='
','
'-'
'--'
'-='
'->'
'->*'
'.'
'.*'
'...'
'/'
'/='
':'
'::'
':>'
';'
'<%'
'<'
'<:'
'<<'
'<<='
'<='
'='
'=='
'>'
'>='
'>>'
'>>='
'?'
'L"'
'['
'\U'
'\u'
']'
'^'
'^='
'_'
'and'
'and_eq'
'bitand'
'bitor'
'compl'
'delete'
'new'
'not'
'not_eq'
'or'
'or_eq'
'xor'
'xor_eq'
'{'
'|'
'|='
'||'
'}'
'~'
ALPHA_CHARACTER
ANY_NOT_YET_COVERED_NON_WS_CHARACTER
DIGIT |
| s_char |
"\'"
'\"'
'\'
'\?'
'\U'
'\\'
'\a'
'\b'
'\f'
'\n'
'\r'
'\t'
'\u'
'\v'
'\x'
ANY_CHARACTER_EXCEPT_NEWLINE_DQUOTE_BACKSLASH |
| s_char_sequence |
"\'"
'\"'
'\'
'\?'
'\U'
'\\'
'\a'
'\b'
'\f'
'\n'
'\r'
'\t'
'\u'
'\v'
'\x'
ANY_CHARACTER_EXCEPT_NEWLINE_DQUOTE_BACKSLASH |
| shift_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| sign |
'+'
'-' |
| simple_escape_sequence |
"\'"
'\"'
'\?'
'\\'
'\a'
'\b'
'\f'
'\n'
'\r'
'\t'
'\v' |
| string_literal |
'"'
'L"' |
| unary_expression |
"'"
"L'"
'!'
'('
'+'
'-'
'0'
'0X'
'0x'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\U'
'\u'
'_'
'~'
ALPHA_CHARACTER |
| unary_operator |
'!'
'+'
'-'
'~' |
| universal_character_name |
'\U'
'\u' |
| unsigned_suffix |
'U'
'u' |