Skip to main content
Glama

CTS MCP Server

by EricA1019
grammar.json98.1 kB
{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "gdscript", "word": "_identifier", "rules": { "source": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } }, "_identifier": { "type": "PATTERN", "value": "[a-zA-Z_][a-zA-Z_0-9]*" }, "identifier": { "type": "SYMBOL", "name": "_identifier" }, "name": { "type": "SYMBOL", "name": "_identifier" }, "comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#" }, { "type": "PATTERN", "value": ".*" } ] } }, "true": { "type": "STRING", "value": "true" }, "false": { "type": "STRING", "value": "false" }, "null": { "type": "STRING", "value": "null" }, "static_keyword": { "type": "STRING", "value": "static" }, "remote_keyword": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "remote" }, { "type": "STRING", "value": "master" }, { "type": "STRING", "value": "puppet" }, { "type": "STRING", "value": "remotesync" }, { "type": "STRING", "value": "mastersync" }, { "type": "STRING", "value": "puppetsync" } ] }, "escape_sequence": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "u[a-fA-F\\d]{4}" }, { "type": "PATTERN", "value": "U[a-fA-F\\d]{8}" }, { "type": "PATTERN", "value": "x[a-fA-F\\d]{2}" }, { "type": "PATTERN", "value": "o\\d{3}" }, { "type": "PATTERN", "value": "\\r\\n" }, { "type": "PATTERN", "value": "[^uxo]" } ] } ] } }, "string": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_string_start" }, "named": false, "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "SYMBOL", "name": "_string_content" } ] } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_string_end" }, "named": false, "value": "\"" } ] }, "float": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } }, { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE][\\+-]?" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "." }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE][\\+-]?" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE][\\+-]?" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } } ] } ] } ] } }, "integer": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0x" }, { "type": "STRING", "value": "0X" } ] }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "_?[A-Fa-f0-9]+" } } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0o" }, { "type": "STRING", "value": "0O" } ] }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "_?[0-7]+" } } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0b" }, { "type": "STRING", "value": "0B" } ] }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "_?[0-1]+" } } ] }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]+_?" } } ] } }, "string_name": { "type": "SEQ", "members": [ { "type": "STRING", "value": "&" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "string" }, "named": false, "value": "value" } ] }, "node_path": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "@" }, { "type": "STRING", "value": "^" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "PATTERN", "value": "[0-9a-zA-Z_/\\- .]*" }, { "type": "STRING", "value": "\"" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "PATTERN", "value": "[0-9a-zA-Z_/\\- .]*" }, { "type": "STRING", "value": "'" } ] } ] } ] } }, "get_node": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "$" }, { "type": "STRING", "value": "%" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "PATTERN", "value": "[0-9a-zA-Z_/\\- .]*" }, { "type": "STRING", "value": "\"" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "PATTERN", "value": "[0-9a-zA-Z_/\\- .]*" }, { "type": "STRING", "value": "'" } ] } ] }, { "type": "PATTERN", "value": "[a-zA-Z_][a-zA-Z_/0-9]*" } ] } ] } }, "type": { "type": "PREC", "value": 20, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "subscript" } ] } }, "_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_simple_statements" }, { "type": "SYMBOL", "name": "_compound_statement" } ] }, "body": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_simple_statements" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_indent" }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_body_end" }, { "type": "SYMBOL", "name": "_dedent" } ] } ] } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline" }, { "type": "SYMBOL", "name": "_body_end" } ] } ] }, "_simple_statements": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_simple_statement" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "SYMBOL", "name": "_simple_statement" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline" }, { "type": "SYMBOL", "name": "_body_end" } ] } ] }, "_simple_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_annotations" }, { "type": "SYMBOL", "name": "tool_statement" }, { "type": "SYMBOL", "name": "signal_statement" }, { "type": "SYMBOL", "name": "class_name_statement" }, { "type": "SYMBOL", "name": "extends_statement" }, { "type": "SYMBOL", "name": "expression_statement" }, { "type": "SYMBOL", "name": "export_variable_statement" }, { "type": "SYMBOL", "name": "onready_variable_statement" }, { "type": "SYMBOL", "name": "variable_statement" }, { "type": "SYMBOL", "name": "const_statement" }, { "type": "SYMBOL", "name": "return_statement" }, { "type": "SYMBOL", "name": "pass_statement" }, { "type": "SYMBOL", "name": "break_statement" }, { "type": "SYMBOL", "name": "breakpoint_statement" }, { "type": "SYMBOL", "name": "continue_statement" } ] }, "expression_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "assignment" }, { "type": "SYMBOL", "name": "augmented_assignment" } ] }, "annotation": { "type": "SEQ", "members": [ { "type": "STRING", "value": "@" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "arguments" }, { "type": "BLANK" } ] } ] }, "_annotations": { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "annotation" } }, "annotations": { "type": "SYMBOL", "name": "_annotations" }, "inferred_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": ":=" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "STRING", "value": "=" } ] } ] }, "_variable_assignment": { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] }, "_variable_inferred_type_assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "inferred_type" } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] }, "_variable_typed_assignment": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] }, "_variable_typed_definition": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } } ] }, { "type": "SYMBOL", "name": "_variable_typed_assignment" } ] }, "set_body": { "type": "SEQ", "members": [ { "type": "STRING", "value": "set" }, { "type": "SYMBOL", "name": "parameters" }, { "type": "STRING", "value": ":" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "body" }, "named": false, "value": "body" } ] }, "get_body": { "type": "SEQ", "members": [ { "type": "STRING", "value": "get" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "parameters" }, "named": false, "value": "()" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "body" }, "named": false, "value": "body" } ] }, "_set_assign": { "type": "SEQ", "members": [ { "type": "STRING", "value": "set" }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "set", "content": { "type": "SYMBOL", "name": "setter" } } ] }, "_get_assign": { "type": "SEQ", "members": [ { "type": "STRING", "value": "get" }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "get", "content": { "type": "SYMBOL", "name": "getter" } } ] }, "_setget_body": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_indent" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "set", "content": { "type": "SYMBOL", "name": "set_body" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "get", "content": { "type": "SYMBOL", "name": "get_body" } }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "get", "content": { "type": "SYMBOL", "name": "get_body" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "set", "content": { "type": "SYMBOL", "name": "set_body" } }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_set_assign" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_get_assign" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_get_assign" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_set_assign" } ] }, { "type": "BLANK" } ] } ] } ] }, { "type": "SYMBOL", "name": "_dedent" } ] } ] }, "setter": { "type": "SYMBOL", "name": "_identifier" }, "getter": { "type": "SYMBOL", "name": "_identifier" }, "setget": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_setget_body" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "setget" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "setter" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "setter" }, { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "getter" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "getter" } ] } ] } ] } ] }, "_variable_statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "annotations" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "static", "content": { "type": "SYMBOL", "name": "static_keyword" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "var" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_variable_typed_definition" }, { "type": "SYMBOL", "name": "_variable_inferred_type_assignment" }, { "type": "SYMBOL", "name": "_variable_assignment" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "setget", "content": { "type": "SYMBOL", "name": "setget" } }, { "type": "BLANK" } ] } ] }, "variable_statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "remote_keyword" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_variable_statement" } ] }, "export_variable_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "export" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "export_arguments", "content": { "type": "SYMBOL", "name": "arguments" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "onready" }, { "type": "SYMBOL", "name": "remote_keyword" } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_variable_statement" } ] }, "onready_variable_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "onready" }, { "type": "SYMBOL", "name": "_variable_statement" } ] }, "const_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "const" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_variable_inferred_type_assignment" }, { "type": "SYMBOL", "name": "_variable_typed_assignment" }, { "type": "SYMBOL", "name": "_variable_assignment" } ] } ] }, "return_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "return" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_rhs_expression" }, { "type": "BLANK" } ] } ] }, "pass_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "STRING", "value": "pass" } }, "break_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "STRING", "value": "break" } }, "breakpoint_statement": { "type": "STRING", "value": "breakpoint" }, "continue_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "STRING", "value": "continue" } }, "tool_statement": { "type": "STRING", "value": "tool" }, "signal_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "signal" }, { "type": "SYMBOL", "name": "name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameters" }, { "type": "BLANK" } ] } ] }, "class_name_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "class_name" }, { "type": "SYMBOL", "name": "name" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "icon_path", "content": { "type": "SYMBOL", "name": "string" } } ] }, { "type": "BLANK" } ] } ] }, "extends_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "extends" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "type" } ] } ] }, "_compound_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "while_statement" }, { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "constructor_definition" }, { "type": "SYMBOL", "name": "class_definition" }, { "type": "SYMBOL", "name": "enum_definition" }, { "type": "SYMBOL", "name": "match_statement" } ] }, "if_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "if" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "elif_clause" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "else_clause" } }, { "type": "BLANK" } ] } ] }, "elif_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "elif" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "else_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": "else" }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "for_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "for" }, { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "in" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "while_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "while" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "class_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "class" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "extends", "content": { "type": "SYMBOL", "name": "extends_statement" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "enum_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "enum" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "enumerator_list" } } ] }, "enumerator_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "enumerator" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "enumerator" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "STRING", "value": "}" } ] }, "_enumerator_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "binary_operator" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "unary_operator" }, { "type": "SYMBOL", "name": "attribute" }, { "type": "SYMBOL", "name": "subscript" }, { "type": "SYMBOL", "name": "call" }, { "type": "SYMBOL", "name": "parenthesized_expression" } ] }, "enumerator": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_enumerator_expression" } } ] }, { "type": "BLANK" } ] } ] }, "match_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "match" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "match_body" } } ] }, "match_body": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_indent" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "pattern_section" } }, { "type": "SYMBOL", "name": "_dedent" } ] }, "pattern_guard": { "type": "SEQ", "members": [ { "type": "STRING", "value": "when" }, { "type": "SYMBOL", "name": "_expression" } ] }, "pattern_section": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_pattern" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_pattern" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "pattern_guard" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "_pattern": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_primary_expression" }, { "type": "SYMBOL", "name": "pattern_binding" } ] }, "pattern_binding": { "type": "SEQ", "members": [ { "type": "STRING", "value": "var" }, { "type": "SYMBOL", "name": "identifier" } ] }, "pattern_open_ending": { "type": "STRING", "value": ".." }, "_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_primary_expression" }, { "type": "SYMBOL", "name": "conditional_expression" }, { "type": "SYMBOL", "name": "await_expression" } ] }, "_primary_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "binary_operator" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "float" }, { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "false" }, { "type": "SYMBOL", "name": "null" }, { "type": "SYMBOL", "name": "unary_operator" }, { "type": "SYMBOL", "name": "string_name" }, { "type": "SYMBOL", "name": "node_path" }, { "type": "SYMBOL", "name": "get_node" }, { "type": "SYMBOL", "name": "attribute" }, { "type": "SYMBOL", "name": "subscript" }, { "type": "SYMBOL", "name": "base_call" }, { "type": "SYMBOL", "name": "call" }, { "type": "SYMBOL", "name": "array" }, { "type": "SYMBOL", "name": "dictionary" }, { "type": "SYMBOL", "name": "parenthesized_expression" } ] }, "_rhs_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "lambda" } ] }, "_attribute_expression": { "type": "PREC", "value": 19, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "binary_operator" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "float" }, { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "false" }, { "type": "SYMBOL", "name": "null" }, { "type": "SYMBOL", "name": "unary_operator" }, { "type": "SYMBOL", "name": "node_path" }, { "type": "SYMBOL", "name": "get_node" }, { "type": "SYMBOL", "name": "subscript" }, { "type": "SYMBOL", "name": "base_call" }, { "type": "SYMBOL", "name": "call" }, { "type": "SYMBOL", "name": "array" }, { "type": "SYMBOL", "name": "dictionary" }, { "type": "SYMBOL", "name": "parenthesized_expression" } ] } }, "binary_operator": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 5, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "in" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "and" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "&&" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "or" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "||" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "+" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "-" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "*" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "/" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "**" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "%" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "|" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 8, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "&" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "^" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "<<" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": ">>" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "<" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "<=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "==" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "!=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": ">=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": ">" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 16, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "STRING", "value": "as" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } }, { "type": "PREC_LEFT", "value": 15, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "FIELD", "name": "op", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "is" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "not" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_primary_expression" } } ] } } ] }, "unary_operator": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "not" }, { "type": "STRING", "value": "!" } ] }, { "type": "SYMBOL", "name": "_primary_expression" } ] } }, { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "-" }, { "type": "SYMBOL", "name": "_primary_expression" } ] } }, { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "+" }, { "type": "SYMBOL", "name": "_primary_expression" } ] } }, { "type": "PREC", "value": 14, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "~" }, { "type": "SYMBOL", "name": "_primary_expression" } ] } } ] }, "subscript": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_primary_expression" }, { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "]" } ] }, "attribute_call": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "arguments" } ] } }, "attribute_subscript": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "_primary_expression" }, { "type": "STRING", "value": "]" } ] } }, "attribute": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_attribute_expression" }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_subscript" }, { "type": "SYMBOL", "name": "attribute_call" }, { "type": "SYMBOL", "name": "identifier" } ] } ] } } ] } }, "conditional_expression": { "type": "PREC_RIGHT", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "if" }, { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "else" }, { "type": "SYMBOL", "name": "_expression" } ] } }, "parenthesized_expression": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "_rhs_expression" }, { "type": "STRING", "value": ")" } ] } }, "await_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "await" }, { "type": "SYMBOL", "name": "_expression" } ] }, "assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] }, "augmented_assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "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": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] }, "pair": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "key", "content": { "type": "SYMBOL", "name": "_rhs_expression" } }, { "type": "STRING", "value": ":" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "key", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" } ] } ] }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_rhs_expression" }, { "type": "SYMBOL", "name": "pattern_binding" } ] } } ] }, "dictionary": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "pair" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "pair" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "pattern_open_ending" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "array": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_rhs_expression" }, { "type": "SYMBOL", "name": "pattern_binding" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_rhs_expression" }, { "type": "SYMBOL", "name": "pattern_binding" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "pattern_open_ending" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "typed_parameter": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } } ] } }, "default_parameter": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] }, "typed_default_parameter": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_rhs_expression" } } ] } }, "_parameters": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "typed_parameter" }, { "type": "SYMBOL", "name": "default_parameter" }, { "type": "SYMBOL", "name": "typed_default_parameter" } ] }, "parameters": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_parameters" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_parameters" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_return_type": { "type": "SEQ", "members": [ { "type": "STRING", "value": "->" }, { "type": "FIELD", "name": "return_type", "content": { "type": "SYMBOL", "name": "type" } } ] }, "function_definition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "static_keyword" }, { "type": "SYMBOL", "name": "remote_keyword" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "annotations" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "func" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameters" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_return_type" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "lambda": { "type": "SEQ", "members": [ { "type": "STRING", "value": "func" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "parameters" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_return_type" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "body" } ] }, "constructor_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "func" }, { "type": "STRING", "value": "_init" }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameters" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "FIELD", "name": "constructor_arguments", "content": { "type": "SYMBOL", "name": "arguments" } } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "->" }, { "type": "FIELD", "name": "return_type", "content": { "type": "SYMBOL", "name": "type" } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "body" } } ] }, "arguments": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_rhs_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_rhs_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "base_call": { "type": "PREC", "value": 17, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "arguments" } ] } }, "call": { "type": "PREC", "value": 17, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_primary_expression" }, { "type": "SYMBOL", "name": "arguments" } ] } } }, "extras": [ { "type": "SYMBOL", "name": "comment" }, { "type": "PATTERN", "value": "[\\s\\uFEFF\\u2060\\u200B]|\\\\\\r?\\n" } ], "conflicts": [], "precedences": [], "externals": [ { "type": "SYMBOL", "name": "_newline" }, { "type": "SYMBOL", "name": "_indent" }, { "type": "SYMBOL", "name": "_dedent" }, { "type": "SYMBOL", "name": "_string_start" }, { "type": "SYMBOL", "name": "_string_content" }, { "type": "SYMBOL", "name": "_string_end" }, { "type": "SYMBOL", "name": "comment" }, { "type": "STRING", "value": "]" }, { "type": "STRING", "value": ")" }, { "type": "STRING", "value": "}" }, { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_body_end" } ], "inline": [ "_simple_statement", "_compound_statement" ], "supertypes": [ "_compound_statement", "_pattern", "_expression", "_primary_expression", "_attribute_expression", "_parameters" ] }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EricA1019/CTS_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server