{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "msbasic2",
"rules": {
"program": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
},
"integer_literal": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "\\d+"
}
}
},
"float_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\d+\\.\\d*"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[eEdD][+-]?\\d+"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[!#]"
},
{
"type": "BLANK"
}
]
}
]
}
},
"hex_literal": {
"type": "PATTERN",
"value": "&[hH][0-9a-fA-F]+"
},
"octal_literal": {
"type": "PATTERN",
"value": "&[oO][0-7]+"
},
"string_literal": {
"type": "PATTERN",
"value": "\"[^\"]*\""
},
"literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "float_literal"
},
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_literal"
},
{
"type": "SYMBOL",
"name": "octal_literal"
},
{
"type": "SYMBOL",
"name": "string_literal"
}
]
},
"identifier": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -2,
"content": {
"type": "PATTERN",
"value": "[a-zA-Z][a-zA-Z0-9]*"
}
}
},
"type_sigil": {
"type": "PATTERN",
"value": "[$%!#]"
},
"variable": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_sigil"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"builtin_function": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ll][Ee][Ff][Tt]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Rr][Ii][Gg][Hh][Tt]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Mm][Ii][Dd]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Cc][Hh][Rr]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Tt][Rr]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Tt][Rr][Ii][Nn][Gg]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Pp][Aa][Cc][Ee]\\$"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ii][Nn][Tt]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Rr][Nn][Dd]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Aa][Ss][Cc]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ll][Ee][Nn]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Vv][Aa][Ll]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Aa][Bb][Ss]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Qq][Rr]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Ii][Nn]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Cc][Oo][Ss]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Tt][Aa][Nn]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Aa][Tt][Nn]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ll][Oo][Gg]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ee][Xx][Pp]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Gg][Nn]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Pp][Ee][Ee][Kk]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Pp][Oo][Ss]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Tt][Aa][Bb]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ss][Pp][Cc]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ii][Nn][Ss][Tt][Rr]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ee][Oo][Ff]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ll][Oo][Cc]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ll][Oo][Ff]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ff][Rr][Ee]"
}
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Pp][Oo][Ii][Nn][Tt]"
}
}
]
},
"user_function": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][nN]"
},
{
"type": "PATTERN",
"value": "[a-zA-Z][a-zA-Z0-9]*"
}
]
}
},
"system_variable": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[Ii][Nn][Kk][Ee][Yy]\\$"
}
}
]
},
"function_call": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "builtin_function"
},
{
"type": "SYMBOL",
"name": "user_function"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "primary_expression"
}
]
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Ii][Mm][Pp]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Ee][Qq][Vv]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Xx][Oo][Rr]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Oo][Rr]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Aa][Nn][Dd]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"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": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Mm][Oo][Dd]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
}
]
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "^"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
"unary_expression": {
"type": "PREC",
"value": 13,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Nn][Oo][Tt]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
]
}
},
"primary_expression": {
"type": "PREC",
"value": 14,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "system_variable"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "usr_call"
}
]
}
},
"line_number": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "\\d+"
}
}
},
"line": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "SYMBOL",
"name": "statement_list"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
},
"statement_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "statement"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "statement"
}
]
}
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Rr][Ee][Mm]"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"print_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[Pp][Rr][Ii][Nn][Tt]"
},
{
"type": "STRING",
"value": "?"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "print_list"
},
{
"type": "BLANK"
}
]
}
]
},
"print_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "print_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "STRING",
"value": ","
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "print_item"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
"print_item": {
"type": "SYMBOL",
"name": "expression"
},
"let_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[Ll][Ee][Tt]"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"input_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ii][Nn][Pp][Uu][Tt]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variable"
}
]
}
}
]
}
]
},
"read_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Rr][Ee][Aa][Dd]"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variable"
}
]
}
}
]
}
]
},
"data_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Dd][Aa][Tt][Aa]"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
}
}
]
}
]
},
"restore_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Rr][Ee][Ss][Tt][Oo][Rr][Ee]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "BLANK"
}
]
}
]
},
"goto_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Gg][Oo][Tt][Oo]"
},
{
"type": "SYMBOL",
"name": "line_number"
}
]
},
"gosub_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Gg][Oo][Ss][Uu][Bb]"
},
{
"type": "SYMBOL",
"name": "line_number"
}
]
},
"return_statement": {
"type": "PATTERN",
"value": "[Rr][Ee][Tt][Uu][Rr][Nn]"
},
"on_goto_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Oo][Nn]"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[Gg][Oo][Tt][Oo]"
},
{
"type": "PATTERN",
"value": "[Gg][Oo][Ss][Uu][Bb]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "line_number"
}
]
}
}
]
}
]
},
"for_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ff][Oo][Rr]"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Tt][Oo]"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ss][Tt][Ee][Pp]"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"next_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Nn][Ee][Xx][Tt]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variable"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"if_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ii][Ff]"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "PATTERN",
"value": "[Tt][Hh][Ee][Nn]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "SYMBOL",
"name": "statement_list"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ee][Ll][Ss][Ee]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "SYMBOL",
"name": "statement_list"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"dim_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Dd][Ii][Mm]"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "dim_variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "dim_variable"
}
]
}
}
]
}
]
},
"dim_variable": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_sigil"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"def_fn_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Dd][Ee][Ff]"
},
{
"type": "SYMBOL",
"name": "user_function"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variable"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"end_statement": {
"type": "PATTERN",
"value": "[Ee][Nn][Dd]"
},
"stop_statement": {
"type": "PATTERN",
"value": "[Ss][Tt][Oo][Pp]"
},
"poke_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Pp][Oo][Kk][Ee]"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"clear_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Cc][Ll][Ee][Aa][Rr]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "BLANK"
}
]
}
]
},
"cont_statement": {
"type": "PATTERN",
"value": "[Cc][Oo][Nn][Tt]"
},
"list_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ll][Ii][Ss][Tt]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"run_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Rr][Uu][Nn]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line_number"
},
{
"type": "BLANK"
}
]
}
]
},
"new_statement": {
"type": "PATTERN",
"value": "[Nn][Ee][Ww]"
},
"load_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ll][Oo][Aa][Dd]"
},
{
"type": "SYMBOL",
"name": "string_literal"
}
]
},
"save_statement": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Ss][Aa][Vv][Ee]"
},
{
"type": "SYMBOL",
"name": "string_literal"
}
]
},
"usr_call": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[Uu][Ss][Rr]"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "print_statement"
},
{
"type": "SYMBOL",
"name": "let_statement"
},
{
"type": "SYMBOL",
"name": "input_statement"
},
{
"type": "SYMBOL",
"name": "read_statement"
},
{
"type": "SYMBOL",
"name": "data_statement"
},
{
"type": "SYMBOL",
"name": "restore_statement"
},
{
"type": "SYMBOL",
"name": "goto_statement"
},
{
"type": "SYMBOL",
"name": "gosub_statement"
},
{
"type": "SYMBOL",
"name": "return_statement"
},
{
"type": "SYMBOL",
"name": "on_goto_statement"
},
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "next_statement"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "dim_statement"
},
{
"type": "SYMBOL",
"name": "def_fn_statement"
},
{
"type": "SYMBOL",
"name": "end_statement"
},
{
"type": "SYMBOL",
"name": "stop_statement"
},
{
"type": "SYMBOL",
"name": "poke_statement"
},
{
"type": "SYMBOL",
"name": "clear_statement"
},
{
"type": "SYMBOL",
"name": "cont_statement"
},
{
"type": "SYMBOL",
"name": "list_statement"
},
{
"type": "SYMBOL",
"name": "run_statement"
},
{
"type": "SYMBOL",
"name": "new_statement"
},
{
"type": "SYMBOL",
"name": "load_statement"
},
{
"type": "SYMBOL",
"name": "save_statement"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "[ \\t]"
}
],
"conflicts": [
[
"statement_list"
],
[
"if_statement"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}