[ { "type": "_expression", "named": true, "subtypes": [ { "type": "absent", "named": true }, { "type": "array_comprehension", "named": true }, { "type": "array_literal", "named": true }, { "type": "boolean_literal", "named": true }, { "type": "call", "named": true }, { "type": "float_literal", "named": true }, { "type": "generator_call", "named": true }, { "type": "identifier", "named": true }, { "type": "if_then_else", "named": true }, { "type": "indexed_access", "named": true }, { "type": "infix_operator", "named": true }, { "type": "integer_literal", "named": true }, { "type": "parenthesised_expression", "named": true }, { "type": "prefix_operator", "named": true }, { "type": "set_comprehension", "named": true }, { "type": "set_literal", "named": true }, { "type": "string_interpolation", "named": true }, { "type": "string_literal", "named": true } ] }, { "type": "_item", "named": true, "subtypes": [ { "type": "assignment", "named": true }, { "type": "constraint", "named": true }, { "type": "goal", "named": true }, { "type": "include", "named": true }, { "type": "output", "named": true } ] }, { "type": "array_comprehension", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "generator", "named": true } ] } }, { "type": "array_literal", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "assignment", "named": true, "fields": { "expr": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "boolean_literal", "named": true, "fields": {} }, { "type": "call", "named": true, "fields": { "arguments": { "multiple": true, "required": false, "types": [ { "type": ",", "named": false }, { "type": "_expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "constraint", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "content", "named": false, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true } ] } }, { "type": "generator", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "generator_call", "named": true, "fields": { "generators": { "multiple": true, "required": true, "types": [ { "type": ",", "named": false }, { "type": "generator", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "template": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "goal", "named": true, "fields": { "strategy": { "multiple": true, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "maximize", "named": false }, { "type": "minimize", "named": false }, { "type": "satisfy", "named": false } ] } } }, { "type": "if_then_else", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "include", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "string_literal", "named": true } ] } }, { "type": "indexed_access", "named": true, "fields": { "collection": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "indices": { "multiple": true, "required": true, "types": [ { "type": ",", "named": false }, { "type": "_expression", "named": true } ] } } }, { "type": "infix_operator", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "!=", "named": false }, { "type": "*", "named": false }, { "type": "+", "named": false }, { "type": "++", "named": false }, { "type": "-", "named": false }, { "type": "->", "named": false }, { "type": "..", "named": false }, { "type": "/", "named": false }, { "type": "/\\", "named": false }, { "type": "::", "named": false }, { "type": "<", "named": false }, { "type": "<-", "named": false }, { "type": "<->", "named": false }, { "type": "<=", "named": false }, { "type": "=", "named": false }, { "type": "==", "named": false }, { "type": ">", "named": false }, { "type": ">=", "named": false }, { "type": "\\/", "named": false }, { "type": "^", "named": false }, { "type": "diff", "named": false }, { "type": "div", "named": false }, { "type": "in", "named": false }, { "type": "intersect", "named": false }, { "type": "mod", "named": false }, { "type": "subset", "named": false }, { "type": "superset", "named": false }, { "type": "symdiff", "named": false }, { "type": "union", "named": false }, { "type": "xor", "named": false } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "output", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "parenthesised_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "prefix_operator", "named": true, "fields": { "operator": { "multiple": false, "required": true, "types": [ { "type": "-", "named": false }, { "type": "not", "named": false }, { "type": "¬", "named": false } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "set_comprehension", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "generator", "named": true } ] } }, { "type": "set_literal", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "source_file", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "_item", "named": true } ] } }, { "type": "string_content", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true } ] } }, { "type": "string_interpolation", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "string_content", "named": true } ] } }, { "type": "string_literal", "named": true, "fields": {} }, { "type": "!=", "named": false }, { "type": "\"", "named": false }, { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "*", "named": false }, { "type": "+", "named": false }, { "type": "++", "named": false }, { "type": ",", "named": false }, { "type": "-", "named": false }, { "type": "->", "named": false }, { "type": "..", "named": false }, { "type": "/", "named": false }, { "type": "/\\", "named": false }, { "type": "::", "named": false }, { "type": ";", "named": false }, { "type": "<", "named": false }, { "type": "<-", "named": false }, { "type": "<->", "named": false }, { "type": "<=", "named": false }, { "type": "=", "named": false }, { "type": "==", "named": false }, { "type": ">", "named": false }, { "type": ">=", "named": false }, { "type": "[", "named": false }, { "type": "\\(", "named": false }, { "type": "\\/", "named": false }, { "type": "]", "named": false }, { "type": "^", "named": false }, { "type": "absent", "named": true }, { "type": "constraint", "named": false }, { "type": "diff", "named": false }, { "type": "div", "named": false }, { "type": "else", "named": false }, { "type": "elseif", "named": false }, { "type": "endif", "named": false }, { "type": "escape_sequence", "named": true }, { "type": "false", "named": false }, { "type": "float_literal", "named": true }, { "type": "identifier", "named": true }, { "type": "if", "named": false }, { "type": "in", "named": false }, { "type": "include", "named": false }, { "type": "integer_literal", "named": true }, { "type": "intersect", "named": false }, { "type": "maximize", "named": false }, { "type": "minimize", "named": false }, { "type": "mod", "named": false }, { "type": "not", "named": false }, { "type": "output", "named": false }, { "type": "satisfy", "named": false }, { "type": "solve", "named": false }, { "type": "subset", "named": false }, { "type": "superset", "named": false }, { "type": "symdiff", "named": false }, { "type": "then", "named": false }, { "type": "true", "named": false }, { "type": "union", "named": false }, { "type": "where", "named": false }, { "type": "xor", "named": false }, { "type": "{", "named": false }, { "type": "|", "named": false }, { "type": "}", "named": false }, { "type": "¬", "named": false } ]