UNPKG

tree-sitter-ride

Version:
847 lines (845 loc) 17.3 kB
{ "name": "ride", "rules": { "source_file": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_directive" }, { "type": "SYMBOL", "name": "_directive" }, { "type": "SYMBOL", "name": "_directive" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_definition" } } ] }, "_definition": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "variable_declaration_statement" } ] }, "function_definition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_annotation" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "func" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "parameter_list" }, { "type": "SYMBOL", "name": "_assignment_operator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "block" }, { "type": "SYMBOL", "name": "_expression" } ] } ] }, "parameter_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "parameter_statement" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "parameter_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ":" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type" }, { "type": "BLANK" } ] } ] }, "block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } }, { "type": "STRING", "value": "}" } ] }, "_type": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "basic_type" }, { "type": "SYMBOL", "name": "special_type" }, { "type": "SYMBOL", "name": "transaction_type" }, { "type": "SYMBOL", "name": "predefined_data_structures" } ] }, "basic_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "String" }, { "type": "STRING", "value": "Int" }, { "type": "STRING", "value": "Boolean" }, { "type": "STRING", "value": "ByteVector" } ] }, "special_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "unit" } ] }, "transaction_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "AliasTransaction" }, { "type": "STRING", "value": "BurnTransaction" }, { "type": "STRING", "value": "DataTransaction" }, { "type": "STRING", "value": "ExchangeTransaction" }, { "type": "STRING", "value": "GenesisTransaction" }, { "type": "STRING", "value": "InvokeScriptTransaction" }, { "type": "STRING", "value": "IssueTransaction" }, { "type": "STRING", "value": "LeaseCancelTransaction" }, { "type": "STRING", "value": "LeaseTransaction" }, { "type": "STRING", "value": "MassTransferTransaction" }, { "type": "STRING", "value": "ReissueTransaction" }, { "type": "STRING", "value": "SetScriptTransaction" }, { "type": "STRING", "value": "SetAssetScriptTransaction" }, { "type": "STRING", "value": "SponsorshipTransaction" }, { "type": "STRING", "value": "UpdateAssetInfoTransaction" } ] }, "predefined_data_structures": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "Address" }, { "type": "STRING", "value": "Alias" }, { "type": "STRING", "value": "DataEntry" }, { "type": "STRING", "value": "ScriptResult" }, { "type": "STRING", "value": "Invocation" }, { "type": "STRING", "value": "ScriptTransfer" }, { "type": "STRING", "value": "TransferSet" }, { "type": "STRING", "value": "WriteSet" }, { "type": "STRING", "value": "AssetInfo" }, { "type": "STRING", "value": "BlockInfo" } ] }, "_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variable_declaration_statement" }, { "type": "SYMBOL", "name": "_type_matching_statement" }, { "type": "SYMBOL", "name": "_if_statement" } ] }, "variable_declaration_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "let" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "_expression" } ] }, "_type_matching_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "case" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "_type" }, { "type": "STRING", "value": "=>" }, { "type": "SYMBOL", "name": "_expression" } ] }, "_if_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "if" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "_conditional_operator" }, { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "SYMBOL", "name": "identifier" } ] }, { "type": "STRING", "value": "then" }, { "type": "SYMBOL", "name": "_expression" }, { "type": "CHOICE", "members": [ { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "else if" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "_conditional_operator" }, { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "SYMBOL", "name": "identifier" } ] }, { "type": "SYMBOL", "name": "identifier" } ] } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "else" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "block" } ] }, { "type": "BLANK" } ] } ] }, "_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "type_matching" }, { "type": "SYMBOL", "name": "list_declaration" }, { "type": "SYMBOL", "name": "unary_expression" }, { "type": "SYMBOL", "name": "binary_expression" } ] }, "_annotation": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "@Callable" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ")" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "@Verifier" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ")" } ] } ] }, "identifier": { "type": "PATTERN", "value": "[a-z]+" }, "number": { "type": "PATTERN", "value": "\\d+" }, "unary_expression": { "type": "PREC", "value": 2, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "-" }, { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "!" }, { "type": "SYMBOL", "name": "_expression" } ] } ] } }, "binary_expression": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "_arithmetic_operator" }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, "type_matching": { "type": "SEQ", "members": [ { "type": "STRING", "value": "match" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "block" } ] }, "list_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "_arithmetic_operator": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" } ] }, "_conditional_operator": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" } ] }, "_directive": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{-#" }, { "type": "SYMBOL", "name": "directive_type" }, { "type": "SYMBOL", "name": "directive_value" }, { "type": "STRING", "value": "#-}" } ] }, "_assignment_operator": { "type": "STRING", "value": "=" }, "directive_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "STDLIB_VERSION" }, { "type": "STRING", "value": "CONTENT_TYPE" }, { "type": "STRING", "value": "SCRIPT_TYPE" } ] }, "directive_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "STRING", "value": "EXPRESSION" }, { "type": "STRING", "value": "ACCOUNT" }, { "type": "STRING", "value": "ASSET" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "externals": [], "inline": [], "supertypes": [] }