{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "zig",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "container_doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ContainerMembers"
},
{
"type": "BLANK"
}
]
}
]
},
"_ContainerMembers": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ContainerDeclarations"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ContainerField"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"_ContainerDeclarations": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "TestDecl"
},
{
"type": "SYMBOL",
"name": "ComptimeDecl"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "pub"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Decl"
}
]
}
]
},
"TestDecl": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "test"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "STRINGLITERALSINGLE"
},
{
"type": "SYMBOL",
"name": "IDENTIFIER"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Block"
}
]
},
"ComptimeDecl": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "comptime"
},
{
"type": "SYMBOL",
"name": "Block"
}
]
},
"Decl": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "export"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extern"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "STRINGLITERALSINGLE"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inline"
},
{
"type": "STRING",
"value": "noinline"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "FnProto"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "Block"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "export"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extern"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "STRINGLITERALSINGLE"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "threadlocal"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "VarDecl"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "usingnamespace"
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"FnProto": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "fn"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "ParamDeclList"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ByteAlign"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AddrSpace"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "LinkSection"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "CallConv"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "STRING",
"value": "!"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
"VarDecl": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "STRING",
"value": "var"
}
]
},
{
"type": "FIELD",
"name": "variable_type_function",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ByteAlign"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AddrSpace"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "LinkSection"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"ContainerField": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "comptime"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "field_member",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "IDENTIFIER"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "BuildinTypeExpr"
},
"named": true,
"value": "IDENTIFIER"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ArrayTypeStart"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ByteAlign"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"Statement": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "comptime"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "VarDecl"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "comptime"
},
{
"type": "STRING",
"value": "nosuspend"
},
{
"type": "STRING",
"value": "defer"
},
{
"type": "STRING",
"value": "suspend"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "errdefer"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "Payload"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SYMBOL",
"name": "BlockExprStatement"
}
]
},
{
"type": "SYMBOL",
"name": "IfStatement"
},
{
"type": "SYMBOL",
"name": "LabeledStatement"
},
{
"type": "SYMBOL",
"name": "SwitchExpr"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "AssignExpr"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"IfStatement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "IfPrefix"
},
{
"type": "SYMBOL",
"name": "BlockExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseStatementTail"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "IfPrefix"
},
{
"type": "SYMBOL",
"name": "AssignExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_ElseStatementTail"
}
]
}
]
}
]
},
"_ElseStatementTail": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "Payload"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Statement"
}
]
},
"LabeledStatement": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BlockLabel"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "Block"
},
{
"type": "SYMBOL",
"name": "LoopStatement"
}
]
}
]
}
},
"LoopStatement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inline"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ForStatement"
},
{
"type": "SYMBOL",
"name": "WhileStatement"
}
]
}
]
},
"ForStatement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ForPrefix"
},
{
"type": "SYMBOL",
"name": "BlockExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseStatementTail"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ForPrefix"
},
{
"type": "SYMBOL",
"name": "AssignExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_ElseStatementTail"
}
]
}
]
}
]
},
"WhileStatement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "WhilePrefix"
},
{
"type": "SYMBOL",
"name": "BlockExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseStatementTail"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "WhilePrefix"
},
{
"type": "SYMBOL",
"name": "AssignExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_ElseStatementTail"
}
]
}
]
}
]
},
"BlockExprStatement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BlockExpr"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "AssignExpr"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"BlockExpr": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BlockLabel"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Block"
}
]
}
},
"AssignExpr": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "AssignOp"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_Expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BinaryExpr"
},
{
"type": "SYMBOL",
"name": "UnaryExpr"
},
{
"type": "SYMBOL",
"name": "_PrimaryExpr"
}
]
},
"BinaryExpr": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "or"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "and"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "CompareOp"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "BitwiseOp"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "BitShiftOp"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "AdditionOp"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "MultiplyOp"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
}
]
},
"UnaryExpr": {
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "PrefixOp"
}
},
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_Expr"
}
}
]
}
},
"_PrimaryExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AsmExpr"
},
{
"type": "SYMBOL",
"name": "IfExpr"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "break"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BreakLabel"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "continue"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BreakLabel"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "comptime"
},
{
"type": "STRING",
"value": "nosuspend"
},
{
"type": "STRING",
"value": "resume"
}
]
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "return"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BlockLabel"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "LoopExpr"
}
]
},
{
"type": "SYMBOL",
"name": "Block"
},
{
"type": "SYMBOL",
"name": "_CurlySuffixExpr"
}
]
}
},
"IfExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "IfPrefix"
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseExprTail"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_ElseExprTail": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "Payload"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
"Block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "Statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"LoopExpr": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inline"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ForExpr"
},
{
"type": "SYMBOL",
"name": "WhileExpr"
}
]
}
]
},
"ForExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ForPrefix"
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseExprTail"
},
{
"type": "BLANK"
}
]
}
]
}
},
"WhileExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "WhilePrefix"
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseExprTail"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_CurlySuffixExpr": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_TypeExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "InitList"
},
{
"type": "BLANK"
}
]
}
]
}
},
"InitList": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "FieldInit"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "FieldInit"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"_TypeExpr": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "PrefixTypeOp"
}
},
{
"type": "SYMBOL",
"name": "ErrorUnionExpr"
}
]
},
"ErrorUnionExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "SuffixExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "STRING",
"value": "!"
}
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"SuffixExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "async"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_PrimaryTypeExpr"
},
{
"type": "FIELD",
"name": "variable_type_function",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "SuffixOp"
},
{
"type": "SYMBOL",
"name": "FieldOrFnCall"
},
{
"type": "SYMBOL",
"name": "FnCallArguments"
}
]
}
}
]
}
},
"FieldOrFnCall": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "field_access",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "function_call",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
},
{
"type": "SYMBOL",
"name": "FnCallArguments"
}
]
}
]
}
},
"_PrimaryTypeExpr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "BUILTINIDENTIFIER"
},
{
"type": "SYMBOL",
"name": "FnCallArguments"
}
]
},
{
"type": "SYMBOL",
"name": "CHAR_LITERAL"
},
{
"type": "SYMBOL",
"name": "ContainerDecl"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "field_constant",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "InitList"
}
]
},
{
"type": "SYMBOL",
"name": "ErrorSetDecl"
},
{
"type": "SYMBOL",
"name": "FLOAT"
},
{
"type": "SYMBOL",
"name": "FnProto"
},
{
"type": "SYMBOL",
"name": "GroupedExpr"
},
{
"type": "SYMBOL",
"name": "LabeledTypeExpr"
},
{
"type": "SYMBOL",
"name": "IfTypeExpr"
},
{
"type": "SYMBOL",
"name": "INTEGER"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "comptime"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "error"
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "field_constant",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
}
]
},
{
"type": "STRING",
"value": "false"
},
{
"type": "STRING",
"value": "null"
},
{
"type": "STRING",
"value": "anyframe"
},
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "undefined"
},
{
"type": "STRING",
"value": "unreachable"
},
{
"type": "SYMBOL",
"name": "_STRINGLITERAL"
},
{
"type": "SYMBOL",
"name": "SwitchExpr"
},
{
"type": "SYMBOL",
"name": "BuildinTypeExpr"
}
]
},
"BuildinTypeExpr": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "bool"
},
{
"type": "STRING",
"value": "f16"
},
{
"type": "STRING",
"value": "f32"
},
{
"type": "STRING",
"value": "f64"
},
{
"type": "STRING",
"value": "f80"
},
{
"type": "STRING",
"value": "f128"
},
{
"type": "STRING",
"value": "void"
},
{
"type": "STRING",
"value": "type"
},
{
"type": "STRING",
"value": "anyerror"
},
{
"type": "STRING",
"value": "anyframe"
},
{
"type": "STRING",
"value": "anyopaque"
},
{
"type": "STRING",
"value": "noreturn"
},
{
"type": "STRING",
"value": "isize"
},
{
"type": "STRING",
"value": "usize"
},
{
"type": "STRING",
"value": "comptime_int"
},
{
"type": "STRING",
"value": "comptime_float"
},
{
"type": "STRING",
"value": "c_char"
},
{
"type": "STRING",
"value": "c_short"
},
{
"type": "STRING",
"value": "c_ushort"
},
{
"type": "STRING",
"value": "c_int"
},
{
"type": "STRING",
"value": "c_uint"
},
{
"type": "STRING",
"value": "c_long"
},
{
"type": "STRING",
"value": "c_ulong"
},
{
"type": "STRING",
"value": "c_longlong"
},
{
"type": "STRING",
"value": "c_ulonglong"
},
{
"type": "STRING",
"value": "c_longdouble"
},
{
"type": "PATTERN",
"value": "(i|u)[0-9]+"
}
]
}
},
"ContainerDecl": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "extern"
},
{
"type": "STRING",
"value": "packed"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_ContainerDeclAuto"
}
]
},
"ErrorSetDecl": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "error"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "field_constant",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "field_constant",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"GroupedExpr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"IfTypeExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "IfPrefix"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseTypeExprTail"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_ElseTypeExprTail": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "Payload"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
"LabeledTypeExpr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "BlockLabel"
},
{
"type": "SYMBOL",
"name": "Block"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "BlockLabel"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "LoopTypeExpr"
}
]
}
]
},
"LoopTypeExpr": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inline"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ForTypeExpr"
},
{
"type": "SYMBOL",
"name": "WhileTypeExpr"
}
]
}
]
},
"ForTypeExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ForPrefix"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseTypeExprTail"
},
{
"type": "BLANK"
}
]
}
]
}
},
"WhileTypeExpr": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "WhilePrefix"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ElseTypeExprTail"
},
{
"type": "BLANK"
}
]
}
]
}
},
"SwitchExpr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "switch"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "SwitchProng"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "SwitchProng"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"AsmExpr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "asm"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "volatile"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AsmOutput"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"AsmOutput": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "AsmOutputItem"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "AsmOutputItem"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AsmInput"
},
{
"type": "BLANK"
}
]
}
]
},
"AsmOutputItem": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "Variable"
},
{
"type": "STRING",
"value": "]"
},
{
"type": "SYMBOL",
"name": "_STRINGLITERAL"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "->"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
},
{
"type": "SYMBOL",
"name": "Variable"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"AsmInput": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "AsmInputItem"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "AsmInputItem"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AsmClobbers"
},
{
"type": "BLANK"
}
]
}
]
},
"AsmInputItem": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "Variable"
},
{
"type": "STRING",
"value": "]"
},
{
"type": "SYMBOL",
"name": "_STRINGLITERAL"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"AsmClobbers": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_STRINGLITERAL"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_STRINGLITERAL"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"BreakLabel": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "IDENTIFIER"
}
]
},
"BlockLabel": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "IDENTIFIER"
},
{
"type": "STRING",
"value": ":"
}
]
}
},
"FieldInit": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "field_member",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
"WhileContinueExpr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "AssignExpr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"LinkSection": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "linksection"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"AddrSpace": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "addrspace"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"CallConv": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "callconv"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"ParamDecl": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "noalias"
},
{
"type": "STRING",
"value": "comptime"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "IDENTIFIER"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "BuildinTypeExpr"
},
"named": true,
"value": "IDENTIFIER"
}
]
}
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "ParamType"
}
]
},
{
"type": "STRING",
"value": "..."
}
]
},
"ParamType": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "anytype"
},
{
"type": "SYMBOL",
"name": "_TypeExpr"
}
]
}
},
"IfPrefix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "PtrPayload"
},
{
"type": "BLANK"
}
]
}
]
},
"WhilePrefix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "PtrPayload"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "WhileContinueExpr"
},
{
"type": "BLANK"
}
]
}
]
},
"ForPrefix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "ForArgumentsList"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "PtrListPayload"
}
]
},
"Payload": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "Variable"
},
{
"type": "STRING",
"value": "|"
}
]
},
"PtrPayload": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Variable"
},
{
"type": "STRING",
"value": "|"
}
]
},
"PtrIndexPayload": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Variable"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "Variable"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "|"
}
]
},
"PtrListPayload": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Variable"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "Variable"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "|"
}
]
},
"SwitchProng": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inline"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "SwitchCase"
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "PtrIndexPayload"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "AssignExpr"
}
]
},
"SwitchCase": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "SwitchItem"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "SwitchItem"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "else"
}
]
},
"SwitchItem": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "..."
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"ForArgumentsList": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ForItem"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "ForItem"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"ForItem": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"AssignOp": {
"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": "="
}
]
},
"CompareOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
}
]
},
"BitwiseOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "STRING",
"value": "^"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "orelse"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "catch"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "Payload"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"BitShiftOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<<"
},
{
"type": "STRING",
"value": ">>"
},
{
"type": "STRING",
"value": "<<|"
}
]
},
"AdditionOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "+%"
},
{
"type": "STRING",
"value": "-%"
},
{
"type": "STRING",
"value": "+|"
},
{
"type": "STRING",
"value": "-|"
}
]
},
"MultiplyOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "||"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "**"
},
{
"type": "STRING",
"value": "*%"
},
{
"type": "STRING",
"value": "*|"
}
]
},
"PrefixOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "-%"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "STRING",
"value": "try"
},
{
"type": "STRING",
"value": "await"
}
]
},
"PrefixTypeOp": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "anyframe"
},
{
"type": "STRING",
"value": "->"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "SliceTypeStart"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ByteAlign"
},
{
"type": "SYMBOL",
"name": "AddrSpace"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "STRING",
"value": "volatile"
},
{
"type": "STRING",
"value": "allowzero"
}
]
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "PtrTypeStart"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "AddrSpace"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "align"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "STRING",
"value": "volatile"
},
{
"type": "STRING",
"value": "allowzero"
}
]
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "ArrayTypeStart"
}
]
},
"_SentinelTerminatedExpr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "IDENTIFIER"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"SuffixOp": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_SentinelTerminatedExpr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "STRING",
"value": ".*"
},
{
"type": "STRING",
"value": ".?"
}
]
},
"FnCallArguments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"SliceTypeStart": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"PtrTypeStart": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "**"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "*"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "c"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"ArrayTypeStart": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "SYMBOL",
"name": "IDENTIFIER"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "SYMBOL",
"name": "IDENTIFIER"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"_ContainerDeclAuto": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ContainerDeclType"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "container_doc_comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ContainerMembers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"ContainerDeclType": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "struct"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "opaque"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "enum"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "union"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "enum"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_Expr"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"ByteAlign": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "align"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_Expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"ParamDeclList": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "ParamDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "ParamDecl"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"container_doc_comment": {
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//!"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
},
{
"type": "PATTERN",
"value": "[ \\n]*"
}
]
}
}
},
"doc_comment": {
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "///"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
},
{
"type": "PATTERN",
"value": "[ \\n]*"
}
]
}
}
},
"line_comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"CHAR_LITERAL": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^'\\\\]"
}
}
},
{
"type": "SYMBOL",
"name": "EscapeSequence"
}
]
},
{
"type": "STRING",
"value": "'"
}
]
},
"FLOAT": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0x"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
}
]
}
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][-+]?"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][-+]?"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0x"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
}
]
}
}
]
},
{
"type": "PATTERN",
"value": "[pP][-+]?"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
},
{
"type": "PATTERN",
"value": "[eE][-+]?"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
}
]
}
}
]
},
"INTEGER": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0b"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[01]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[01]"
}
]
}
}
]
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0o"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-7]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-7]"
}
]
}
}
]
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0x"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
}
]
}
}
]
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]"
}
]
}
}
]
}
}
]
},
"EscapeSequence": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "x[0-9a-fA-f]{2}"
},
{
"type": "PATTERN",
"value": "u\\{[0-9a-fA-F]+\\}"
},
{
"type": "PATTERN",
"value": "[nr\\\\t'\"]"
}
]
}
]
},
{
"type": "STRING",
"value": "{{"
},
{
"type": "STRING",
"value": "}}"
}
]
},
"FormatSequence": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "PATTERN",
"value": "[0-9]*"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[xXsedbocu*!?]{1}"
},
{
"type": "STRING",
"value": "any"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\\\\\{\\}]{1}[<^>]{1}[0-9]+"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": ".{0,1}[0-9]*"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"STRINGLITERALSINGLE": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\"\\\\\\{\\}]+"
}
}
},
{
"type": "SYMBOL",
"name": "EscapeSequence"
},
{
"type": "SYMBOL",
"name": "FormatSequence"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "{"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "}"
}
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"LINESTRING": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\\\"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
}
]
},
"_STRINGLITERAL": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "STRINGLITERALSINGLE"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "LINESTRING"
}
}
]
}
},
"Variable": {
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "IDENTIFIER"
}
},
"IDENTIFIER": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[A-Za-z_][A-Za-z0-9_]*"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "STRINGLITERALSINGLE"
}
]
}
]
},
"BUILTINIDENTIFIER": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "PATTERN",
"value": "[A-Za-z_][A-Za-z0-9_]*"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "line_comment"
}
],
"conflicts": [
[
"LoopExpr"
],
[
"LoopTypeExpr"
]
],
"precedences": [],
"externals": [],
"inline": [
"Variable"
],
"supertypes": [],
"reserved": {}
}