abstract_declarator |
|
access_specifier |
-
'private'
-
'protected'
-
'public'
|
additive_expression |
|
and_expression |
|
asm_definition |
'asm' '(' string_literal ')' ';' |
assignment_expression |
|
assignment_operator |
-
'='
-
'*='
-
'/='
-
'%='
-
'+='
-
'-='
-
'>>='
-
'<<='
-
'&='
-
'^='
-
'|='
|
base_clause |
':' base_specifier_list |
base_specifier |
|
base_specifier_list |
|
block_declaration |
|
boolean_literal |
|
c_char |
|
c_char_sequence |
|
cast_expression |
|
character_literal |
|
class_head |
|
class_key |
|
class_name |
|
class_or_namespace_name |
|
class_specifier |
class_head '{' [ member_specification ] '}' |
compound_statement |
'{' [ statement_seq ] '}' |
condition |
|
conditional_expression |
|
constant_expression |
conditional_expression |
constant_initializer |
'=' constant_expression |
control_line |
|
conversion_declarator |
ptr_operator [ conversion_declarator ] |
conversion_function_id |
'operator' conversion_type_id |
conversion_type_id |
type_specifier_seq [ conversion_declarator ] |
ctor_initializer |
':' mem_initializer_list |
cv_qualifier |
|
cv_qualifier_seq |
cv_qualifier [ cv_qualifier_seq ] |
decimal_literal |
|
decl_specifier |
|
decl_specifier_seq |
[ decl_specifier_seq ] decl_specifier |
declaration |
|
declaration_seq |
|
declaration_statement |
block_declaration |
declarator |
|
declarator_id |
|
delete_expression |
|
digit |
DIGIT |
digit_sequence |
|
direct_abstract_declarator |
|
direct_declarator |
|
direct_new_declarator |
|
elaborated_type_specifier |
|
elif_group |
'#' 'elif' constant_expression new_line [ group ] |
elif_groups |
|
else_group |
'#' 'else' new_line [ group ] |
endif_line |
'#' 'endif' new_line |
enum_name |
identifier |
enum_specifier |
'enum' [ identifier ] '{' [ enumerator_list ] '}' |
enumerator |
identifier |
enumerator_definition |
|
enumerator_list |
|
equality_expression |
|
escape_sequence |
|
exception_declatation |
|
exception_specification |
'throw' '(' [ type_id_list ] ')' |
exclusive_or_expression |
|
explicit_instantiation |
'template' declaration |
explicit_specialization |
'template' '<' '>' declaration |
exponent_part |
|
expression |
|
expression_list |
|
expression_statement |
[ expression ] ';' |
extension_namespace_definition |
'namespace' original_namespace_name '{' namespace_body '}' |
floating_literal |
|
floating_suffix |
|
for_init_statement |
|
fractional_constant |
|
function_body |
compound_statement |
function_definition |
|
function_specifier |
-
'inline'
-
'virtual'
-
'explicit'
|
function_try_block |
'try' [ ctor_initializer ] function_body handler_seq |
group |
|
group_part |
|
h_char |
ANY_CHARACTER_EXCEPT_NEWLINE_GT |
h_char_sequence |
|
handler |
'catch' '(' exception_declatation ')' compound_statement |
handler_seq |
handler [ handler_seq ] |
header_name |
|
hex_quad |
hexadecimal_digit hexadecimal_digit hexadecimal_digit hexadecimal_digit |
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 |
|
hexadecimal_literal |
|
id_expression |
|
identifier |
|
identifier_list |
|
if_group |
|
if_section |
if_group [ elif_groups ] [ else_group ] endif_line |
inclusive_or_expression |
|
init_declarator |
declarator [ initializer ] |
init_declarator_list |
|
initializer |
|
initializer_clause |
|
initializer_list |
|
integer_literal |
|
integer_suffix |
|
iteration_statement |
|
jump_statement |
|
labeled_statement |
|
linkage_specification |
|
literal |
|
logical_and_expression |
|
logical_or_expression |
|
long_suffix |
|
lparen |
LEFT_PARENTHESIS_WITHOUT_LEADING_WS |
mem_initializer |
mem_initializer_id '(' [ expression_list ] ')' |
mem_initializer_id |
|
mem_initializer_list |
|
member_declaration |
|
member_declarator |
|
member_declarator_list |
|
member_specification |
|
multiplicative_expression |
|
named_namespace_definition |
|
namespace_alias |
identifier |
namespace_alias_definition |
'namespace' identifier '=' qualified_namespace_specifier ';' |
namespace_body |
[ declaration_seq ] |
namespace_definition |
|
namespace_name |
|
nested_name_specifier |
|
new_declarator |
|
new_expression |
|
new_initializer |
'(' [ expression_list ] ')' |
new_line |
NEWLINE |
new_placement |
'(' expression_list ')' |
new_type_id |
type_specifier_seq [ new_declarator ] |
nondigit |
|
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 |
|
operator |
-
'new'
-
'delete'
-
'new[]'
-
'delete[]'
-
'+'
-
'-'
-
'*'
-
'/'
-
'%'
-
'^'
-
'&'
-
'|'
-
'~'
-
'!'
-
'='
-
'<'
-
'>'
-
'+='
-
'-='
-
'*='
-
'/='
-
'%='
-
'^='
-
'&='
-
'|='
-
'<<'
-
'>>'
-
'>>='
-
'<<='
-
'=='
-
'!='
-
'<='
-
'>='
-
'&&'
-
'||'
-
'++'
-
'--'
-
','
-
'->*'
-
'->'
-
'()'
-
'[]'
|
operator_function_id |
'operator' operator |
original_namespace_definition |
'namespace' identifier '{' namespace_body '}' |
original_namespace_name |
identifier |
paramerter_declaration_clause |
|
parameter_declaration |
|
parameter_declaration_list |
|
pm_expression |
|
postfix_expression |
|
pp_number |
|
pp_tokens |
|
preprocessing_file |
[ group ] |
preprocessing_op_or_punc |
-
'{'
-
'}'
-
'['
-
']'
-
'#'
-
'##'
-
'('
-
')'
-
'<:'
-
':>'
-
'<%'
-
'%>'
-
'%:'
-
'%:%:'
-
';'
-
':'
-
'...'
-
'new'
-
'delete'
-
'?'
-
'::'
-
'.'
-
'.*'
-
'+'
-
'-'
-
'*'
-
'/'
-
'%'
-
'^'
-
'&'
-
'|'
-
'~'
-
'!'
-
'='
-
'<'
-
'>'
-
'+='
-
'-='
-
'*='
-
'/='
-
'%='
-
'^='
-
'&='
-
'|='
-
'<<'
-
'>>'
-
'>>='
-
'<<='
-
'=='
-
'!='
-
'<='
-
'>='
-
'&&'
-
'||'
-
'++'
-
'--'
-
','
-
'->*'
-
'->'
-
'and'
-
'and_eq'
-
'bitand'
-
'bitor'
-
'compl'
-
'not'
-
'not_eq'
-
'or'
-
'or_eq'
-
'xor'
-
'xor_eq'
|
preprocessing_token |
|
primary_expression |
|
pseudo_destructor_name |
|
ptr_operator |
|
pure_specifier |
'=' '0' |
q_char |
ANY_CHARACTER_EXCEPT_NEWLINE_DQUOTE |
q_char_sequence |
|
qualified_id |
|
qualified_namespace_specifier |
[ '::' ] [ nested_name_specifier ] namespace_name |
relational_expression |
|
replacement_list |
[ pp_tokens ] |
s_char |
|
s_char_sequence |
|
selection_statement |
|
shift_expression |
|
sign |
|
simple_declaration |
[ decl_specifier_seq ] [ init_declarator_list ] ';' |
simple_escape_sequence |
-
"\'"
-
'\"'
-
'\?'
-
'\\'
-
'\a'
-
'\b'
-
'\f'
-
'\n'
-
'\r'
-
'\t'
-
'\v'
|
simple_type_specifier |
|
statement |
|
statement_seq |
|
storage_class_specifier |
-
'auto'
-
'register'
-
'static'
-
'extern'
-
'mutable'
|
string_literal |
|
syntax |
|
template_argument |
|
template_argument_list |
|
template_declaration |
[ 'export' ] 'template' '<' template_parameter_list '>' declaration |
template_id |
template_name '<' [ template_argument_list ] '>' |
template_name |
identifier |
template_parameter |
|
template_parameter_list |
|
throw_expression |
'throw' [ assignment_expression ] |
token (not used) |
|
translation_unit |
[ declaration_seq ] |
try_block |
'try' compound_statement handler_seq |
type_id |
type_specifier_seq [ abstract_declarator ] |
type_id_list |
|
type_name |
|
type_parameter |
|
type_specifier |
|
type_specifier_seq |
type_specifier [ type_specifier_seq ] |
typedef_name |
identifier |
unary_expression |
|
unary_operator |
|
universal_character_name |
|
unnamed_namespace_definition |
'namespace' '{' namespace_body '}' |
unqualified_id |
|
unsigned_suffix |
|
using_declaration |
|
using_directive |
'using' 'namespace' [ '::' ] [ nested_name_specifier ] namespace_name ';' |