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 ';' |