{ "0": "c", "1": "p", "2": "p", "name": "cuda", "word": "identifier", "rules": { "translation_unit": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_top_level_item" } }, "_top_level_item": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "linkage_specification" }, { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "_top_level_statement" }, { "type": "SYMBOL", "name": "attributed_statement" }, { "type": "SYMBOL", "name": "type_definition" }, { "type": "SYMBOL", "name": "_empty_declaration" }, { "type": "SYMBOL", "name": "preproc_if" }, { "type": "SYMBOL", "name": "preproc_ifdef" }, { "type": "SYMBOL", "name": "preproc_include" }, { "type": "SYMBOL", "name": "preproc_def" }, { "type": "SYMBOL", "name": "preproc_function_def" }, { "type": "SYMBOL", "name": "preproc_call" }, { "type": "SYMBOL", "name": "namespace_definition" }, { "type": "SYMBOL", "name": "concept_definition" }, { "type": "SYMBOL", "name": "namespace_alias_definition" }, { "type": "SYMBOL", "name": "using_declaration" }, { "type": "SYMBOL", "name": "alias_declaration" }, { "type": "SYMBOL", "name": "static_assert_declaration" }, { "type": "SYMBOL", "name": "template_declaration" }, { "type": "SYMBOL", "name": "template_instantiation" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_or_destructor_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_declaration" }, "named": true, "value": "declaration" } ] }, "_block_item": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "linkage_specification" }, { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "statement" }, { "type": "SYMBOL", "name": "attributed_statement" }, { "type": "SYMBOL", "name": "type_definition" }, { "type": "SYMBOL", "name": "_empty_declaration" }, { "type": "SYMBOL", "name": "preproc_if" }, { "type": "SYMBOL", "name": "preproc_ifdef" }, { "type": "SYMBOL", "name": "preproc_include" }, { "type": "SYMBOL", "name": "preproc_def" }, { "type": "SYMBOL", "name": "preproc_function_def" }, { "type": "SYMBOL", "name": "preproc_call" }, { "type": "SYMBOL", "name": "namespace_definition" }, { "type": "SYMBOL", "name": "concept_definition" }, { "type": "SYMBOL", "name": "namespace_alias_definition" }, { "type": "SYMBOL", "name": "using_declaration" }, { "type": "SYMBOL", "name": "alias_declaration" }, { "type": "SYMBOL", "name": "static_assert_declaration" }, { "type": "SYMBOL", "name": "template_declaration" }, { "type": "SYMBOL", "name": "template_instantiation" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_or_destructor_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_declaration" }, "named": true, "value": "declaration" } ] }, "preproc_include": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*include" }, "named": false, "value": "#include" }, { "type": "FIELD", "name": "path", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "system_lib_string" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_call_expression" }, "named": true, "value": "call_expression" } ] } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "\\r?\\n" } } ] }, "preproc_def": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*define" }, "named": false, "value": "#define" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_arg" }, { "type": "BLANK" } ] } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "\\r?\\n" } } ] }, "preproc_function_def": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*define" }, "named": false, "value": "#define" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "preproc_params" } }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_arg" }, { "type": "BLANK" } ] } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "\\r?\\n" } } ] }, "preproc_params": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "(" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "..." } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "..." } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "preproc_call": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "directive", "content": { "type": "SYMBOL", "name": "preproc_directive" } }, { "type": "FIELD", "name": "argument", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_arg" }, { "type": "BLANK" } ] } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "\\r?\\n" } } ] }, "preproc_if": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*if" }, "named": false, "value": "#if" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_else" }, { "type": "SYMBOL", "name": "preproc_elif" }, { "type": "SYMBOL", "name": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_ifdef": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifdef" }, "named": false, "value": "#ifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifndef" }, "named": false, "value": "#ifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_else" }, { "type": "SYMBOL", "name": "preproc_elif" }, { "type": "SYMBOL", "name": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_else": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*else" }, "named": false, "value": "#else" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } } ] } }, "preproc_elif": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elif" }, "named": false, "value": "#elif" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_else" }, { "type": "SYMBOL", "name": "preproc_elif" }, { "type": "SYMBOL", "name": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_elifdef": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifdef" }, "named": false, "value": "#elifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifndef" }, "named": false, "value": "#elifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "preproc_else" }, { "type": "SYMBOL", "name": "preproc_elif" }, { "type": "SYMBOL", "name": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_if_in_field_declaration_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*if" }, "named": false, "value": "#if" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_field_declaration_list_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_field_declaration_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_field_declaration_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_field_declaration_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_ifdef_in_field_declaration_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifdef" }, "named": false, "value": "#ifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifndef" }, "named": false, "value": "#ifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_field_declaration_list_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_field_declaration_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_field_declaration_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_field_declaration_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_else_in_field_declaration_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*else" }, "named": false, "value": "#else" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_field_declaration_list_item" } } ] } }, "preproc_elif_in_field_declaration_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elif" }, "named": false, "value": "#elif" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_field_declaration_list_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_field_declaration_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_field_declaration_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_field_declaration_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_elifdef_in_field_declaration_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifdef" }, "named": false, "value": "#elifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifndef" }, "named": false, "value": "#elifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_field_declaration_list_item" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_field_declaration_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_field_declaration_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_field_declaration_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_if_in_enumerator_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*if" }, "named": false, "value": "#if" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "STRING", "value": "," } ] } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_ifdef_in_enumerator_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifdef" }, "named": false, "value": "#ifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifndef" }, "named": false, "value": "#ifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "STRING", "value": "," } ] } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_else_in_enumerator_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*else" }, "named": false, "value": "#else" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "STRING", "value": "," } ] } } ] } }, "preproc_elif_in_enumerator_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elif" }, "named": false, "value": "#elif" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "STRING", "value": "," } ] } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_elifdef_in_enumerator_list": { "type": "PREC", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifdef" }, "named": false, "value": "#elifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifndef" }, "named": false, "value": "#elifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "STRING", "value": "," } ] } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_if_in_enumerator_list_no_comma": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*if" }, "named": false, "value": "#if" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "enumerator" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_ifdef_in_enumerator_list_no_comma": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifdef" }, "named": false, "value": "#ifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*ifndef" }, "named": false, "value": "#ifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "enumerator" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*endif" }, "named": false, "value": "#endif" } ] } }, "preproc_else_in_enumerator_list_no_comma": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*else" }, "named": false, "value": "#else" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "enumerator" } } ] } }, "preproc_elif_in_enumerator_list_no_comma": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elif" }, "named": false, "value": "#elif" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "STRING", "value": "\n" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "enumerator" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_elifdef_in_enumerator_list_no_comma": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifdef" }, "named": false, "value": "#elifdef" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "#[ \t]*elifndef" }, "named": false, "value": "#elifndef" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "enumerator" } }, { "type": "FIELD", "name": "alternative", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_else_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_else" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elif_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elif" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_elifdef_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_elifdef" } ] }, { "type": "BLANK" } ] } } ] } }, "preproc_arg": { "type": "TOKEN", "content": { "type": "PREC", "value": -1, "content": { "type": "PATTERN", "value": "\\S([^/\\n]|\\/[^*]|\\\\\\r?\\n)*" } } }, "preproc_directive": { "type": "PATTERN", "value": "#[ \\t]*[a-zA-Z0-9]\\w*" }, "_preproc_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_call_expression" }, "named": true, "value": "call_expression" }, { "type": "SYMBOL", "name": "number_literal" }, { "type": "SYMBOL", "name": "char_literal" }, { "type": "SYMBOL", "name": "preproc_defined" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_unary_expression" }, "named": true, "value": "unary_expression" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_binary_expression" }, "named": true, "value": "binary_expression" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_parenthesized_expression" }, "named": true, "value": "parenthesized_expression" } ] }, "preproc_parenthesized_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "_preproc_expression" }, { "type": "STRING", "value": ")" } ] }, "preproc_defined": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "defined" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ")" } ] } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "defined" }, { "type": "SYMBOL", "name": "identifier" } ] } ] }, "preproc_unary_expression": { "type": "PREC_LEFT", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "~" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "+" } ] } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, "preproc_call_expression": { "type": "PREC", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_argument_list" }, "named": true, "value": "argument_list" } } ] } }, "preproc_argument_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_preproc_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_preproc_expression" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "preproc_binary_expression": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "+" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "-" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "*" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "/" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "%" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "||" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&&" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "|" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "^" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 5, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "==" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "!=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<<" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_preproc_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">>" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_preproc_expression" } } ] } } ] }, "function_definition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "FIELD", "name": "body", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "compound_statement" }, { "type": "SYMBOL", "name": "try_statement" } ] } } ] }, "_old_style_function_definition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_old_style_function_declarator" }, "named": true, "value": "function_declarator" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "declaration" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declarator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "gnu_asm_expression" }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "init_declarator" } ] } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declarator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "gnu_asm_expression" }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "init_declarator" } ] } } ] } } ] }, { "type": "STRING", "value": ";" } ] }, "type_definition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "__extension__" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "typedef" }, { "type": "SYMBOL", "name": "_type_definition_type" }, { "type": "SYMBOL", "name": "_type_definition_declarators" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_specifier" } }, { "type": "STRING", "value": ";" } ] }, "_type_definition_type": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_specifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } } ] }, "_type_definition_declarators": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_type_declarator" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_type_declarator" } } ] } } ] }, "_declaration_modifiers": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "launch_bounds" }, { "type": "STRING", "value": "__device__" }, { "type": "STRING", "value": "__host__" }, { "type": "PREC", "value": 10, "content": { "type": "STRING", "value": "__global__" } }, { "type": "STRING", "value": "__forceinline__" }, { "type": "STRING", "value": "__noinline__" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "storage_class_specifier" }, { "type": "SYMBOL", "name": "type_qualifier" }, { "type": "SYMBOL", "name": "attribute_specifier" }, { "type": "SYMBOL", "name": "attribute_declaration" }, { "type": "SYMBOL", "name": "ms_declspec_modifier" } ] }, { "type": "SYMBOL", "name": "virtual" } ] } ] }, "_declaration_specifiers": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_declaration_modifiers" } }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_specifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_declaration_modifiers" } } ] } }, "linkage_specification": { "type": "SEQ", "members": [ { "type": "STRING", "value": "extern" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "string_literal" } }, { "type": "FIELD", "name": "body", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "declaration_list" } ] } } ] }, "attribute_specifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__attribute__" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "argument_list" }, { "type": "STRING", "value": ")" } ] }, "attribute": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "prefix", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "::" } ] }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument_list" }, { "type": "BLANK" } ] } ] }, "attribute_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[[" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "attribute" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "attribute" } ] } } ] }, { "type": "STRING", "value": "]]" } ] }, "ms_declspec_modifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__declspec" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ")" } ] }, "ms_based_modifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__based" }, { "type": "SYMBOL", "name": "argument_list" } ] }, "ms_call_modifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "__cdecl" }, { "type": "STRING", "value": "__clrcall" }, { "type": "STRING", "value": "__stdcall" }, { "type": "STRING", "value": "__fastcall" }, { "type": "STRING", "value": "__thiscall" }, { "type": "STRING", "value": "__vectorcall" } ] }, "ms_restrict_modifier": { "type": "STRING", "value": "__restrict" }, "ms_unsigned_ptr_modifier": { "type": "STRING", "value": "__uptr" }, "ms_signed_ptr_modifier": { "type": "STRING", "value": "__sptr" }, "ms_unaligned_ptr_modifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "_unaligned" }, { "type": "STRING", "value": "__unaligned" } ] }, "ms_pointer_modifier": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_unaligned_ptr_modifier" }, { "type": "SYMBOL", "name": "ms_restrict_modifier" }, { "type": "SYMBOL", "name": "ms_unsigned_ptr_modifier" }, { "type": "SYMBOL", "name": "ms_signed_ptr_modifier" } ] }, "declaration_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } }, { "type": "STRING", "value": "}" } ] }, "_declarator": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attributed_declarator" }, { "type": "SYMBOL", "name": "pointer_declarator" }, { "type": "SYMBOL", "name": "function_declarator" }, { "type": "SYMBOL", "name": "array_declarator" }, { "type": "SYMBOL", "name": "parenthesized_declarator" }, { "type": "SYMBOL", "name": "identifier" } ] }, { "type": "SYMBOL", "name": "reference_declarator" }, { "type": "SYMBOL", "name": "qualified_identifier" }, { "type": "SYMBOL", "name": "template_function" }, { "type": "SYMBOL", "name": "operator_name" }, { "type": "SYMBOL", "name": "destructor_name" }, { "type": "SYMBOL", "name": "structured_binding_declarator" } ] }, "_declaration_declarator": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attributed_declarator" }, { "type": "SYMBOL", "name": "pointer_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_function_declaration_declarator" }, "named": true, "value": "function_declarator" }, { "type": "SYMBOL", "name": "array_declarator" }, { "type": "SYMBOL", "name": "parenthesized_declarator" }, { "type": "SYMBOL", "name": "identifier" } ] }, "_field_declarator": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "attributed_field_declarator" }, "named": true, "value": "attributed_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "pointer_field_declarator" }, "named": true, "value": "pointer_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "function_field_declarator" }, "named": true, "value": "function_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "array_field_declarator" }, "named": true, "value": "array_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "parenthesized_field_declarator" }, "named": true, "value": "parenthesized_declarator" }, { "type": "SYMBOL", "name": "_field_identifier" } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "reference_field_declarator" }, "named": true, "value": "reference_declarator" }, { "type": "SYMBOL", "name": "template_method" }, { "type": "SYMBOL", "name": "operator_name" } ] }, "_type_declarator": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "attributed_type_declarator" }, "named": true, "value": "attributed_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "pointer_type_declarator" }, "named": true, "value": "pointer_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "function_type_declarator" }, "named": true, "value": "function_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "array_type_declarator" }, "named": true, "value": "array_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "parenthesized_type_declarator" }, "named": true, "value": "parenthesized_declarator" }, { "type": "SYMBOL", "name": "_type_identifier" }, { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "signed" }, { "type": "STRING", "value": "unsigned" }, { "type": "STRING", "value": "long" }, { "type": "STRING", "value": "short" } ] }, "named": true, "value": "primitive_type" }, { "type": "SYMBOL", "name": "primitive_type" } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "reference_type_declarator" }, "named": true, "value": "reference_declarator" } ] }, "_abstract_declarator": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "abstract_pointer_declarator" }, { "type": "SYMBOL", "name": "abstract_function_declarator" }, { "type": "SYMBOL", "name": "abstract_array_declarator" }, { "type": "SYMBOL", "name": "abstract_parenthesized_declarator" } ] }, { "type": "SYMBOL", "name": "abstract_reference_declarator" } ] }, "parenthesized_declarator": { "type": "PREC_DYNAMIC", "value": -10, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_declarator" }, { "type": "STRING", "value": ")" } ] } }, "parenthesized_field_declarator": { "type": "PREC_DYNAMIC", "value": -10, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_field_declarator" }, { "type": "STRING", "value": ")" } ] } }, "parenthesized_type_declarator": { "type": "PREC_DYNAMIC", "value": -10, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_type_declarator" }, { "type": "STRING", "value": ")" } ] } }, "abstract_parenthesized_declarator": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_call_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_abstract_declarator" }, { "type": "STRING", "value": ")" } ] } }, "attributed_declarator": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declarator" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_declaration" } } ] } }, "attributed_field_declarator": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_field_declarator" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_declaration" } } ] } }, "attributed_type_declarator": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_type_declarator" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_declaration" } } ] } }, "pointer_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_based_modifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "*" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "ms_pointer_modifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } } ] } } }, "pointer_field_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_based_modifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "*" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "ms_pointer_modifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } } ] } } }, "pointer_type_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_based_modifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "*" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "ms_pointer_modifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_type_declarator" } } ] } } }, "abstract_pointer_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "*" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "ms_pointer_modifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_abstract_declarator" }, { "type": "BLANK" } ] } } ] } } }, "function_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "SYMBOL", "name": "_function_declarator_seq" } ] } }, "_function_declaration_declarator": { "type": "PREC_RIGHT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameter_list" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "gnu_asm_expression" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_specifier" } } ] } }, "function_field_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "SYMBOL", "name": "_function_declarator_seq" } ] } }, "function_type_declarator": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_type_declarator" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameter_list" } } ] } }, "abstract_function_declarator": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_abstract_declarator" }, { "type": "BLANK" } ] } }, { "type": "SYMBOL", "name": "_function_declarator_seq" } ] }, "_old_style_function_declarator": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_old_style_parameter_list" }, "named": true, "value": "parameter_list" } } ] }, "array_declarator": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_qualifier" }, { "type": "STRING", "value": "static" } ] } }, { "type": "FIELD", "name": "size", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "*" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "]" } ] } }, "array_field_declarator": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_qualifier" }, { "type": "STRING", "value": "static" } ] } }, { "type": "FIELD", "name": "size", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "*" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "]" } ] } }, "array_type_declarator": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_type_declarator" } }, { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_qualifier" }, { "type": "STRING", "value": "static" } ] } }, { "type": "FIELD", "name": "size", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "*" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "]" } ] } }, "abstract_array_declarator": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_abstract_declarator" }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_qualifier" }, { "type": "STRING", "value": "static" } ] } }, { "type": "FIELD", "name": "size", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "*" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "]" } ] } }, "init_declarator": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "initializer_list" }, { "type": "SYMBOL", "name": "expression" } ] } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument_list" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] } ] }, "compound_statement": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_block_item" } }, { "type": "STRING", "value": "}" } ] } }, "storage_class_specifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "extern" }, { "type": "STRING", "value": "static" }, { "type": "STRING", "value": "register" }, { "type": "STRING", "value": "inline" }, { "type": "STRING", "value": "__inline" }, { "type": "STRING", "value": "__inline__" }, { "type": "STRING", "value": "__forceinline" }, { "type": "STRING", "value": "thread_local" }, { "type": "STRING", "value": "__thread" }, { "type": "STRING", "value": "thread_local" } ] }, "type_qualifier": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "const" }, { "type": "STRING", "value": "constexpr" }, { "type": "STRING", "value": "volatile" }, { "type": "STRING", "value": "restrict" }, { "type": "STRING", "value": "__restrict__" }, { "type": "STRING", "value": "__extension__" }, { "type": "STRING", "value": "_Atomic" }, { "type": "STRING", "value": "_Noreturn" }, { "type": "STRING", "value": "noreturn" }, { "type": "SYMBOL", "name": "alignas_qualifier" } ] }, { "type": "STRING", "value": "mutable" }, { "type": "STRING", "value": "constinit" }, { "type": "STRING", "value": "consteval" } ] }, { "type": "STRING", "value": "__shared__" }, { "type": "STRING", "value": "__global__" }, { "type": "STRING", "value": "__local__" }, { "type": "STRING", "value": "__constant__" }, { "type": "STRING", "value": "__managed__" }, { "type": "STRING", "value": "__grid_constant__" } ] }, "alignas_qualifier": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "alignas" }, { "type": "STRING", "value": "_Alignas" } ] }, { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "type_descriptor" } ] }, { "type": "STRING", "value": ")" } ] }, "type_specifier": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "struct_specifier" }, { "type": "SYMBOL", "name": "union_specifier" }, { "type": "SYMBOL", "name": "enum_specifier" }, { "type": "SYMBOL", "name": "class_specifier" }, { "type": "SYMBOL", "name": "sized_type_specifier" }, { "type": "SYMBOL", "name": "primitive_type" }, { "type": "SYMBOL", "name": "template_type" }, { "type": "SYMBOL", "name": "dependent_type" }, { "type": "SYMBOL", "name": "placeholder_type_specifier" }, { "type": "SYMBOL", "name": "decltype" }, { "type": "PREC_RIGHT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_type_identifier" }, "named": true, "value": "qualified_identifier" }, { "type": "SYMBOL", "name": "_type_identifier" } ] } } ] }, "sized_type_specifier": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "signed" }, { "type": "STRING", "value": "unsigned" }, { "type": "STRING", "value": "long" }, { "type": "STRING", "value": "short" } ] } }, { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SYMBOL", "name": "_type_identifier" } }, { "type": "SYMBOL", "name": "primitive_type" } ] }, { "type": "BLANK" } ] } }, { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "signed" }, { "type": "STRING", "value": "unsigned" }, { "type": "STRING", "value": "long" }, { "type": "STRING", "value": "short" } ] } } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "signed" }, { "type": "STRING", "value": "unsigned" }, { "type": "STRING", "value": "long" }, { "type": "STRING", "value": "short" } ] } }, { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SYMBOL", "name": "_type_identifier" } }, { "type": "SYMBOL", "name": "primitive_type" } ] }, { "type": "BLANK" } ] } }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "signed" }, { "type": "STRING", "value": "unsigned" }, { "type": "STRING", "value": "long" }, { "type": "STRING", "value": "short" } ] } } ] } ] }, "primitive_type": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "bool" }, { "type": "STRING", "value": "char" }, { "type": "STRING", "value": "int" }, { "type": "STRING", "value": "float" }, { "type": "STRING", "value": "double" }, { "type": "STRING", "value": "void" }, { "type": "STRING", "value": "size_t" }, { "type": "STRING", "value": "ssize_t" }, { "type": "STRING", "value": "ptrdiff_t" }, { "type": "STRING", "value": "intptr_t" }, { "type": "STRING", "value": "uintptr_t" }, { "type": "STRING", "value": "charptr_t" }, { "type": "STRING", "value": "nullptr_t" }, { "type": "STRING", "value": "max_align_t" }, { "type": "STRING", "value": "int8_t" }, { "type": "STRING", "value": "int16_t" }, { "type": "STRING", "value": "int32_t" }, { "type": "STRING", "value": "int64_t" }, { "type": "STRING", "value": "uint8_t" }, { "type": "STRING", "value": "uint16_t" }, { "type": "STRING", "value": "uint32_t" }, { "type": "STRING", "value": "uint64_t" }, { "type": "STRING", "value": "char8_t" }, { "type": "STRING", "value": "char16_t" }, { "type": "STRING", "value": "char32_t" }, { "type": "STRING", "value": "char64_t" } ] } }, "enum_specifier": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "enum" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "class" }, { "type": "STRING", "value": "struct" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_class_name" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_enum_base_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "enumerator_list" } }, { "type": "BLANK" } ] } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "enumerator_list" } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_specifier" }, { "type": "BLANK" } ] } ] } }, "enumerator_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "STRING", "value": "," } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_if_in_enumerator_list" }, "named": true, "value": "preproc_if" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_ifdef_in_enumerator_list" }, "named": true, "value": "preproc_ifdef" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "preproc_call" }, { "type": "STRING", "value": "," } ] } ] } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_if_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_if" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_ifdef_in_enumerator_list_no_comma" }, "named": true, "value": "preproc_ifdef" }, { "type": "SYMBOL", "name": "preproc_call" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "struct_specifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "struct" }, { "type": "SYMBOL", "name": "_class_declaration" } ] }, "union_specifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "union" }, { "type": "SYMBOL", "name": "_class_declaration" } ] }, "field_declaration_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_field_declaration_list_item" } }, { "type": "STRING", "value": "}" } ] }, "_field_declaration_list_item": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "field_declaration" }, { "type": "SYMBOL", "name": "preproc_def" }, { "type": "SYMBOL", "name": "preproc_function_def" }, { "type": "SYMBOL", "name": "preproc_call" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_if_in_field_declaration_list" }, "named": true, "value": "preproc_if" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "preproc_ifdef_in_field_declaration_list" }, "named": true, "value": "preproc_ifdef" } ] }, { "type": "SYMBOL", "name": "template_declaration" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "inline_method_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_or_destructor_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_or_destructor_declaration" }, "named": true, "value": "declaration" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_declaration" }, "named": true, "value": "declaration" }, { "type": "SYMBOL", "name": "friend_declaration" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "STRING", "value": ":" } ] }, { "type": "SYMBOL", "name": "alias_declaration" }, { "type": "SYMBOL", "name": "using_declaration" }, { "type": "SYMBOL", "name": "type_definition" }, { "type": "SYMBOL", "name": "static_assert_declaration" } ] }, "field_declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "bitfield_clause" }, { "type": "FIELD", "name": "default_value", "content": { "type": "SYMBOL", "name": "initializer_list" } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "bitfield_clause" }, { "type": "FIELD", "name": "default_value", "content": { "type": "SYMBOL", "name": "initializer_list" } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] } ] }, { "type": "BLANK" } ] } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_specifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "_field_declaration_declarator": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "bitfield_clause" }, { "type": "BLANK" } ] } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "bitfield_clause" }, { "type": "BLANK" } ] } ] } ] } } ] }, "bitfield_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" } ] }, "enumerator": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] } ] }, "variadic_parameter": { "type": "STRING", "value": "..." }, "parameter_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_declaration" }, { "type": "SYMBOL", "name": "optional_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_parameter_declaration" }, { "type": "STRING", "value": "..." } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_declaration" }, { "type": "SYMBOL", "name": "optional_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_parameter_declaration" }, { "type": "STRING", "value": "..." } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_old_style_parameter_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "variadic_parameter" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "variadic_parameter" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "parameter_declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_declarator" }, { "type": "SYMBOL", "name": "_abstract_declarator" } ] } }, { "type": "BLANK" } ] } ] }, "attributed_statement": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_declaration" } }, { "type": "SYMBOL", "name": "statement" } ] }, "statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "case_statement" }, { "type": "SYMBOL", "name": "_non_case_statement" } ] }, "_non_case_statement": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attributed_statement" }, { "type": "SYMBOL", "name": "labeled_statement" }, { "type": "SYMBOL", "name": "compound_statement" }, { "type": "SYMBOL", "name": "expression_statement" }, { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "switch_statement" }, { "type": "SYMBOL", "name": "do_statement" }, { "type": "SYMBOL", "name": "while_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "return_statement" }, { "type": "SYMBOL", "name": "break_statement" }, { "type": "SYMBOL", "name": "continue_statement" }, { "type": "SYMBOL", "name": "goto_statement" }, { "type": "SYMBOL", "name": "seh_try_statement" }, { "type": "SYMBOL", "name": "seh_leave_statement" } ] }, { "type": "SYMBOL", "name": "co_return_statement" }, { "type": "SYMBOL", "name": "co_yield_statement" }, { "type": "SYMBOL", "name": "for_range_loop" }, { "type": "SYMBOL", "name": "try_statement" }, { "type": "SYMBOL", "name": "throw_statement" } ] }, "_top_level_statement": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "case_statement" }, { "type": "SYMBOL", "name": "attributed_statement" }, { "type": "SYMBOL", "name": "labeled_statement" }, { "type": "SYMBOL", "name": "compound_statement" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_top_level_expression_statement" }, "named": true, "value": "expression_statement" }, { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "switch_statement" }, { "type": "SYMBOL", "name": "do_statement" }, { "type": "SYMBOL", "name": "while_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "return_statement" }, { "type": "SYMBOL", "name": "break_statement" }, { "type": "SYMBOL", "name": "continue_statement" }, { "type": "SYMBOL", "name": "goto_statement" } ] }, { "type": "SYMBOL", "name": "co_return_statement" }, { "type": "SYMBOL", "name": "co_yield_statement" }, { "type": "SYMBOL", "name": "for_range_loop" }, { "type": "SYMBOL", "name": "try_statement" }, { "type": "SYMBOL", "name": "throw_statement" } ] }, "labeled_statement": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "label", "content": { "type": "SYMBOL", "name": "_statement_identifier" } }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "statement" } ] }, "_top_level_expression_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression_not_binary" }, { "type": "STRING", "value": ";" } ] }, "expression_statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "if_statement": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "if" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "constexpr" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "condition_clause" } }, { "type": "FIELD", "name": "consequence", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "else_clause" } }, { "type": "BLANK" } ] } ] } }, "else_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "else" }, { "type": "SYMBOL", "name": "statement" } ] }, "switch_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "switch" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "condition_clause" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "case_statement": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "case" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "STRING", "value": "default" } ] }, { "type": "STRING", "value": ":" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_non_case_statement" }, { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "type_definition" } ] } } ] } }, "while_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "while" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "condition_clause" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement" } } ] }, "do_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "do" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "STRING", "value": "while" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "parenthesized_expression" } }, { "type": "STRING", "value": ";" } ] }, "for_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "for" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "_for_statement_body" }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement" } } ] }, "_for_statement_body": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "initializer", "content": { "type": "SYMBOL", "name": "declaration" } }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "initializer", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": ";" } ] } ] }, { "type": "FIELD", "name": "condition", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "update", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] }, { "type": "BLANK" } ] } } ] } }, "return_statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "return" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "return" }, { "type": "SYMBOL", "name": "initializer_list" }, { "type": "STRING", "value": ";" } ] } ] } ] }, "break_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "break" }, { "type": "STRING", "value": ";" } ] }, "continue_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "continue" }, { "type": "STRING", "value": ";" } ] }, "goto_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "goto" }, { "type": "FIELD", "name": "label", "content": { "type": "SYMBOL", "name": "_statement_identifier" } }, { "type": "STRING", "value": ";" } ] }, "seh_try_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__try" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "seh_except_clause" }, { "type": "SYMBOL", "name": "seh_finally_clause" } ] } ] }, "seh_except_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__except" }, { "type": "FIELD", "name": "filter", "content": { "type": "SYMBOL", "name": "parenthesized_expression" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "seh_finally_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__finally" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "seh_leave_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__leave" }, { "type": "STRING", "value": ";" } ] }, "expression": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression_not_binary" }, { "type": "SYMBOL", "name": "binary_expression" } ] }, { "type": "ALIAS", "content": { "type": "PREC", "value": 10, "content": { "type": "SYMBOL", "name": "kernel_call_expression" } }, "named": true, "value": "call_expression" } ] }, "_expression_not_binary": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "conditional_expression" }, { "type": "SYMBOL", "name": "assignment_expression" }, { "type": "SYMBOL", "name": "unary_expression" }, { "type": "SYMBOL", "name": "update_expression" }, { "type": "SYMBOL", "name": "cast_expression" }, { "type": "SYMBOL", "name": "pointer_expression" }, { "type": "SYMBOL", "name": "sizeof_expression" }, { "type": "SYMBOL", "name": "alignof_expression" }, { "type": "SYMBOL", "name": "offsetof_expression" }, { "type": "SYMBOL", "name": "generic_expression" }, { "type": "SYMBOL", "name": "subscript_expression" }, { "type": "SYMBOL", "name": "call_expression" }, { "type": "SYMBOL", "name": "field_expression" }, { "type": "SYMBOL", "name": "compound_literal_expression" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "number_literal" }, { "type": "SYMBOL", "name": "_string" }, { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "false" }, { "type": "SYMBOL", "name": "null" }, { "type": "SYMBOL", "name": "char_literal" }, { "type": "SYMBOL", "name": "parenthesized_expression" }, { "type": "SYMBOL", "name": "gnu_asm_expression" } ] }, { "type": "SYMBOL", "name": "co_await_expression" }, { "type": "SYMBOL", "name": "requires_expression" }, { "type": "SYMBOL", "name": "requires_clause" }, { "type": "SYMBOL", "name": "template_function" }, { "type": "SYMBOL", "name": "qualified_identifier" }, { "type": "SYMBOL", "name": "new_expression" }, { "type": "SYMBOL", "name": "delete_expression" }, { "type": "SYMBOL", "name": "lambda_expression" }, { "type": "SYMBOL", "name": "parameter_pack_expansion" }, { "type": "SYMBOL", "name": "this" }, { "type": "SYMBOL", "name": "raw_string_literal" }, { "type": "SYMBOL", "name": "user_defined_literal" }, { "type": "SYMBOL", "name": "fold_expression" } ] }, "_string": { "type": "PREC_LEFT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "concatenated_string" } ] } }, "comma_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] } } ] }, "conditional_expression": { "type": "PREC_RIGHT", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "?" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "consequence", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "_assignment_left_expression": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "call_expression" }, { "type": "SYMBOL", "name": "field_expression" }, { "type": "SYMBOL", "name": "pointer_expression" }, { "type": "SYMBOL", "name": "subscript_expression" }, { "type": "SYMBOL", "name": "parenthesized_expression" } ] }, { "type": "SYMBOL", "name": "qualified_identifier" }, { "type": "SYMBOL", "name": "user_defined_literal" } ] }, "assignment_expression": { "type": "PREC_RIGHT", "value": -2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_assignment_left_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "*=" }, { "type": "STRING", "value": "/=" }, { "type": "STRING", "value": "%=" }, { "type": "STRING", "value": "+=" }, { "type": "STRING", "value": "-=" }, { "type": "STRING", "value": "<<=" }, { "type": "STRING", "value": ">>=" }, { "type": "STRING", "value": "&=" }, { "type": "STRING", "value": "^=" }, { "type": "STRING", "value": "|=" }, { "type": "STRING", "value": "and_eq" }, { "type": "STRING", "value": "or_eq" }, { "type": "STRING", "value": "xor_eq" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] } }, "pointer_expression": { "type": "PREC_LEFT", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "&" } ] } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "unary_expression": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "~" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "+" } ] } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "not" }, { "type": "STRING", "value": "compl" } ] } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] } } ] }, "binary_expression": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "+" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "-" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "*" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "/" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "%" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "||" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&&" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "|" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "^" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 5, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "==" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "!=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<<" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">>" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } } ] }, { "type": "PREC_LEFT", "value": 8, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<=>" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "or" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "and" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "bitor" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "xor" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 5, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "bitand" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "not_eq" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } } ] }, "update_expression": { "type": "PREC_RIGHT", "value": 14, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "++" } ] } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "++" } ] } } ] } ] } }, "cast_expression": { "type": "PREC", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "type_descriptor": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_specifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_abstract_declarator" }, { "type": "BLANK" } ] } } ] } }, "sizeof_expression": { "type": "PREC_RIGHT", "value": 13, "content": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 13, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "sizeof" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": ")" } ] } ] } ] } }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "sizeof" }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ")" } ] } ] } }, "alignof_expression": { "type": "PREC", "value": 13, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "__alignof__" }, { "type": "STRING", "value": "__alignof" }, { "type": "STRING", "value": "_alignof" }, { "type": "STRING", "value": "alignof" }, { "type": "STRING", "value": "_Alignof" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": ")" } ] } ] } }, "offsetof_expression": { "type": "PREC", "value": 8, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "offsetof" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "member", "content": { "type": "SYMBOL", "name": "_field_identifier" } }, { "type": "STRING", "value": ")" } ] } ] } }, "generic_expression": { "type": "PREC", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_Generic" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type_descriptor" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type_descriptor" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" } ] } ] } } ] }, { "type": "STRING", "value": ")" } ] } }, "subscript_expression": { "type": "PREC", "value": 17, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "indices", "content": { "type": "SYMBOL", "name": "subscript_argument_list" } } ] } }, "call_expression": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "argument_list" } } ] } }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "primitive_type" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "argument_list" } } ] } ] }, "gnu_asm_expression": { "type": "PREC", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "asm" }, { "type": "STRING", "value": "__asm__" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "gnu_asm_qualifier" } }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "assembly_code", "content": { "type": "SYMBOL", "name": "_string" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "output_operands", "content": { "type": "SYMBOL", "name": "gnu_asm_output_operand_list" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "input_operands", "content": { "type": "SYMBOL", "name": "gnu_asm_input_operand_list" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "clobbers", "content": { "type": "SYMBOL", "name": "gnu_asm_clobber_list" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "goto_labels", "content": { "type": "SYMBOL", "name": "gnu_asm_goto_list" } }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } }, "gnu_asm_qualifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "volatile" }, { "type": "STRING", "value": "inline" }, { "type": "STRING", "value": "goto" } ] }, "gnu_asm_output_operand_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "gnu_asm_output_operand" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "gnu_asm_output_operand" } } ] } } ] }, { "type": "BLANK" } ] } ] }, "gnu_asm_output_operand": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "symbol", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "]" } ] }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "constraint", "content": { "type": "SYMBOL", "name": "string_literal" } }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ")" } ] }, "gnu_asm_input_operand_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "gnu_asm_input_operand" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "gnu_asm_input_operand" } } ] } } ] }, { "type": "BLANK" } ] } ] }, "gnu_asm_input_operand": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "symbol", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "]" } ] }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "constraint", "content": { "type": "SYMBOL", "name": "string_literal" } }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ")" } ] }, "gnu_asm_clobber_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "register", "content": { "type": "SYMBOL", "name": "_string" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "register", "content": { "type": "SYMBOL", "name": "_string" } } ] } } ] }, { "type": "BLANK" } ] } ] }, "gnu_asm_goto_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "label", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "label", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] }, { "type": "BLANK" } ] } ] }, "argument_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "__extension__" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "SYMBOL", "name": "initializer_list" }, { "type": "SYMBOL", "name": "compound_statement" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "__extension__" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "SYMBOL", "name": "initializer_list" }, { "type": "SYMBOL", "name": "compound_statement" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "field_expression": { "type": "SEQ", "members": [ { "type": "PREC", "value": 16, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "." }, { "type": "STRING", "value": ".*" }, { "type": "STRING", "value": "->" } ] } } ] } }, { "type": "FIELD", "name": "field", "content": { "type": "CHOICE", "members": [ { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SYMBOL", "name": "_field_identifier" } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_field_identifier" }, "named": true, "value": "qualified_identifier" }, { "type": "SYMBOL", "name": "destructor_name" }, { "type": "SYMBOL", "name": "template_method" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "dependent_field_identifier" }, "named": true, "value": "dependent_name" } ] } } ] }, "compound_literal_expression": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "initializer_list" } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_class_name" }, { "type": "SYMBOL", "name": "primitive_type" } ] } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "initializer_list" } } ] } ] }, "parenthesized_expression": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" } ] }, { "type": "STRING", "value": ")" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_assignment_expression_lhs" }, "named": true, "value": "assignment_expression" }, { "type": "STRING", "value": ")" } ] } ] }, "initializer_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "initializer_pair" }, { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "initializer_pair" }, { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "initializer_pair": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "designator", "content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "subscript_designator" }, { "type": "SYMBOL", "name": "field_designator" }, { "type": "SYMBOL", "name": "subscript_range_designator" } ] } } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "designator", "content": { "type": "SYMBOL", "name": "_field_identifier" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] } ] }, "subscript_designator": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "]" } ] }, "subscript_range_designator": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "start", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "..." }, { "type": "FIELD", "name": "end", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "]" } ] }, "field_designator": { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "SYMBOL", "name": "_field_identifier" } ] }, "number_literal": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[-\\+]" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0b" }, { "type": "STRING", "value": "0B" } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[01]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[01]" } } ] } } ] } ] }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[1-9]" }, { "type": "REPEAT", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0x" }, { "type": "STRING", "value": "0X" } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] } } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0" }, { "type": "REPEAT", "content": { "type": "PATTERN", "value": "[0-7]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-7]" } } ] } } ] } ] }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "(ll|LL)[uU]?|[uU](ll|LL)?|[uU][lL]?|[uU][zZ]?|[lL][uU]?|[zZ][uU]?" }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE]" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[-\\+]" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] } ] } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] }, { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE]" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[-\\+]" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE]" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[-\\+]" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0x" }, { "type": "STRING", "value": "0X" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] } } ] }, { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] } } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] } } ] } ] } ] }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[pP]" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[-\\+]" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } } ] } ] } ] } ] }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "([fF](16|32|64|128)?)|[lL]|(bf16|BF16)" }, { "type": "BLANK" } ] } ] } ] } ] } }, "char_literal": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "L'" }, { "type": "STRING", "value": "u'" }, { "type": "STRING", "value": "U'" }, { "type": "STRING", "value": "u8'" }, { "type": "STRING", "value": "'" } ] }, { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "ALIAS", "content": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "[^\\n']" } }, "named": true, "value": "character" } ] } }, { "type": "STRING", "value": "'" } ] }, "concatenated_string": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "raw_string_literal" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "raw_string_literal" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "raw_string_literal" } ] } } ] } }, "string_literal": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "L\"" }, { "type": "STRING", "value": "u\"" }, { "type": "STRING", "value": "U\"" }, { "type": "STRING", "value": "u8\"" }, { "type": "STRING", "value": "\"" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\\\\\"\\n]+" } } }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "\"" } ] }, "escape_sequence": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^xuU]" }, { "type": "PATTERN", "value": "\\d{2,3}" }, { "type": "PATTERN", "value": "x[0-9a-fA-F]{2,}" }, { "type": "PATTERN", "value": "u[0-9a-fA-F]{4}" }, { "type": "PATTERN", "value": "U[0-9a-fA-F]{8}" } ] } ] } } }, "system_lib_string": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^>\\n]" }, { "type": "STRING", "value": "\\>" } ] } }, { "type": "STRING", "value": ">" } ] } }, "true": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "true" } ] } }, "false": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "false" } ] } }, "null": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "NULL" }, { "type": "STRING", "value": "nullptr" } ] }, "identifier": { "type": "PATTERN", "value": "(\\p{XID_Start}|\\$|_|\\\\u[0-9A-Fa-f]{4}|\\\\U[0-9A-Fa-f]{8})(\\p{XID_Continue}|\\$|\\\\u[0-9A-Fa-f]{4}|\\\\U[0-9A-Fa-f]{8})*" }, "_type_identifier": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "type_identifier" }, "_field_identifier": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "field_identifier" }, "_statement_identifier": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "statement_identifier" }, "_empty_declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type_specifier" }, { "type": "STRING", "value": ";" } ] }, "macro_type_specifier": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": ")" } ] } }, "comment": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "//" }, { "type": "PATTERN", "value": "(\\\\+(.|\\r?\\n)|[^\\\\\\n])*" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "/*" }, { "type": "PATTERN", "value": "[^*]*\\*+([^/*][^*]*\\*+)*" }, { "type": "STRING", "value": "/" } ] } ] } }, "placeholder_type_specifier": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "constraint", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_specifier" }, { "type": "BLANK" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "auto" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "decltype_auto" }, "named": true, "value": "decltype" } ] } ] } }, "auto": { "type": "STRING", "value": "auto" }, "decltype_auto": { "type": "SEQ", "members": [ { "type": "STRING", "value": "decltype" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "auto" }, { "type": "STRING", "value": ")" } ] }, "decltype": { "type": "SEQ", "members": [ { "type": "STRING", "value": "decltype" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ")" } ] }, "_class_declaration": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_specifier" }, { "type": "SYMBOL", "name": "alignas_qualifier" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ms_declspec_modifier" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_declaration" } }, { "type": "SYMBOL", "name": "_class_declaration_item" } ] }, "_class_declaration_item": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_class_name" } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_class_name" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "virtual_specifier" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "base_class_clause" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "field_declaration_list" } } ] } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_specifier" }, { "type": "BLANK" } ] } ] } }, "class_specifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "class" }, { "type": "SYMBOL", "name": "_class_declaration" } ] }, "_class_name": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_identifier" }, { "type": "SYMBOL", "name": "template_type" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_type_identifier" }, "named": true, "value": "qualified_identifier" } ] } }, "virtual_specifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "final" }, { "type": "STRING", "value": "override" } ] }, "virtual": { "type": "STRING", "value": "virtual" }, "explicit_function_specifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "explicit" }, { "type": "PREC", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "explicit" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ")" } ] } } ] }, "base_class_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_declaration" } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "virtual" }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "virtual" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_class_name" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "..." }, { "type": "BLANK" } ] } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_declaration" } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "virtual" }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "virtual" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "access_specifier" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_class_name" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "..." }, { "type": "BLANK" } ] } ] } ] } } ] } ] }, "_enum_base_clause": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "base", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_type_identifier" }, "named": true, "value": "qualified_identifier" }, { "type": "SYMBOL", "name": "_type_identifier" }, { "type": "SYMBOL", "name": "primitive_type" }, { "type": "SYMBOL", "name": "sized_type_specifier" } ] } } ] } }, "dependent_type": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "typename" }, { "type": "SYMBOL", "name": "type_specifier" } ] } } }, "template_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "template" }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "template_parameter_list" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "requires_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_empty_declaration" }, { "type": "SYMBOL", "name": "alias_declaration" }, { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "template_declaration" }, { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "concept_definition" }, { "type": "SYMBOL", "name": "friend_declaration" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_or_destructor_declaration" }, "named": true, "value": "declaration" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_or_destructor_definition" }, "named": true, "value": "function_definition" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_declaration" }, "named": true, "value": "declaration" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "operator_cast_definition" }, "named": true, "value": "function_definition" } ] } ] }, "template_instantiation": { "type": "SEQ", "members": [ { "type": "STRING", "value": "template" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "STRING", "value": ";" } ] }, "template_parameter_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_declaration" }, { "type": "SYMBOL", "name": "optional_parameter_declaration" }, { "type": "SYMBOL", "name": "type_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_type_parameter_declaration" }, { "type": "SYMBOL", "name": "optional_type_parameter_declaration" }, { "type": "SYMBOL", "name": "template_template_parameter_declaration" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_declaration" }, { "type": "SYMBOL", "name": "optional_parameter_declaration" }, { "type": "SYMBOL", "name": "type_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_type_parameter_declaration" }, { "type": "SYMBOL", "name": "optional_type_parameter_declaration" }, { "type": "SYMBOL", "name": "template_template_parameter_declaration" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": ">" } } }, "named": false, "value": ">" } ] }, "type_parameter_declaration": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "typename" }, { "type": "STRING", "value": "class" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_identifier" }, { "type": "BLANK" } ] } ] } }, "variadic_type_parameter_declaration": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "typename" }, { "type": "STRING", "value": "class" } ] }, { "type": "STRING", "value": "..." }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_identifier" }, { "type": "BLANK" } ] } ] } }, "optional_type_parameter_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "typename" }, { "type": "STRING", "value": "class" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_type_identifier" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_type", "content": { "type": "SYMBOL", "name": "type_specifier" } } ] }, "template_template_parameter_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "template" }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "template_parameter_list" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_type_parameter_declaration" }, { "type": "SYMBOL", "name": "optional_type_parameter_declaration" } ] } ] }, "optional_parameter_declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_declarator" }, { "type": "SYMBOL", "name": "abstract_reference_declarator" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "variadic_parameter_declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variadic_declarator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "variadic_reference_declarator" }, "named": true, "value": "reference_declarator" } ] } } ] }, "variadic_declarator": { "type": "SEQ", "members": [ { "type": "STRING", "value": "..." }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "BLANK" } ] } ] }, "variadic_reference_declarator": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "&" } ] }, { "type": "SYMBOL", "name": "variadic_declarator" } ] }, "operator_cast": { "type": "PREC_RIGHT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "operator" }, { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_abstract_declarator" } } ] } }, "field_initializer_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "field_initializer" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "field_initializer" } ] } } ] } ] }, "field_initializer": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_field_identifier" }, { "type": "SYMBOL", "name": "template_method" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_field_identifier" }, "named": true, "value": "qualified_identifier" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "initializer_list" }, { "type": "SYMBOL", "name": "argument_list" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "..." }, { "type": "BLANK" } ] } ] } }, "inline_method_definition": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_field_declarator" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "compound_statement" }, { "type": "SYMBOL", "name": "try_statement" } ] } }, { "type": "SYMBOL", "name": "default_method_clause" }, { "type": "SYMBOL", "name": "delete_method_clause" }, { "type": "SYMBOL", "name": "pure_virtual_clause" } ] } ] }, "_constructor_specifiers": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_declaration_modifiers" }, { "type": "SYMBOL", "name": "explicit_function_specifier" } ] }, "operator_cast_definition": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_constructor_specifiers" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "operator_cast" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_operator_cast_identifier" }, "named": true, "value": "qualified_identifier" } ] } }, { "type": "FIELD", "name": "body", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "compound_statement" }, { "type": "SYMBOL", "name": "try_statement" } ] } } ] }, "operator_cast_declaration": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_constructor_specifiers" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "operator_cast" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_operator_cast_identifier" }, "named": true, "value": "qualified_identifier" } ] } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] } }, "constructor_try_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "try" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "field_initializer_list" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "catch_clause" } } ] }, "constructor_or_destructor_definition": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_constructor_specifiers" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "function_declarator" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "field_initializer_list" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "constructor_try_statement" }, "named": true, "value": "try_statement" }, { "type": "SYMBOL", "name": "default_method_clause" }, { "type": "SYMBOL", "name": "delete_method_clause" }, { "type": "SYMBOL", "name": "pure_virtual_clause" } ] } ] }, "constructor_or_destructor_declaration": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_constructor_specifiers" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "function_declarator" } }, { "type": "STRING", "value": ";" } ] }, "default_method_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "default" }, { "type": "STRING", "value": ";" } ] }, "delete_method_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "delete" }, { "type": "STRING", "value": ";" } ] }, "pure_virtual_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": ";" } ] }, "friend_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "friend" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "function_definition" }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "class" }, { "type": "STRING", "value": "struct" }, { "type": "STRING", "value": "union" } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_class_name" }, { "type": "STRING", "value": ";" } ] } ] } ] }, "access_specifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "public" }, { "type": "STRING", "value": "private" }, { "type": "STRING", "value": "protected" } ] }, "reference_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "&&" } ] }, { "type": "SYMBOL", "name": "_declarator" } ] } } }, "reference_field_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "&&" } ] }, { "type": "SYMBOL", "name": "_field_declarator" } ] } } }, "reference_type_declarator": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "&&" } ] }, { "type": "SYMBOL", "name": "_type_declarator" } ] } } }, "abstract_reference_declarator": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "&&" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_abstract_declarator" }, { "type": "BLANK" } ] } ] } }, "structured_binding_declarator": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "identifier" } ] } } ] }, { "type": "STRING", "value": "]" } ] } }, "ref_qualifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "&&" } ] }, "_function_declarator_seq": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameter_list" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_function_attributes_start" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "ref_qualifier" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_function_exception_specification" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_function_attributes_end" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "trailing_return_type" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_function_postfix" }, { "type": "BLANK" } ] } ] }, "_function_attributes_start": { "type": "PREC", "value": 1, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_specifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "type_qualifier" } } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_specifier" } }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "type_qualifier" } } ] } ] } }, "_function_exception_specification": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "noexcept" }, { "type": "SYMBOL", "name": "throw_specifier" } ] }, "_function_attributes_end": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "gnu_asm_expression" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_specifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_declaration" } } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_specifier" } }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "attribute_declaration" } } ] } ] } ] } }, "_function_postfix": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "virtual_specifier" } }, { "type": "SYMBOL", "name": "requires_clause" } ] } }, "trailing_return_type": { "type": "SEQ", "members": [ { "type": "STRING", "value": "->" }, { "type": "SYMBOL", "name": "type_descriptor" } ] }, "noexcept": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "noexcept" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, { "type": "BLANK" } ] } ] } }, "throw_specifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "throw" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type_descriptor" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "type_descriptor" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } ] }, "template_type": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_type_identifier" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "template_argument_list" } } ] }, "template_method": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_field_identifier" }, { "type": "SYMBOL", "name": "operator_name" } ] } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "template_argument_list" } } ] }, "template_function": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "template_argument_list" } } ] }, "template_argument_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PREC_DYNAMIC", "value": 3, "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "PREC_DYNAMIC", "value": 2, "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "type_parameter_pack_expansion" }, "named": true, "value": "parameter_pack_expansion" } }, { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "PREC_DYNAMIC", "value": 3, "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "PREC_DYNAMIC", "value": 2, "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "type_parameter_pack_expansion" }, "named": true, "value": "parameter_pack_expansion" } }, { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SYMBOL", "name": "expression" } } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "STRING", "value": ">" } } }, "named": false, "value": ">" } ] }, "namespace_definition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "inline" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "namespace" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_declaration" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_namespace_identifier" }, { "type": "SYMBOL", "name": "nested_namespace_specifier" } ] }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } } ] }, "namespace_alias_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "namespace" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_namespace_identifier" } }, { "type": "STRING", "value": "=" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_namespace_identifier" }, { "type": "SYMBOL", "name": "nested_namespace_specifier" } ] }, { "type": "STRING", "value": ";" } ] }, "_namespace_specifier": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "inline" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_namespace_identifier" } ] }, "nested_namespace_specifier": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_namespace_specifier" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "::" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "nested_namespace_specifier" }, { "type": "SYMBOL", "name": "_namespace_specifier" } ] } ] } }, "using_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "using" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "namespace" }, { "type": "STRING", "value": "enum" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "qualified_identifier" } ] }, { "type": "STRING", "value": ";" } ] }, "alias_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "using" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_type_identifier" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute_declaration" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": ";" } ] }, "static_assert_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "static_assert" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "message", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "raw_string_literal" }, { "type": "SYMBOL", "name": "concatenated_string" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" }, { "type": "STRING", "value": ";" } ] }, "concept_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "concept" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ";" } ] }, "for_range_loop": { "type": "SEQ", "members": [ { "type": "STRING", "value": "for" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "_for_range_loop_body" }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement" } } ] }, "_for_range_loop_body": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "initializer", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "init_statement" }, { "type": "BLANK" } ] } }, { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] }, "init_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "alias_declaration" }, { "type": "SYMBOL", "name": "type_definition" }, { "type": "SYMBOL", "name": "declaration" }, { "type": "SYMBOL", "name": "expression_statement" } ] }, "condition_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "initializer", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "init_statement" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "comma_expression" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "condition_declaration" }, "named": true, "value": "declaration" } ] } }, { "type": "STRING", "value": ")" } ] }, "condition_declaration": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_declaration_specifiers" }, { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "_declarator" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "initializer_list" } } ] } ] }, "co_return_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "co_return" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "co_yield_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "co_yield" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ";" } ] }, "throw_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "throw" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "try_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "try" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "catch_clause" } } ] }, "catch_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "catch" }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameter_list" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "raw_string_literal": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "R\"" }, { "type": "STRING", "value": "LR\"" }, { "type": "STRING", "value": "uR\"" }, { "type": "STRING", "value": "UR\"" }, { "type": "STRING", "value": "u8R\"" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "delimiter", "content": { "type": "SYMBOL", "name": "raw_string_delimiter" } }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "raw_string_content" }, { "type": "STRING", "value": ")" }, { "type": "SYMBOL", "name": "raw_string_delimiter" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "raw_string_content" }, { "type": "STRING", "value": ")" } ] } ] }, { "type": "STRING", "value": "\"" } ] }, "subscript_argument_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "co_await_expression": { "type": "PREC_LEFT", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "co_await" } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "new_expression": { "type": "PREC_RIGHT", "value": 16, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "::" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "new" }, { "type": "FIELD", "name": "placement", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument_list" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type_specifier" } }, { "type": "FIELD", "name": "declarator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "new_declarator" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "arguments", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument_list" }, { "type": "SYMBOL", "name": "initializer_list" } ] }, { "type": "BLANK" } ] } } ] } }, "new_declarator": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "length", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "]" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "new_declarator" }, { "type": "BLANK" } ] } ] } }, "delete_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "::" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "delete" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "STRING", "value": "]" } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "expression" } ] } }, "type_requirement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "typename" }, { "type": "SYMBOL", "name": "_class_name" } ] }, "compound_requirement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "}" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "noexcept" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "trailing_return_type" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "_requirement": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "expression_statement" }, "named": true, "value": "simple_requirement" }, { "type": "SYMBOL", "name": "type_requirement" }, { "type": "SYMBOL", "name": "compound_requirement" } ] }, "requirement_seq": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_requirement" } }, { "type": "STRING", "value": "}" } ] }, "constraint_conjunction": { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_requirement_clause_constraint" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "and" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_requirement_clause_constraint" } } ] } }, "constraint_disjunction": { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_requirement_clause_constraint" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "or" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_requirement_clause_constraint" } } ] } }, "_requirement_clause_constraint": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "false" }, { "type": "SYMBOL", "name": "_class_name" }, { "type": "SYMBOL", "name": "fold_expression" }, { "type": "SYMBOL", "name": "lambda_expression" }, { "type": "SYMBOL", "name": "requires_expression" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ")" } ] }, { "type": "SYMBOL", "name": "constraint_conjunction" }, { "type": "SYMBOL", "name": "constraint_disjunction" } ] }, "requires_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "requires" }, { "type": "FIELD", "name": "constraint", "content": { "type": "SYMBOL", "name": "_requirement_clause_constraint" } } ] }, "requires_parameter_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_declaration" }, { "type": "SYMBOL", "name": "optional_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_parameter_declaration" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_declaration" }, { "type": "SYMBOL", "name": "optional_parameter_declaration" }, { "type": "SYMBOL", "name": "variadic_parameter_declaration" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "requires_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "requires" }, { "type": "FIELD", "name": "parameters", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "requires_parameter_list" }, "named": true, "value": "parameter_list" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "requirements", "content": { "type": "SYMBOL", "name": "requirement_seq" } } ] }, "lambda_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "captures", "content": { "type": "SYMBOL", "name": "lambda_capture_specifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "template_parameters", "content": { "type": "SYMBOL", "name": "template_parameter_list" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "constraint", "content": { "type": "SYMBOL", "name": "requires_clause" } }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "declarator", "content": { "type": "SYMBOL", "name": "abstract_function_declarator" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "lambda_capture_specifier": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "lambda_default_capture" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "expression" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "lambda_default_capture" }, { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "expression" } ] } } ] } ] } ] }, { "type": "STRING", "value": "]" } ] } }, "lambda_default_capture": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "&" } ] }, "_fold_operator": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" }, { "type": "STRING", "value": "%" }, { "type": "STRING", "value": "^" }, { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "|" }, { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<<" }, { "type": "STRING", "value": ">>" }, { "type": "STRING", "value": "+=" }, { "type": "STRING", "value": "-=" }, { "type": "STRING", "value": "*=" }, { "type": "STRING", "value": "/=" }, { "type": "STRING", "value": "%=" }, { "type": "STRING", "value": "^=" }, { "type": "STRING", "value": "&=" }, { "type": "STRING", "value": "|=" }, { "type": "STRING", "value": ">>=" }, { "type": "STRING", "value": "<<=" }, { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" }, { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "," }, { "type": "STRING", "value": ".*" }, { "type": "STRING", "value": "->*" }, { "type": "STRING", "value": "or" }, { "type": "STRING", "value": "and" }, { "type": "STRING", "value": "bitor" }, { "type": "STRING", "value": "xor" }, { "type": "STRING", "value": "bitand" }, { "type": "STRING", "value": "not_eq" } ] }, "_binary_fold_operator": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "+" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "+" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "-" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "-" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "*" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "*" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "/" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "/" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "%" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "%" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "^" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "^" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "&" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "|" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "|" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "<" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": ">" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<<" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "<<" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">>" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": ">>" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "+=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "+=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "-=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "-=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "*=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "*=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "/=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "/=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "%=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "%=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "^=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "^=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "&=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "|=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "|=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">>=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": ">>=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<<=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "<<=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "==" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "==" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "!=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "!=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "<=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "<=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ">=" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": ">=" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&&" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "&&" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "||" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "||" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "," } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "," } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ".*" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": ".*" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "->*" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "->*" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "or" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "or" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "and" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "and" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "bitor" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "bitor" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "xor" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "xor" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "bitand" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "bitand" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "not_eq" } }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "not_eq" } ] } ] }, "_unary_left_fold": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "STRING", "value": "..." } }, { "type": "FIELD", "name": "operator", "content": { "type": "SYMBOL", "name": "_fold_operator" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "_unary_right_fold": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "SYMBOL", "name": "_fold_operator" } }, { "type": "FIELD", "name": "right", "content": { "type": "STRING", "value": "..." } } ] }, "_binary_fold": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "SYMBOL", "name": "_binary_fold_operator" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "fold_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_unary_right_fold" }, { "type": "SYMBOL", "name": "_unary_left_fold" }, { "type": "SYMBOL", "name": "_binary_fold" } ] }, { "type": "STRING", "value": ")" } ] }, "parameter_pack_expansion": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "pattern", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "..." } ] } }, "type_parameter_pack_expansion": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "pattern", "content": { "type": "SYMBOL", "name": "type_descriptor" } }, { "type": "STRING", "value": "..." } ] }, "destructor_name": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "~" }, { "type": "SYMBOL", "name": "identifier" } ] } }, "dependent_identifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "template" }, { "type": "SYMBOL", "name": "template_function" } ] }, "dependent_field_identifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "template" }, { "type": "SYMBOL", "name": "template_method" } ] }, "dependent_type_identifier": { "type": "SEQ", "members": [ { "type": "STRING", "value": "template" }, { "type": "SYMBOL", "name": "template_type" } ] }, "_scope_resolution": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "scope", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_namespace_identifier" }, { "type": "SYMBOL", "name": "template_type" }, { "type": "SYMBOL", "name": "decltype" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "dependent_type_identifier" }, "named": true, "value": "dependent_name" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": "::" } ] } }, "qualified_field_identifier": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_scope_resolution" }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "dependent_field_identifier" }, "named": true, "value": "dependent_name" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_field_identifier" }, "named": true, "value": "qualified_identifier" }, { "type": "SYMBOL", "name": "template_method" }, { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SYMBOL", "name": "_field_identifier" } } ] } } ] }, "qualified_identifier": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_scope_resolution" }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "dependent_identifier" }, "named": true, "value": "dependent_name" }, { "type": "SYMBOL", "name": "qualified_identifier" }, { "type": "SYMBOL", "name": "template_function" }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "template" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "identifier" } ] }, { "type": "SYMBOL", "name": "operator_name" }, { "type": "SYMBOL", "name": "destructor_name" }, { "type": "SYMBOL", "name": "pointer_type_declarator" } ] } } ] }, "qualified_type_identifier": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_scope_resolution" }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "dependent_type_identifier" }, "named": true, "value": "dependent_name" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_type_identifier" }, "named": true, "value": "qualified_identifier" }, { "type": "SYMBOL", "name": "template_type" }, { "type": "SYMBOL", "name": "_type_identifier" } ] } } ] }, "qualified_operator_cast_identifier": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_scope_resolution" }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_operator_cast_identifier" }, "named": true, "value": "qualified_identifier" }, { "type": "SYMBOL", "name": "operator_cast" } ] } } ] }, "_assignment_expression_lhs": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "*=" }, { "type": "STRING", "value": "/=" }, { "type": "STRING", "value": "%=" }, { "type": "STRING", "value": "+=" }, { "type": "STRING", "value": "-=" }, { "type": "STRING", "value": "<<=" }, { "type": "STRING", "value": ">>=" }, { "type": "STRING", "value": "&=" }, { "type": "STRING", "value": "^=" }, { "type": "STRING", "value": "|=" }, { "type": "STRING", "value": "and_eq" }, { "type": "STRING", "value": "or_eq" }, { "type": "STRING", "value": "xor_eq" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "initializer_list" } ] } } ] }, "operator_name": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "operator" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "co_await" }, { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" }, { "type": "STRING", "value": "%" }, { "type": "STRING", "value": "^" }, { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "|" }, { "type": "STRING", "value": "~" }, { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "+=" }, { "type": "STRING", "value": "-=" }, { "type": "STRING", "value": "*=" }, { "type": "STRING", "value": "/=" }, { "type": "STRING", "value": "%=" }, { "type": "STRING", "value": "^=" }, { "type": "STRING", "value": "&=" }, { "type": "STRING", "value": "|=" }, { "type": "STRING", "value": "<<" }, { "type": "STRING", "value": ">>" }, { "type": "STRING", "value": ">>=" }, { "type": "STRING", "value": "<<=" }, { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" }, { "type": "STRING", "value": "<=>" }, { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "++" }, { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "," }, { "type": "STRING", "value": "->*" }, { "type": "STRING", "value": "->" }, { "type": "STRING", "value": "()" }, { "type": "STRING", "value": "[]" }, { "type": "STRING", "value": "xor" }, { "type": "STRING", "value": "bitand" }, { "type": "STRING", "value": "bitor" }, { "type": "STRING", "value": "compl" }, { "type": "STRING", "value": "not" }, { "type": "STRING", "value": "xor_eq" }, { "type": "STRING", "value": "and_eq" }, { "type": "STRING", "value": "or_eq" }, { "type": "STRING", "value": "not_eq" }, { "type": "STRING", "value": "and" }, { "type": "STRING", "value": "or" }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "new" }, { "type": "STRING", "value": "delete" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "[]" }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"\"" }, { "type": "SYMBOL", "name": "identifier" } ] } ] } ] } }, "this": { "type": "STRING", "value": "this" }, "literal_suffix": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "[a-zA-Z_]\\w*" } }, "user_defined_literal": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number_literal" }, { "type": "SYMBOL", "name": "char_literal" }, { "type": "SYMBOL", "name": "string_literal" }, { "type": "SYMBOL", "name": "raw_string_literal" }, { "type": "SYMBOL", "name": "concatenated_string" } ] }, { "type": "SYMBOL", "name": "literal_suffix" } ] }, "_namespace_identifier": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "namespace_identifier" }, "kernel_call_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "SYMBOL", "name": "kernel_call_syntax" }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "argument_list" } } ] }, "kernel_call_syntax": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "PATTERN", "value": "\\s*" }, { "type": "STRING", "value": "<" }, { "type": "PATTERN", "value": "\\s*" }, { "type": "STRING", "value": "<" } ] } }, "named": false, "value": "<<<" }, { "type": "SYMBOL", "name": "expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ">" }, { "type": "PATTERN", "value": "\\s*" }, { "type": "STRING", "value": ">" }, { "type": "PATTERN", "value": "\\s*" }, { "type": "STRING", "value": ">" } ] } }, "named": false, "value": ">>>" } ] }, "launch_bounds": { "type": "SEQ", "members": [ { "type": "STRING", "value": "__launch_bounds__" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s|\\\\\\r?\\n" }, { "type": "SYMBOL", "name": "comment" } ], "conflicts": [ [ "type_specifier", "_declarator" ], [ "type_specifier", "expression" ], [ "sized_type_specifier" ], [ "attributed_statement" ], [ "_declaration_modifiers", "attributed_statement" ], [ "_top_level_item", "_top_level_statement" ], [ "_block_item", "statement" ], [ "template_function", "template_type" ], [ "template_function", "template_type", "expression" ], [ "template_function", "template_type", "qualified_identifier" ], [ "template_type", "qualified_type_identifier" ], [ "qualified_type_identifier", "qualified_identifier" ], [ "comma_expression", "initializer_list" ], [ "expression", "_declarator" ], [ "expression", "structured_binding_declarator" ], [ "expression", "_declarator", "type_specifier" ], [ "parameter_list", "argument_list" ], [ "type_specifier", "call_expression" ], [ "_declaration_specifiers", "_constructor_specifiers" ], [ "_binary_fold_operator", "_fold_operator" ], [ "_function_declarator_seq" ], [ "type_specifier", "sized_type_specifier" ], [ "initializer_pair", "comma_expression" ], [ "expression_statement", "_for_statement_body" ], [ "init_statement", "_for_statement_body" ], [ "field_expression", "template_method", "template_type" ], [ "qualified_field_identifier", "template_method", "template_type" ] ], "precedences": [ [ { "type": "SYMBOL", "name": "argument_list" }, { "type": "SYMBOL", "name": "type_qualifier" } ], [ { "type": "SYMBOL", "name": "_expression_not_binary" }, { "type": "SYMBOL", "name": "_class_name" } ] ], "externals": [ { "type": "SYMBOL", "name": "raw_string_delimiter" }, { "type": "SYMBOL", "name": "raw_string_content" } ], "inline": [ "_type_identifier", "_field_identifier", "_statement_identifier", "_non_case_statement", "_assignment_left_expression", "_expression_not_binary", "_namespace_identifier" ], "supertypes": [ "expression", "statement", "type_specifier", "_declarator", "_field_declarator", "_type_declarator", "_abstract_declarator" ] }