{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Array_of_Statement", "type": "array", "items": { "$ref": "#/definitions/Statement" }, "definitions": { "AbstractConstructor": { "type": "object", "required": [ "attributes", "comments", "function", "modifiers", "name", "parameters", "semicolon" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "comments": { "$ref": "#/definitions/CommentGroup" }, "function": { "$ref": "#/definitions/Span" }, "modifiers": { "$ref": "#/definitions/MethodModifierGroup" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "parameters": { "$ref": "#/definitions/FunctionParameterList" }, "semicolon": { "$ref": "#/definitions/Span" } } }, "AbstractMethod": { "type": "object", "required": [ "attributes", "comments", "function", "modifiers", "name", "parameters", "semicolon" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "comments": { "$ref": "#/definitions/CommentGroup" }, "function": { "$ref": "#/definitions/Span" }, "modifiers": { "$ref": "#/definitions/MethodModifierGroup" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "parameters": { "$ref": "#/definitions/FunctionParameterList" }, "return_type": { "anyOf": [ { "$ref": "#/definitions/ReturnType" }, { "type": "null" } ] }, "semicolon": { "$ref": "#/definitions/Span" } } }, "AnonymousClassBody": { "type": "object", "required": [ "left_brace", "members", "right_brace" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/AnonymousClassMember" } }, "right_brace": { "$ref": "#/definitions/Span" } } }, "AnonymousClassExpression": { "type": "object", "required": [ "attributes", "body", "class" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/AnonymousClassBody" }, "class": { "$ref": "#/definitions/Span" }, "extends": { "anyOf": [ { "$ref": "#/definitions/ClassExtends" }, { "type": "null" } ] }, "implements": { "anyOf": [ { "$ref": "#/definitions/ClassImplements" }, { "type": "null" } ] } } }, "AnonymousClassMember": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ClassishConstant" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "TraitUsage" ] }, "value": { "$ref": "#/definitions/TraitUsage" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Property" ] }, "value": { "$ref": "#/definitions/Property" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "VariableProperty" ] }, "value": { "$ref": "#/definitions/VariableProperty" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConcreteMethod" ] }, "value": { "$ref": "#/definitions/ConcreteMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConcreteConstructor" ] }, "value": { "$ref": "#/definitions/ConcreteConstructor" } } } ] }, "Argument": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Positional" ] }, "value": { "$ref": "#/definitions/PositionalArgument" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Named" ] }, "value": { "$ref": "#/definitions/NamedArgument" } } } ] }, "ArgumentList": { "type": "object", "required": [ "arguments", "comments", "left_parenthesis", "right_parenthesis" ], "properties": { "arguments": { "type": "array", "items": { "$ref": "#/definitions/Argument" } }, "comments": { "$ref": "#/definitions/CommentGroup" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "ArgumentPlaceholder": { "type": "object", "required": [ "comments", "ellipsis", "left_parenthesis", "right_parenthesis" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "ellipsis": { "$ref": "#/definitions/Span" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "ArithmeticOperationExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Addition" ] }, "value": { "type": "object", "required": [ "left", "plus", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "plus": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Subtraction" ] }, "value": { "type": "object", "required": [ "left", "minus", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "minus": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Multiplication" ] }, "value": { "type": "object", "required": [ "asterisk", "left", "right" ], "properties": { "asterisk": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Division" ] }, "value": { "type": "object", "required": [ "left", "right", "slash" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "slash": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Modulo" ] }, "value": { "type": "object", "required": [ "left", "percent", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "percent": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Exponentiation" ] }, "value": { "type": "object", "required": [ "left", "pow", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "pow": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Negative" ] }, "value": { "type": "object", "required": [ "minus", "right" ], "properties": { "minus": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Positive" ] }, "value": { "type": "object", "required": [ "plus", "right" ], "properties": { "plus": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "PreIncrement" ] }, "value": { "type": "object", "required": [ "increment", "right" ], "properties": { "increment": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "PostIncrement" ] }, "value": { "type": "object", "required": [ "increment", "left" ], "properties": { "increment": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "PreDecrement" ] }, "value": { "type": "object", "required": [ "decrement", "right" ], "properties": { "decrement": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "PostDecrement" ] }, "value": { "type": "object", "required": [ "decrement", "left" ], "properties": { "decrement": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" } } } } } ] }, "ArrayExpression": { "type": "object", "required": [ "array", "end", "items", "start" ], "properties": { "array": { "$ref": "#/definitions/Span" }, "end": { "$ref": "#/definitions/Span" }, "items": { "$ref": "#/definitions/CommaSeparated_for_ArrayItem" }, "start": { "$ref": "#/definitions/Span" } } }, "ArrayIndexExpression": { "type": "object", "required": [ "array", "left_bracket", "right_bracket" ], "properties": { "array": { "$ref": "#/definitions/Expression" }, "index": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] }, "left_bracket": { "$ref": "#/definitions/Span" }, "right_bracket": { "$ref": "#/definitions/Span" } } }, "ArrayItem": { "oneOf": [ { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Skipped" ] } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Value" ] }, "value": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ReferencedValue" ] }, "value": { "type": "object", "required": [ "ampersand", "value" ], "properties": { "ampersand": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "SpreadValue" ] }, "value": { "type": "object", "required": [ "ellipsis", "value" ], "properties": { "ellipsis": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "KeyValue" ] }, "value": { "type": "object", "required": [ "double_arrow", "key", "value" ], "properties": { "double_arrow": { "$ref": "#/definitions/Span" }, "key": { "$ref": "#/definitions/Expression" }, "value": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ReferencedKeyValue" ] }, "value": { "type": "object", "required": [ "ampersand", "double_arrow", "key", "value" ], "properties": { "ampersand": { "$ref": "#/definitions/Span" }, "double_arrow": { "$ref": "#/definitions/Span" }, "key": { "$ref": "#/definitions/Expression" }, "value": { "$ref": "#/definitions/Expression" } } } } } ] }, "ArrowFunctionBlockBody": { "type": "object", "required": [ "left_brace", "right_brace", "statements" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "ArrowFunctionBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "$ref": "#/definitions/ArrowFunctionBlockBody" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Expression" ] }, "value": { "$ref": "#/definitions/ArrowFunctionExpressionBody" } } } ] }, "ArrowFunctionExpression": { "type": "object", "required": [ "attributes", "body", "comments", "fn", "parameters" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/ArrowFunctionBody" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "fn": { "$ref": "#/definitions/Span" }, "parameters": { "$ref": "#/definitions/FunctionParameterList" }, "return_type": { "anyOf": [ { "$ref": "#/definitions/ReturnType" }, { "type": "null" } ] }, "static": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] } } }, "ArrowFunctionExpressionBody": { "type": "object", "required": [ "double_arrow", "expression" ], "properties": { "double_arrow": { "$ref": "#/definitions/Span" }, "expression": { "$ref": "#/definitions/Expression" } } }, "AssignmentOperationExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Assign" ] }, "value": { "type": "object", "required": [ "equals", "left", "right" ], "properties": { "equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Addition" ] }, "value": { "type": "object", "required": [ "left", "plus_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "plus_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Subtraction" ] }, "value": { "type": "object", "required": [ "left", "minus_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "minus_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Multiplication" ] }, "value": { "type": "object", "required": [ "asterisk_equals", "left", "right" ], "properties": { "asterisk_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Division" ] }, "value": { "type": "object", "required": [ "left", "right", "slash_equals" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "slash_equals": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Modulo" ] }, "value": { "type": "object", "required": [ "left", "percent_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "percent_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Exponentiation" ] }, "value": { "type": "object", "required": [ "left", "pow_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "pow_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Concat" ] }, "value": { "type": "object", "required": [ "dot_equals", "left", "right" ], "properties": { "dot_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "BitwiseAnd" ] }, "value": { "type": "object", "required": [ "ampersand_equals", "left", "right" ], "properties": { "ampersand_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "BitwiseOr" ] }, "value": { "type": "object", "required": [ "left", "pipe_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "pipe_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "BitwiseXor" ] }, "value": { "type": "object", "required": [ "caret_equals", "left", "right" ], "properties": { "caret_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LeftShift" ] }, "value": { "type": "object", "required": [ "left", "left_shift_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "left_shift_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "RightShift" ] }, "value": { "type": "object", "required": [ "left", "right", "right_shift_equals" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "right_shift_equals": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Coalesce" ] }, "value": { "type": "object", "required": [ "coalesce_equals", "left", "right" ], "properties": { "coalesce_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } } ] }, "Attribute": { "type": "object", "required": [ "end", "name", "start" ], "properties": { "arguments": { "anyOf": [ { "$ref": "#/definitions/ArgumentList" }, { "type": "null" } ] }, "end": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "start": { "$ref": "#/definitions/Span" } } }, "AttributeGroup": { "type": "object", "required": [ "end", "members", "start" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/Attribute" } }, "start": { "$ref": "#/definitions/Span" } } }, "BackedEnumBody": { "type": "object", "required": [ "left_brace", "members", "right_brace" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/BackedEnumMember" } }, "right_brace": { "$ref": "#/definitions/Span" } } }, "BackedEnumCase": { "type": "object", "required": [ "attributes", "case", "equals", "name", "semicolon", "value" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "case": { "$ref": "#/definitions/Span" }, "equals": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "semicolon": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/Expression" } } }, "BackedEnumMember": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Case" ] }, "value": { "$ref": "#/definitions/BackedEnumCase" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Method" ] }, "value": { "$ref": "#/definitions/ConcreteMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ClassishConstant" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "TraitUsage" ] }, "value": { "$ref": "#/definitions/TraitUsage" } } } ] }, "BackedEnumStatement": { "type": "object", "required": [ "attributes", "backed_type", "body", "enum", "implements", "name" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "backed_type": { "$ref": "#/definitions/BackedEnumType" }, "body": { "$ref": "#/definitions/BackedEnumBody" }, "enum": { "$ref": "#/definitions/Span" }, "implements": { "type": "array", "items": { "$ref": "#/definitions/SimpleIdentifier" } }, "name": { "$ref": "#/definitions/SimpleIdentifier" } } }, "BackedEnumType": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "String" ] }, "value": { "type": "array", "items": [ { "$ref": "#/definitions/Span" }, { "$ref": "#/definitions/Span" } ], "maxItems": 2, "minItems": 2 } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Int" ] }, "value": { "type": "array", "items": [ { "$ref": "#/definitions/Span" }, { "$ref": "#/definitions/Span" } ], "maxItems": 2, "minItems": 2 } } } ] }, "BitwiseOperationExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "And" ] }, "value": { "type": "object", "required": [ "and", "left", "right" ], "properties": { "and": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Or" ] }, "value": { "type": "object", "required": [ "left", "or", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "or": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Xor" ] }, "value": { "type": "object", "required": [ "left", "right", "xor" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "xor": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LeftShift" ] }, "value": { "type": "object", "required": [ "left", "left_shift", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "left_shift": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "RightShift" ] }, "value": { "type": "object", "required": [ "left", "right", "right_shift" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "right_shift": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Not" ] }, "value": { "type": "object", "required": [ "not", "right" ], "properties": { "not": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } } ] }, "BlockStatement": { "type": "object", "required": [ "left_brace", "right_brace", "statements" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "BoolExpression": { "type": "object", "required": [ "value" ], "properties": { "value": { "type": "boolean" } } }, "BracedNamespace": { "type": "object", "required": [ "body", "namespace" ], "properties": { "body": { "$ref": "#/definitions/BracedNamespaceBody" }, "name": { "anyOf": [ { "$ref": "#/definitions/SimpleIdentifier" }, { "type": "null" } ] }, "namespace": { "$ref": "#/definitions/Span" } } }, "BracedNamespaceBody": { "type": "object", "required": [ "end", "start", "statements" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "start": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "BracedVariableVariable": { "type": "object", "required": [ "end", "start", "variable" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "start": { "$ref": "#/definitions/Span" }, "variable": { "$ref": "#/definitions/Expression" } } }, "BreakStatement": { "type": "object", "required": [ "break", "ending" ], "properties": { "break": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "level": { "anyOf": [ { "$ref": "#/definitions/Level" }, { "type": "null" } ] } } }, "ByteString": { "type": "string", "format": "byte-string" }, "Case": { "type": "object", "required": [ "body" ], "properties": { "body": { "type": "array", "items": { "$ref": "#/definitions/Statement" } }, "condition": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] } } }, "CastExpression": { "type": "object", "required": [ "cast", "kind", "value" ], "properties": { "cast": { "$ref": "#/definitions/Span" }, "kind": { "$ref": "#/definitions/CastKind" }, "value": { "$ref": "#/definitions/Expression" } } }, "CastKind": { "oneOf": [ { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Int" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Bool" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Float" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "String" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Array" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Object" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Unset" ] } } } ] }, "CatchBlock": { "type": "object", "required": [ "body", "end", "start", "types" ], "properties": { "body": { "type": "array", "items": { "$ref": "#/definitions/Statement" } }, "end": { "$ref": "#/definitions/Span" }, "start": { "$ref": "#/definitions/Span" }, "types": { "$ref": "#/definitions/CatchType" }, "var": { "anyOf": [ { "$ref": "#/definitions/SimpleVariable" }, { "type": "null" } ] } } }, "CatchType": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Identifier" ] }, "value": { "type": "object", "required": [ "identifier" ], "properties": { "identifier": { "$ref": "#/definitions/SimpleIdentifier" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Union" ] }, "value": { "type": "object", "required": [ "identifiers" ], "properties": { "identifiers": { "type": "array", "items": { "$ref": "#/definitions/SimpleIdentifier" } } } } } } ] }, "ClassBody": { "type": "object", "required": [ "left_brace", "members", "right_brace" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/ClassMember" } }, "right_brace": { "$ref": "#/definitions/Span" } } }, "ClassExtends": { "type": "object", "required": [ "extends", "parent" ], "properties": { "extends": { "$ref": "#/definitions/Span" }, "parent": { "$ref": "#/definitions/SimpleIdentifier" } } }, "ClassImplements": { "type": "object", "required": [ "implements", "interfaces" ], "properties": { "implements": { "$ref": "#/definitions/Span" }, "interfaces": { "$ref": "#/definitions/CommaSeparated_for_SimpleIdentifier" } } }, "ClassMember": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ClassishConstant" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "TraitUsage" ] }, "value": { "$ref": "#/definitions/TraitUsage" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Property" ] }, "value": { "$ref": "#/definitions/Property" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "VariableProperty" ] }, "value": { "$ref": "#/definitions/VariableProperty" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AbstractMethod" ] }, "value": { "$ref": "#/definitions/AbstractMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AbstractConstructor" ] }, "value": { "$ref": "#/definitions/AbstractConstructor" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConcreteMethod" ] }, "value": { "$ref": "#/definitions/ConcreteMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConcreteConstructor" ] }, "value": { "$ref": "#/definitions/ConcreteConstructor" } } } ] }, "ClassModifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Final" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Abstract" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Readonly" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "ClassModifierGroup": { "type": "object", "required": [ "modifiers" ], "properties": { "modifiers": { "type": "array", "items": { "$ref": "#/definitions/ClassModifier" } } } }, "ClassStatement": { "type": "object", "required": [ "attributes", "body", "class", "modifiers", "name" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/ClassBody" }, "class": { "$ref": "#/definitions/Span" }, "extends": { "anyOf": [ { "$ref": "#/definitions/ClassExtends" }, { "type": "null" } ] }, "implements": { "anyOf": [ { "$ref": "#/definitions/ClassImplements" }, { "type": "null" } ] }, "modifiers": { "$ref": "#/definitions/ClassModifierGroup" }, "name": { "$ref": "#/definitions/SimpleIdentifier" } } }, "ClassishConstant": { "type": "object", "required": [ "attributes", "comments", "const", "entries", "modifiers", "semicolon" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "comments": { "$ref": "#/definitions/CommentGroup" }, "const": { "$ref": "#/definitions/Span" }, "entries": { "type": "array", "items": { "$ref": "#/definitions/ConstantEntry" } }, "modifiers": { "$ref": "#/definitions/ConstantModifierGroup" }, "semicolon": { "$ref": "#/definitions/Span" } } }, "CloneExpression": { "type": "object", "required": [ "target" ], "properties": { "target": { "$ref": "#/definitions/Expression" } } }, "ClosingTagStatement": { "type": "object", "required": [ "span" ], "properties": { "span": { "$ref": "#/definitions/Span" } } }, "ClosureExpression": { "type": "object", "required": [ "attributes", "body", "comments", "function", "parameters" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/FunctionBody" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "function": { "$ref": "#/definitions/Span" }, "parameters": { "$ref": "#/definitions/FunctionParameterList" }, "return_type": { "anyOf": [ { "$ref": "#/definitions/ReturnType" }, { "type": "null" } ] }, "static": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "uses": { "anyOf": [ { "$ref": "#/definitions/ClosureUse" }, { "type": "null" } ] } } }, "ClosureUse": { "type": "object", "required": [ "comments", "left_parenthesis", "right_parenthesis", "use", "variables" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" }, "use": { "$ref": "#/definitions/Span" }, "variables": { "$ref": "#/definitions/CommaSeparated_for_ClosureUseVariable" } } }, "ClosureUseVariable": { "type": "object", "required": [ "comments", "variable" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "comments": { "$ref": "#/definitions/CommentGroup" }, "variable": { "$ref": "#/definitions/SimpleVariable" } } }, "CoalesceExpression": { "type": "object", "required": [ "double_question", "lhs", "rhs" ], "properties": { "double_question": { "$ref": "#/definitions/Span" }, "lhs": { "$ref": "#/definitions/Expression" }, "rhs": { "$ref": "#/definitions/Expression" } } }, "CommaSeparated_for_ArrayItem": { "type": "object", "required": [ "commas", "inner" ], "properties": { "commas": { "type": "array", "items": { "$ref": "#/definitions/Span" } }, "inner": { "type": "array", "items": { "$ref": "#/definitions/ArrayItem" } } } }, "CommaSeparated_for_ClosureUseVariable": { "type": "object", "required": [ "commas", "inner" ], "properties": { "commas": { "type": "array", "items": { "$ref": "#/definitions/Span" } }, "inner": { "type": "array", "items": { "$ref": "#/definitions/ClosureUseVariable" } } } }, "CommaSeparated_for_ConstructorParameter": { "type": "object", "required": [ "commas", "inner" ], "properties": { "commas": { "type": "array", "items": { "$ref": "#/definitions/Span" } }, "inner": { "type": "array", "items": { "$ref": "#/definitions/ConstructorParameter" } } } }, "CommaSeparated_for_Expression": { "type": "object", "required": [ "commas", "inner" ], "properties": { "commas": { "type": "array", "items": { "$ref": "#/definitions/Span" } }, "inner": { "type": "array", "items": { "$ref": "#/definitions/Expression" } } } }, "CommaSeparated_for_FunctionParameter": { "type": "object", "required": [ "commas", "inner" ], "properties": { "commas": { "type": "array", "items": { "$ref": "#/definitions/Span" } }, "inner": { "type": "array", "items": { "$ref": "#/definitions/FunctionParameter" } } } }, "CommaSeparated_for_SimpleIdentifier": { "type": "object", "required": [ "commas", "inner" ], "properties": { "commas": { "type": "array", "items": { "$ref": "#/definitions/Span" } }, "inner": { "type": "array", "items": { "$ref": "#/definitions/SimpleIdentifier" } } } }, "Comment": { "type": "object", "required": [ "content", "format", "span" ], "properties": { "content": { "$ref": "#/definitions/ByteString" }, "format": { "$ref": "#/definitions/CommentFormat" }, "span": { "$ref": "#/definitions/Span" } } }, "CommentFormat": { "oneOf": [ { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "SingleLine" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "MultiLine" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "HashMark" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Document" ] } } } ] }, "CommentGroup": { "type": "object", "required": [ "comments" ], "properties": { "comments": { "type": "array", "items": { "$ref": "#/definitions/Comment" } } } }, "ComparisonOperationExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Equal" ] }, "value": { "type": "object", "required": [ "double_equals", "left", "right" ], "properties": { "double_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Identical" ] }, "value": { "type": "object", "required": [ "left", "right", "triple_equals" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "triple_equals": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "NotEqual" ] }, "value": { "type": "object", "required": [ "bang_equals", "left", "right" ], "properties": { "bang_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AngledNotEqual" ] }, "value": { "type": "object", "required": [ "angled_left_right", "left", "right" ], "properties": { "angled_left_right": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "NotIdentical" ] }, "value": { "type": "object", "required": [ "bang_double_equals", "left", "right" ], "properties": { "bang_double_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LessThan" ] }, "value": { "type": "object", "required": [ "left", "less_than", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "less_than": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "GreaterThan" ] }, "value": { "type": "object", "required": [ "greater_than", "left", "right" ], "properties": { "greater_than": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LessThanOrEqual" ] }, "value": { "type": "object", "required": [ "left", "less_than_equals", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "less_than_equals": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "GreaterThanOrEqual" ] }, "value": { "type": "object", "required": [ "greater_than_equals", "left", "right" ], "properties": { "greater_than_equals": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Spaceship" ] }, "value": { "type": "object", "required": [ "left", "right", "spaceship" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "spaceship": { "$ref": "#/definitions/Span" } } } } } ] }, "ConcatExpression": { "type": "object", "required": [ "dot", "left", "right" ], "properties": { "dot": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } }, "ConcreteConstructor": { "type": "object", "required": [ "attributes", "body", "comments", "function", "modifiers", "name", "parameters" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/MethodBody" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "function": { "$ref": "#/definitions/Span" }, "modifiers": { "$ref": "#/definitions/MethodModifierGroup" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "parameters": { "$ref": "#/definitions/ConstructorParameterList" } } }, "ConcreteMethod": { "type": "object", "required": [ "attributes", "body", "comments", "function", "modifiers", "name", "parameters" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/MethodBody" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "function": { "$ref": "#/definitions/Span" }, "modifiers": { "$ref": "#/definitions/MethodModifierGroup" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "parameters": { "$ref": "#/definitions/FunctionParameterList" }, "return_type": { "anyOf": [ { "$ref": "#/definitions/ReturnType" }, { "type": "null" } ] } } }, "ConstantEntry": { "type": "object", "required": [ "equals", "name", "value" ], "properties": { "equals": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "value": { "$ref": "#/definitions/Expression" } } }, "ConstantFetchExpression": { "type": "object", "required": [ "constant", "double_colon", "target" ], "properties": { "constant": { "$ref": "#/definitions/Identifier" }, "double_colon": { "$ref": "#/definitions/Span" }, "target": { "$ref": "#/definitions/Expression" } } }, "ConstantModifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Final" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Public" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Protected" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Private" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "ConstantModifierGroup": { "type": "object", "required": [ "modifiers" ], "properties": { "modifiers": { "type": "array", "items": { "$ref": "#/definitions/ConstantModifier" } } } }, "ConstantStatement": { "type": "object", "required": [ "comments", "const", "entries", "semicolon" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "const": { "$ref": "#/definitions/Span" }, "entries": { "type": "array", "items": { "$ref": "#/definitions/ConstantEntry" } }, "semicolon": { "$ref": "#/definitions/Span" } } }, "ConstructorParameter": { "type": "object", "required": [ "attributes", "comments", "modifiers", "name" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "comments": { "$ref": "#/definitions/CommentGroup" }, "data_type": { "anyOf": [ { "$ref": "#/definitions/Type" }, { "type": "null" } ] }, "default": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] }, "ellipsis": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "modifiers": { "$ref": "#/definitions/PromotedPropertyModifierGroup" }, "name": { "$ref": "#/definitions/SimpleVariable" } } }, "ConstructorParameterList": { "type": "object", "required": [ "comments", "left_parenthesis", "parameters", "right_parenthesis" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "parameters": { "$ref": "#/definitions/CommaSeparated_for_ConstructorParameter" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "ContinueStatement": { "type": "object", "required": [ "continue", "ending" ], "properties": { "continue": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "level": { "anyOf": [ { "$ref": "#/definitions/Level" }, { "type": "null" } ] } } }, "DeclareBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Noop" ] }, "value": { "type": "object", "required": [ "semicolon" ], "properties": { "semicolon": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Braced" ] }, "value": { "type": "object", "required": [ "left_brace", "right_brace", "statements" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Expression" ] }, "value": { "type": "object", "required": [ "expression", "semicolon" ], "properties": { "expression": { "$ref": "#/definitions/Expression" }, "semicolon": { "$ref": "#/definitions/Span" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "type": "object", "required": [ "colon", "end", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "end": { "type": "array", "items": [ { "$ref": "#/definitions/Span" }, { "$ref": "#/definitions/Span" } ], "maxItems": 2, "minItems": 2 }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } } ] }, "DeclareEntry": { "type": "object", "required": [ "equals", "key", "value" ], "properties": { "equals": { "$ref": "#/definitions/Span" }, "key": { "$ref": "#/definitions/SimpleIdentifier" }, "value": { "$ref": "#/definitions/Literal" } } }, "DeclareEntryGroup": { "type": "object", "required": [ "entries", "left_parenthesis", "right_parenthesis" ], "properties": { "entries": { "type": "array", "items": { "$ref": "#/definitions/DeclareEntry" } }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "DeclareStatement": { "type": "object", "required": [ "body", "declare", "entries" ], "properties": { "body": { "$ref": "#/definitions/DeclareBody" }, "declare": { "$ref": "#/definitions/Span" }, "entries": { "$ref": "#/definitions/DeclareEntryGroup" } } }, "DefaultMatchArm": { "type": "object", "required": [ "body", "double_arrow", "keyword" ], "properties": { "body": { "$ref": "#/definitions/MatchArmBody" }, "double_arrow": { "$ref": "#/definitions/Span" }, "keyword": { "$ref": "#/definitions/Span" } } }, "DieExpression": { "type": "object", "required": [ "die" ], "properties": { "argument": { "anyOf": [ { "$ref": "#/definitions/SingleArgument" }, { "type": "null" } ] }, "die": { "$ref": "#/definitions/Span" } } }, "DoWhileStatement": { "type": "object", "required": [ "body", "condition", "do", "left_parenthesis", "right_parenthesis", "semicolon", "while" ], "properties": { "body": { "$ref": "#/definitions/Statement" }, "condition": { "$ref": "#/definitions/Expression" }, "do": { "$ref": "#/definitions/Span" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" }, "semicolon": { "$ref": "#/definitions/Span" }, "while": { "$ref": "#/definitions/Span" } } }, "DynamicIdentifier": { "type": "object", "required": [ "end", "expr", "start" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "expr": { "$ref": "#/definitions/Expression" }, "start": { "$ref": "#/definitions/Span" } } }, "EchoOpeningTagStatement": { "type": "object", "required": [ "span" ], "properties": { "span": { "$ref": "#/definitions/Span" } } }, "EchoStatement": { "type": "object", "required": [ "echo", "ending", "values" ], "properties": { "echo": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "values": { "type": "array", "items": { "$ref": "#/definitions/Expression" } } } }, "EmptyExpression": { "type": "object", "required": [ "argument", "empty" ], "properties": { "argument": { "$ref": "#/definitions/SingleArgument" }, "empty": { "$ref": "#/definitions/Span" } } }, "Ending": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Semicolon" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "CloseTag" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "ErrorSuppressExpression": { "type": "object", "required": [ "at", "expr" ], "properties": { "at": { "$ref": "#/definitions/Span" }, "expr": { "$ref": "#/definitions/Expression" } } }, "EvalExpression": { "type": "object", "required": [ "argument", "eval" ], "properties": { "argument": { "$ref": "#/definitions/SingleArgument" }, "eval": { "$ref": "#/definitions/Span" } } }, "ExitExpression": { "type": "object", "required": [ "exit" ], "properties": { "argument": { "anyOf": [ { "$ref": "#/definitions/SingleArgument" }, { "type": "null" } ] }, "exit": { "$ref": "#/definitions/Span" } } }, "Expression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Eval" ] }, "value": { "$ref": "#/definitions/EvalExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Empty" ] }, "value": { "$ref": "#/definitions/EmptyExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Die" ] }, "value": { "$ref": "#/definitions/DieExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Exit" ] }, "value": { "$ref": "#/definitions/ExitExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Isset" ] }, "value": { "$ref": "#/definitions/IssetExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Unset" ] }, "value": { "$ref": "#/definitions/UnsetExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Print" ] }, "value": { "$ref": "#/definitions/PrintExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Literal" ] }, "value": { "$ref": "#/definitions/Literal" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ArithmeticOperation" ] }, "value": { "$ref": "#/definitions/ArithmeticOperationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AssignmentOperation" ] }, "value": { "$ref": "#/definitions/AssignmentOperationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "BitwiseOperation" ] }, "value": { "$ref": "#/definitions/BitwiseOperationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ComparisonOperation" ] }, "value": { "$ref": "#/definitions/ComparisonOperationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LogicalOperation" ] }, "value": { "$ref": "#/definitions/LogicalOperationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "RangeOperation" ] }, "value": { "$ref": "#/definitions/RangeOperationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Concat" ] }, "value": { "$ref": "#/definitions/ConcatExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Instanceof" ] }, "value": { "$ref": "#/definitions/InstanceofExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Reference" ] }, "value": { "$ref": "#/definitions/ReferenceExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Parenthesized" ] }, "value": { "$ref": "#/definitions/ParenthesizedExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ErrorSuppress" ] }, "value": { "$ref": "#/definitions/ErrorSuppressExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Identifier" ] }, "value": { "$ref": "#/definitions/Identifier" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Variable" ] }, "value": { "$ref": "#/definitions/Variable" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Include" ] }, "value": { "$ref": "#/definitions/IncludeExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "IncludeOnce" ] }, "value": { "$ref": "#/definitions/IncludeOnceExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Require" ] }, "value": { "$ref": "#/definitions/RequireExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "RequireOnce" ] }, "value": { "$ref": "#/definitions/RequireOnceExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "FunctionCall" ] }, "value": { "$ref": "#/definitions/FunctionCallExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "FunctionClosureCreation" ] }, "value": { "$ref": "#/definitions/FunctionClosureCreationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "MethodCall" ] }, "value": { "$ref": "#/definitions/MethodCallExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "MethodClosureCreation" ] }, "value": { "$ref": "#/definitions/MethodClosureCreationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "NullsafeMethodCall" ] }, "value": { "$ref": "#/definitions/NullsafeMethodCallExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "StaticMethodCall" ] }, "value": { "$ref": "#/definitions/StaticMethodCallExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "StaticVariableMethodCall" ] }, "value": { "$ref": "#/definitions/StaticVariableMethodCallExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "StaticMethodClosureCreation" ] }, "value": { "$ref": "#/definitions/StaticMethodClosureCreationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "StaticVariableMethodClosureCreation" ] }, "value": { "$ref": "#/definitions/StaticVariableMethodClosureCreationExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "PropertyFetch" ] }, "value": { "$ref": "#/definitions/PropertyFetchExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "NullsafePropertyFetch" ] }, "value": { "$ref": "#/definitions/NullsafePropertyFetchExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "StaticPropertyFetch" ] }, "value": { "$ref": "#/definitions/StaticPropertyFetchExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConstantFetch" ] }, "value": { "$ref": "#/definitions/ConstantFetchExpression" } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Static" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Self_" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Parent" ] } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ShortArray" ] }, "value": { "$ref": "#/definitions/ShortArrayExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Array" ] }, "value": { "$ref": "#/definitions/ArrayExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "List" ] }, "value": { "$ref": "#/definitions/ListExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Closure" ] }, "value": { "$ref": "#/definitions/ClosureExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ArrowFunction" ] }, "value": { "$ref": "#/definitions/ArrowFunctionExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "New" ] }, "value": { "$ref": "#/definitions/NewExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "InterpolatedString" ] }, "value": { "$ref": "#/definitions/InterpolatedStringExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Heredoc" ] }, "value": { "$ref": "#/definitions/HeredocExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Nowdoc" ] }, "value": { "$ref": "#/definitions/NowdocExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ShellExec" ] }, "value": { "$ref": "#/definitions/ShellExecExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AnonymousClass" ] }, "value": { "$ref": "#/definitions/AnonymousClassExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Bool" ] }, "value": { "$ref": "#/definitions/BoolExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ArrayIndex" ] }, "value": { "$ref": "#/definitions/ArrayIndexExpression" } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Null" ] } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "MagicConstant" ] }, "value": { "$ref": "#/definitions/MagicConstantExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ShortTernary" ] }, "value": { "$ref": "#/definitions/ShortTernaryExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Ternary" ] }, "value": { "$ref": "#/definitions/TernaryExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Coalesce" ] }, "value": { "$ref": "#/definitions/CoalesceExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Clone" ] }, "value": { "$ref": "#/definitions/CloneExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Match" ] }, "value": { "$ref": "#/definitions/MatchExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ShortMatch" ] }, "value": { "$ref": "#/definitions/ShortMatchExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Throw" ] }, "value": { "$ref": "#/definitions/ThrowExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Yield" ] }, "value": { "$ref": "#/definitions/YieldExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "YieldFrom" ] }, "value": { "$ref": "#/definitions/YieldFromExpression" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Cast" ] }, "value": { "$ref": "#/definitions/CastExpression" } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Noop" ] } } } ] }, "ExpressionStatement": { "type": "object", "required": [ "ending", "expression" ], "properties": { "ending": { "$ref": "#/definitions/Ending" }, "expression": { "$ref": "#/definitions/Expression" } } }, "ExpressionStringPart": { "type": "object", "required": [ "expression" ], "properties": { "expression": { "$ref": "#/definitions/Expression" } } }, "FinallyBlock": { "type": "object", "required": [ "body", "end", "start" ], "properties": { "body": { "type": "array", "items": { "$ref": "#/definitions/Statement" } }, "end": { "$ref": "#/definitions/Span" }, "start": { "$ref": "#/definitions/Span" } } }, "ForStatement": { "type": "object", "required": [ "body", "for", "iterator", "left_parenthesis", "right_parenthesis" ], "properties": { "body": { "$ref": "#/definitions/ForStatementBody" }, "for": { "$ref": "#/definitions/Span" }, "iterator": { "$ref": "#/definitions/ForStatementIterator" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "ForStatementBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Statement" ] }, "value": { "type": "object", "required": [ "statement" ], "properties": { "statement": { "$ref": "#/definitions/Statement" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "type": "object", "required": [ "colon", "endfor", "ending", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "endfor": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } } ] }, "ForStatementIterator": { "type": "object", "required": [ "conditions", "conditions_semicolon", "initializations", "initializations_semicolon", "loop" ], "properties": { "conditions": { "$ref": "#/definitions/CommaSeparated_for_Expression" }, "conditions_semicolon": { "$ref": "#/definitions/Span" }, "initializations": { "$ref": "#/definitions/CommaSeparated_for_Expression" }, "initializations_semicolon": { "$ref": "#/definitions/Span" }, "loop": { "$ref": "#/definitions/CommaSeparated_for_Expression" } } }, "ForeachStatement": { "type": "object", "required": [ "body", "foreach", "iterator", "left_parenthesis", "right_parenthesis" ], "properties": { "body": { "$ref": "#/definitions/ForeachStatementBody" }, "foreach": { "$ref": "#/definitions/Span" }, "iterator": { "$ref": "#/definitions/ForeachStatementIterator" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "ForeachStatementBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Statement" ] }, "value": { "type": "object", "required": [ "statement" ], "properties": { "statement": { "$ref": "#/definitions/Statement" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "type": "object", "required": [ "colon", "endforeach", "ending", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "endforeach": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } } ] }, "ForeachStatementIterator": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Value" ] }, "value": { "type": "object", "required": [ "as", "expression", "value" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "as": { "$ref": "#/definitions/Span" }, "expression": { "$ref": "#/definitions/Expression" }, "value": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "KeyAndValue" ] }, "value": { "type": "object", "required": [ "as", "double_arrow", "expression", "key", "value" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "as": { "$ref": "#/definitions/Span" }, "double_arrow": { "$ref": "#/definitions/Span" }, "expression": { "$ref": "#/definitions/Expression" }, "key": { "$ref": "#/definitions/Expression" }, "value": { "$ref": "#/definitions/Expression" } } } } } ] }, "FullOpeningTagStatement": { "type": "object", "required": [ "span" ], "properties": { "span": { "$ref": "#/definitions/Span" } } }, "FunctionBody": { "type": "object", "required": [ "comments", "left_brace", "right_brace", "statements" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "left_brace": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "FunctionCallExpression": { "type": "object", "required": [ "arguments", "target" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "target": { "$ref": "#/definitions/Expression" } } }, "FunctionClosureCreationExpression": { "type": "object", "required": [ "placeholder", "target" ], "properties": { "placeholder": { "$ref": "#/definitions/ArgumentPlaceholder" }, "target": { "$ref": "#/definitions/Expression" } } }, "FunctionParameter": { "type": "object", "required": [ "attributes", "comments", "name" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "comments": { "$ref": "#/definitions/CommentGroup" }, "data_type": { "anyOf": [ { "$ref": "#/definitions/Type" }, { "type": "null" } ] }, "default": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] }, "ellipsis": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "name": { "$ref": "#/definitions/SimpleVariable" } } }, "FunctionParameterList": { "type": "object", "required": [ "comments", "left_parenthesis", "parameters", "right_parenthesis" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "parameters": { "$ref": "#/definitions/CommaSeparated_for_FunctionParameter" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "FunctionStatement": { "type": "object", "required": [ "attributes", "body", "comments", "function", "name", "parameters" ], "properties": { "ampersand": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/FunctionBody" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "function": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "parameters": { "$ref": "#/definitions/FunctionParameterList" }, "return_type": { "anyOf": [ { "$ref": "#/definitions/ReturnType" }, { "type": "null" } ] } } }, "GlobalStatement": { "type": "object", "required": [ "global", "variables" ], "properties": { "global": { "$ref": "#/definitions/Span" }, "variables": { "type": "array", "items": { "$ref": "#/definitions/Variable" } } } }, "GotoStatement": { "type": "object", "required": [ "comments", "keyword", "label", "semicolon" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "keyword": { "$ref": "#/definitions/Span" }, "label": { "$ref": "#/definitions/SimpleIdentifier" }, "semicolon": { "$ref": "#/definitions/Span" } } }, "GroupUseStatement": { "type": "object", "required": [ "kind", "prefix", "uses" ], "properties": { "kind": { "$ref": "#/definitions/UseKind" }, "prefix": { "$ref": "#/definitions/SimpleIdentifier" }, "uses": { "type": "array", "items": { "$ref": "#/definitions/Use" } } } }, "HaltCompilerStatement": { "type": "object", "properties": { "content": { "anyOf": [ { "$ref": "#/definitions/ByteString" }, { "type": "null" } ] } } }, "HeredocExpression": { "type": "object", "required": [ "label", "parts" ], "properties": { "label": { "$ref": "#/definitions/ByteString" }, "parts": { "type": "array", "items": { "$ref": "#/definitions/StringPart" } } } }, "Identifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "SimpleIdentifier" ] }, "value": { "$ref": "#/definitions/SimpleIdentifier" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "DynamicIdentifier" ] }, "value": { "$ref": "#/definitions/DynamicIdentifier" } } } ] }, "IfStatement": { "type": "object", "required": [ "body", "condition", "if", "left_parenthesis", "right_parenthesis" ], "properties": { "body": { "$ref": "#/definitions/IfStatementBody" }, "condition": { "$ref": "#/definitions/Expression" }, "if": { "$ref": "#/definitions/Span" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "IfStatementBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Statement" ] }, "value": { "type": "object", "required": [ "elseifs", "statement" ], "properties": { "else": { "anyOf": [ { "$ref": "#/definitions/IfStatementElse" }, { "type": "null" } ] }, "elseifs": { "type": "array", "items": { "$ref": "#/definitions/IfStatementElseIf" } }, "statement": { "$ref": "#/definitions/Statement" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "type": "object", "required": [ "colon", "elseifs", "endif", "ending", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "else": { "anyOf": [ { "$ref": "#/definitions/IfStatementElseBlock" }, { "type": "null" } ] }, "elseifs": { "type": "array", "items": { "$ref": "#/definitions/IfStatementElseIfBlock" } }, "endif": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } } ] }, "IfStatementElse": { "type": "object", "required": [ "else", "statement" ], "properties": { "else": { "$ref": "#/definitions/Span" }, "statement": { "$ref": "#/definitions/Statement" } } }, "IfStatementElseBlock": { "type": "object", "required": [ "colon", "else", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "else": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "IfStatementElseIf": { "type": "object", "required": [ "condition", "elseif", "left_parenthesis", "right_parenthesis", "statement" ], "properties": { "condition": { "$ref": "#/definitions/Expression" }, "elseif": { "$ref": "#/definitions/Span" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" }, "statement": { "$ref": "#/definitions/Statement" } } }, "IfStatementElseIfBlock": { "type": "object", "required": [ "colon", "condition", "elseif", "left_parenthesis", "right_parenthesis", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "condition": { "$ref": "#/definitions/Expression" }, "elseif": { "$ref": "#/definitions/Span" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "IncludeExpression": { "type": "object", "required": [ "include", "path" ], "properties": { "include": { "$ref": "#/definitions/Span" }, "path": { "$ref": "#/definitions/Expression" } } }, "IncludeOnceExpression": { "type": "object", "required": [ "include_once", "path" ], "properties": { "include_once": { "$ref": "#/definitions/Span" }, "path": { "$ref": "#/definitions/Expression" } } }, "InlineHtmlStatement": { "type": "object", "required": [ "html" ], "properties": { "html": { "$ref": "#/definitions/ByteString" } } }, "InstanceofExpression": { "type": "object", "required": [ "instanceof", "left", "right" ], "properties": { "instanceof": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } }, "InterfaceBody": { "type": "object", "required": [ "left_brace", "members", "right_brace" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/InterfaceMember" } }, "right_brace": { "$ref": "#/definitions/Span" } } }, "InterfaceExtends": { "type": "object", "required": [ "extends", "parents" ], "properties": { "extends": { "$ref": "#/definitions/Span" }, "parents": { "$ref": "#/definitions/CommaSeparated_for_SimpleIdentifier" } } }, "InterfaceMember": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ClassishConstant" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constructor" ] }, "value": { "$ref": "#/definitions/AbstractConstructor" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Method" ] }, "value": { "$ref": "#/definitions/AbstractMethod" } } } ] }, "InterfaceStatement": { "type": "object", "required": [ "attributes", "body", "interface", "name" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/InterfaceBody" }, "extends": { "anyOf": [ { "$ref": "#/definitions/InterfaceExtends" }, { "type": "null" } ] }, "interface": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" } } }, "InterpolatedStringExpression": { "type": "object", "required": [ "parts" ], "properties": { "parts": { "type": "array", "items": { "$ref": "#/definitions/StringPart" } } } }, "IssetExpression": { "type": "object", "required": [ "arguments", "isset" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "isset": { "$ref": "#/definitions/Span" } } }, "LabelStatement": { "type": "object", "required": [ "colon", "comments", "label" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "label": { "$ref": "#/definitions/SimpleIdentifier" } } }, "Level": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Literal" ] }, "value": { "$ref": "#/definitions/LiteralInteger" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Parenthesized" ] }, "value": { "type": "object", "required": [ "left_parenthesis", "level", "right_parenthesis" ], "properties": { "left_parenthesis": { "$ref": "#/definitions/Span" }, "level": { "$ref": "#/definitions/Level" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } } } } ] }, "ListEntry": { "oneOf": [ { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Skipped" ] } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Value" ] }, "value": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "KeyValue" ] }, "value": { "type": "object", "required": [ "double_arrow", "key", "value" ], "properties": { "double_arrow": { "$ref": "#/definitions/Span" }, "key": { "$ref": "#/definitions/Expression" }, "value": { "$ref": "#/definitions/Expression" } } } } } ] }, "ListExpression": { "type": "object", "required": [ "end", "items", "list", "start" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ListEntry" } }, "list": { "$ref": "#/definitions/Span" }, "start": { "$ref": "#/definitions/Span" } } }, "Literal": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "String" ] }, "value": { "$ref": "#/definitions/LiteralString" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Integer" ] }, "value": { "$ref": "#/definitions/LiteralInteger" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Float" ] }, "value": { "$ref": "#/definitions/LiteralFloat" } } } ] }, "LiteralFloat": { "type": "object", "required": [ "span", "value" ], "properties": { "span": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/ByteString" } } }, "LiteralInteger": { "type": "object", "required": [ "span", "value" ], "properties": { "span": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/ByteString" } } }, "LiteralString": { "type": "object", "required": [ "kind", "span", "value" ], "properties": { "kind": { "$ref": "#/definitions/LiteralStringKind" }, "span": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/ByteString" } } }, "LiteralStringKind": { "type": "string", "enum": [ "SingleQuoted", "DoubleQuoted" ] }, "LiteralStringPart": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/ByteString" } } }, "LogicalOperationExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "And" ] }, "value": { "type": "object", "required": [ "double_ampersand", "left", "right" ], "properties": { "double_ampersand": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Or" ] }, "value": { "type": "object", "required": [ "double_pipe", "left", "right" ], "properties": { "double_pipe": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Not" ] }, "value": { "type": "object", "required": [ "bang", "right" ], "properties": { "bang": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LogicalAnd" ] }, "value": { "type": "object", "required": [ "and", "left", "right" ], "properties": { "and": { "$ref": "#/definitions/Span" }, "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LogicalOr" ] }, "value": { "type": "object", "required": [ "left", "or", "right" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "or": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "LogicalXor" ] }, "value": { "type": "object", "required": [ "left", "right", "xor" ], "properties": { "left": { "$ref": "#/definitions/Expression" }, "right": { "$ref": "#/definitions/Expression" }, "xor": { "$ref": "#/definitions/Span" } } } } } ] }, "MagicConstantExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Directory" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "File" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Line" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Class" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Function" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Method" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Namespace" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Trait" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "CompilerHaltOffset" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "MatchArm": { "type": "object", "required": [ "arrow", "body", "conditions" ], "properties": { "arrow": { "$ref": "#/definitions/Span" }, "body": { "$ref": "#/definitions/MatchArmBody" }, "conditions": { "type": "array", "items": { "$ref": "#/definitions/Expression" } } } }, "MatchArmBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "type": "object", "required": [ "left_brace", "right_brace", "statements" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Expression" ] }, "value": { "type": "object", "required": [ "expression" ], "properties": { "expression": { "$ref": "#/definitions/Expression" } } } } } ] }, "MatchExpression": { "type": "object", "required": [ "arms", "condition", "keyword", "left_brace", "left_parenthesis", "right_brace", "right_parenthesis" ], "properties": { "arms": { "type": "array", "items": { "$ref": "#/definitions/MatchArm" } }, "condition": { "$ref": "#/definitions/Expression" }, "default": { "anyOf": [ { "$ref": "#/definitions/DefaultMatchArm" }, { "type": "null" } ] }, "keyword": { "$ref": "#/definitions/Span" }, "left_brace": { "$ref": "#/definitions/Span" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "MethodBody": { "type": "object", "required": [ "comments", "left_brace", "right_brace", "statements" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "left_brace": { "$ref": "#/definitions/Span" }, "right_brace": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "MethodCallExpression": { "type": "object", "required": [ "arguments", "arrow", "method", "target" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "arrow": { "$ref": "#/definitions/Span" }, "method": { "$ref": "#/definitions/Expression" }, "target": { "$ref": "#/definitions/Expression" } } }, "MethodClosureCreationExpression": { "type": "object", "required": [ "arrow", "method", "placeholder", "target" ], "properties": { "arrow": { "$ref": "#/definitions/Span" }, "method": { "$ref": "#/definitions/Expression" }, "placeholder": { "$ref": "#/definitions/ArgumentPlaceholder" }, "target": { "$ref": "#/definitions/Expression" } } }, "MethodModifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Final" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Static" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Abstract" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Public" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Protected" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Private" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "MethodModifierGroup": { "type": "object", "required": [ "modifiers" ], "properties": { "modifiers": { "type": "array", "items": { "$ref": "#/definitions/MethodModifier" } } } }, "NamedArgument": { "type": "object", "required": [ "colon", "comments", "name", "value" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "ellipsis": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "value": { "$ref": "#/definitions/Expression" } } }, "NamespaceStatement": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Unbraced" ] }, "value": { "$ref": "#/definitions/UnbracedNamespace" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Braced" ] }, "value": { "$ref": "#/definitions/BracedNamespace" } } } ] }, "NewExpression": { "type": "object", "required": [ "new", "target" ], "properties": { "arguments": { "anyOf": [ { "$ref": "#/definitions/ArgumentList" }, { "type": "null" } ] }, "new": { "$ref": "#/definitions/Span" }, "target": { "$ref": "#/definitions/Expression" } } }, "NowdocExpression": { "type": "object", "required": [ "label", "value" ], "properties": { "label": { "$ref": "#/definitions/ByteString" }, "value": { "$ref": "#/definitions/ByteString" } } }, "NullsafeMethodCallExpression": { "type": "object", "required": [ "arguments", "method", "question_arrow", "target" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "method": { "$ref": "#/definitions/Expression" }, "question_arrow": { "$ref": "#/definitions/Span" }, "target": { "$ref": "#/definitions/Expression" } } }, "NullsafePropertyFetchExpression": { "type": "object", "required": [ "property", "question_arrow", "target" ], "properties": { "property": { "$ref": "#/definitions/Expression" }, "question_arrow": { "$ref": "#/definitions/Span" }, "target": { "$ref": "#/definitions/Expression" } } }, "ParenthesizedExpression": { "type": "object", "required": [ "end", "expr", "start" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "expr": { "$ref": "#/definitions/Expression" }, "start": { "$ref": "#/definitions/Span" } } }, "PositionalArgument": { "type": "object", "required": [ "comments", "value" ], "properties": { "comments": { "$ref": "#/definitions/CommentGroup" }, "ellipsis": { "anyOf": [ { "$ref": "#/definitions/Span" }, { "type": "null" } ] }, "value": { "$ref": "#/definitions/Expression" } } }, "PrintExpression": { "type": "object", "required": [ "print" ], "properties": { "argument": { "anyOf": [ { "$ref": "#/definitions/SingleArgument" }, { "type": "null" } ] }, "print": { "$ref": "#/definitions/Span" }, "value": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] } } }, "PromotedPropertyModifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Public" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Protected" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Private" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Readonly" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "PromotedPropertyModifierGroup": { "type": "object", "required": [ "modifiers" ], "properties": { "modifiers": { "type": "array", "items": { "$ref": "#/definitions/PromotedPropertyModifier" } } } }, "Property": { "type": "object", "required": [ "attributes", "end", "entries", "modifiers" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "end": { "$ref": "#/definitions/Span" }, "entries": { "type": "array", "items": { "$ref": "#/definitions/PropertyEntry" } }, "modifiers": { "$ref": "#/definitions/PropertyModifierGroup" }, "type": { "anyOf": [ { "$ref": "#/definitions/Type" }, { "type": "null" } ] } } }, "PropertyEntry": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Uninitialized" ] }, "value": { "type": "object", "required": [ "variable" ], "properties": { "variable": { "$ref": "#/definitions/SimpleVariable" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Initialized" ] }, "value": { "type": "object", "required": [ "equals", "value", "variable" ], "properties": { "equals": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/Expression" }, "variable": { "$ref": "#/definitions/SimpleVariable" } } } } } ] }, "PropertyFetchExpression": { "type": "object", "required": [ "arrow", "property", "target" ], "properties": { "arrow": { "$ref": "#/definitions/Span" }, "property": { "$ref": "#/definitions/Expression" }, "target": { "$ref": "#/definitions/Expression" } } }, "PropertyModifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Public" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Protected" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Private" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Static" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Readonly" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "PropertyModifierGroup": { "type": "object", "required": [ "modifiers" ], "properties": { "modifiers": { "type": "array", "items": { "$ref": "#/definitions/PropertyModifier" } } } }, "RangeOperationExpression": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Exclusive" ] }, "value": { "type": "object", "required": [ "double_dot", "lower_bound", "upper_bound" ], "properties": { "double_dot": { "$ref": "#/definitions/Span" }, "lower_bound": { "$ref": "#/definitions/Expression" }, "upper_bound": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Inclusive" ] }, "value": { "type": "object", "required": [ "double_dot_equals", "lower_bound", "upper_bound" ], "properties": { "double_dot_equals": { "$ref": "#/definitions/Span" }, "lower_bound": { "$ref": "#/definitions/Expression" }, "upper_bound": { "$ref": "#/definitions/Expression" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Endless" ] }, "value": { "type": "object", "required": [ "double_dot", "lower_bound" ], "properties": { "double_dot": { "$ref": "#/definitions/Span" }, "lower_bound": { "$ref": "#/definitions/Expression" } } } } } ] }, "ReferenceExpression": { "type": "object", "required": [ "ampersand", "right" ], "properties": { "ampersand": { "$ref": "#/definitions/Span" }, "right": { "$ref": "#/definitions/Expression" } } }, "RequireExpression": { "type": "object", "required": [ "path", "require" ], "properties": { "path": { "$ref": "#/definitions/Expression" }, "require": { "$ref": "#/definitions/Span" } } }, "RequireOnceExpression": { "type": "object", "required": [ "path", "require_once" ], "properties": { "path": { "$ref": "#/definitions/Expression" }, "require_once": { "$ref": "#/definitions/Span" } } }, "ReturnStatement": { "type": "object", "required": [ "ending", "return" ], "properties": { "ending": { "$ref": "#/definitions/Ending" }, "return": { "$ref": "#/definitions/Span" }, "value": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] } } }, "ReturnType": { "type": "object", "required": [ "colon", "data_type" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "data_type": { "$ref": "#/definitions/Type" } } }, "ShellExecExpression": { "type": "object", "required": [ "parts" ], "properties": { "parts": { "type": "array", "items": { "$ref": "#/definitions/StringPart" } } } }, "ShortArrayExpression": { "type": "object", "required": [ "end", "items", "start" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "items": { "$ref": "#/definitions/CommaSeparated_for_ArrayItem" }, "start": { "$ref": "#/definitions/Span" } } }, "ShortMatchExpression": { "type": "object", "required": [ "arms", "keyword" ], "properties": { "arms": { "type": "array", "items": { "$ref": "#/definitions/MatchArm" } }, "default": { "anyOf": [ { "$ref": "#/definitions/DefaultMatchArm" }, { "type": "null" } ] }, "keyword": { "$ref": "#/definitions/Span" } } }, "ShortOpeningTagStatement": { "type": "object", "required": [ "span" ], "properties": { "span": { "$ref": "#/definitions/Span" } } }, "ShortTernaryExpression": { "type": "object", "required": [ "condition", "else", "question_colon" ], "properties": { "condition": { "$ref": "#/definitions/Expression" }, "else": { "$ref": "#/definitions/Expression" }, "question_colon": { "$ref": "#/definitions/Span" } } }, "SimpleIdentifier": { "type": "object", "required": [ "span", "value" ], "properties": { "span": { "$ref": "#/definitions/Span" }, "value": { "$ref": "#/definitions/ByteString" } } }, "SimpleVariable": { "type": "object", "required": [ "name", "span" ], "properties": { "name": { "$ref": "#/definitions/ByteString" }, "span": { "$ref": "#/definitions/Span" } } }, "SingleArgument": { "type": "object", "required": [ "argument", "comments", "left_parenthesis", "right_parenthesis" ], "properties": { "argument": { "$ref": "#/definitions/Argument" }, "comments": { "$ref": "#/definitions/CommentGroup" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" } } }, "Span": { "type": "object", "required": [ "column", "line", "position" ], "properties": { "column": { "type": "integer", "format": "uint", "minimum": 0.0 }, "line": { "type": "integer", "format": "uint", "minimum": 0.0 }, "position": { "type": "integer", "format": "uint", "minimum": 0.0 } } }, "Statement": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "FullOpeningTag" ] }, "value": { "$ref": "#/definitions/FullOpeningTagStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ShortOpeningTag" ] }, "value": { "$ref": "#/definitions/ShortOpeningTagStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "EchoOpeningTag" ] }, "value": { "$ref": "#/definitions/EchoOpeningTagStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ClosingTag" ] }, "value": { "$ref": "#/definitions/ClosingTagStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "InlineHtml" ] }, "value": { "$ref": "#/definitions/InlineHtmlStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Label" ] }, "value": { "$ref": "#/definitions/LabelStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Goto" ] }, "value": { "$ref": "#/definitions/GotoStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "HaltCompiler" ] }, "value": { "$ref": "#/definitions/HaltCompilerStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Static" ] }, "value": { "$ref": "#/definitions/StaticStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "DoWhile" ] }, "value": { "$ref": "#/definitions/DoWhileStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "While" ] }, "value": { "$ref": "#/definitions/WhileStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "For" ] }, "value": { "$ref": "#/definitions/ForStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Foreach" ] }, "value": { "$ref": "#/definitions/ForeachStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Break" ] }, "value": { "$ref": "#/definitions/BreakStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Continue" ] }, "value": { "$ref": "#/definitions/ContinueStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ConstantStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Function" ] }, "value": { "$ref": "#/definitions/FunctionStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Class" ] }, "value": { "$ref": "#/definitions/ClassStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Trait" ] }, "value": { "$ref": "#/definitions/TraitStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Interface" ] }, "value": { "$ref": "#/definitions/InterfaceStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "If" ] }, "value": { "$ref": "#/definitions/IfStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Switch" ] }, "value": { "$ref": "#/definitions/SwitchStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Echo" ] }, "value": { "$ref": "#/definitions/EchoStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Expression" ] }, "value": { "$ref": "#/definitions/ExpressionStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Return" ] }, "value": { "$ref": "#/definitions/ReturnStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Namespace" ] }, "value": { "$ref": "#/definitions/NamespaceStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Use" ] }, "value": { "$ref": "#/definitions/UseStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "GroupUse" ] }, "value": { "$ref": "#/definitions/GroupUseStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Comment" ] }, "value": { "$ref": "#/definitions/Comment" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Try" ] }, "value": { "$ref": "#/definitions/TryStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "UnitEnum" ] }, "value": { "$ref": "#/definitions/UnitEnumStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "BackedEnum" ] }, "value": { "$ref": "#/definitions/BackedEnumStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "$ref": "#/definitions/BlockStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Global" ] }, "value": { "$ref": "#/definitions/GlobalStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Declare" ] }, "value": { "$ref": "#/definitions/DeclareStatement" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Noop" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "TypeAlias" ] }, "value": { "$ref": "#/definitions/TypeAliasStatement" } } } ] }, "StaticMethodCallExpression": { "type": "object", "required": [ "arguments", "double_colon", "method", "target" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "double_colon": { "$ref": "#/definitions/Span" }, "method": { "$ref": "#/definitions/Identifier" }, "target": { "$ref": "#/definitions/Expression" } } }, "StaticMethodClosureCreationExpression": { "type": "object", "required": [ "double_colon", "method", "placeholder", "target" ], "properties": { "double_colon": { "$ref": "#/definitions/Span" }, "method": { "$ref": "#/definitions/Identifier" }, "placeholder": { "$ref": "#/definitions/ArgumentPlaceholder" }, "target": { "$ref": "#/definitions/Expression" } } }, "StaticPropertyFetchExpression": { "type": "object", "required": [ "double_colon", "property", "target" ], "properties": { "double_colon": { "$ref": "#/definitions/Span" }, "property": { "$ref": "#/definitions/Variable" }, "target": { "$ref": "#/definitions/Expression" } } }, "StaticStatement": { "type": "object", "required": [ "vars" ], "properties": { "vars": { "type": "array", "items": { "$ref": "#/definitions/StaticVar" } } } }, "StaticVar": { "type": "object", "required": [ "var" ], "properties": { "default": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] }, "var": { "$ref": "#/definitions/Variable" } } }, "StaticVariableMethodCallExpression": { "type": "object", "required": [ "arguments", "double_colon", "method", "target" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "double_colon": { "$ref": "#/definitions/Span" }, "method": { "$ref": "#/definitions/Variable" }, "target": { "$ref": "#/definitions/Expression" } } }, "StaticVariableMethodClosureCreationExpression": { "type": "object", "required": [ "double_colon", "method", "placeholder", "target" ], "properties": { "double_colon": { "$ref": "#/definitions/Span" }, "method": { "$ref": "#/definitions/Variable" }, "placeholder": { "$ref": "#/definitions/ArgumentPlaceholder" }, "target": { "$ref": "#/definitions/Expression" } } }, "StringPart": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Literal" ] }, "value": { "$ref": "#/definitions/LiteralStringPart" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Expression" ] }, "value": { "$ref": "#/definitions/ExpressionStringPart" } } } ] }, "SwitchStatement": { "type": "object", "required": [ "cases", "condition", "left_parenthesis", "right_parenthesis", "switch" ], "properties": { "cases": { "type": "array", "items": { "$ref": "#/definitions/Case" } }, "condition": { "$ref": "#/definitions/Expression" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" }, "switch": { "$ref": "#/definitions/Span" } } }, "TernaryExpression": { "type": "object", "required": [ "colon", "condition", "else", "question", "then" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "condition": { "$ref": "#/definitions/Expression" }, "else": { "$ref": "#/definitions/Expression" }, "question": { "$ref": "#/definitions/Span" }, "then": { "$ref": "#/definitions/Expression" } } }, "ThrowExpression": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/Expression" } } }, "TraitBody": { "type": "object", "required": [ "left_brace", "members", "right_brace" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/TraitMember" } }, "right_brace": { "$ref": "#/definitions/Span" } } }, "TraitMember": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ClassishConstant" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "TraitUsage" ] }, "value": { "$ref": "#/definitions/TraitUsage" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Property" ] }, "value": { "$ref": "#/definitions/Property" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "VariableProperty" ] }, "value": { "$ref": "#/definitions/VariableProperty" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AbstractMethod" ] }, "value": { "$ref": "#/definitions/AbstractMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "AbstractConstructor" ] }, "value": { "$ref": "#/definitions/AbstractConstructor" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConcreteMethod" ] }, "value": { "$ref": "#/definitions/ConcreteMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ConcreteConstructor" ] }, "value": { "$ref": "#/definitions/ConcreteConstructor" } } } ] }, "TraitStatement": { "type": "object", "required": [ "attributes", "body", "name", "trait" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/TraitBody" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "trait": { "$ref": "#/definitions/Span" } } }, "TraitUsage": { "type": "object", "required": [ "adaptations", "traits", "use" ], "properties": { "adaptations": { "type": "array", "items": { "$ref": "#/definitions/TraitUsageAdaptation" } }, "traits": { "type": "array", "items": { "$ref": "#/definitions/SimpleIdentifier" } }, "use": { "$ref": "#/definitions/Span" } } }, "TraitUsageAdaptation": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Alias" ] }, "value": { "type": "object", "required": [ "alias", "method" ], "properties": { "alias": { "$ref": "#/definitions/SimpleIdentifier" }, "method": { "$ref": "#/definitions/SimpleIdentifier" }, "trait": { "anyOf": [ { "$ref": "#/definitions/SimpleIdentifier" }, { "type": "null" } ] }, "visibility": { "anyOf": [ { "$ref": "#/definitions/VisibilityModifier" }, { "type": "null" } ] } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Visibility" ] }, "value": { "type": "object", "required": [ "method", "visibility" ], "properties": { "method": { "$ref": "#/definitions/SimpleIdentifier" }, "trait": { "anyOf": [ { "$ref": "#/definitions/SimpleIdentifier" }, { "type": "null" } ] }, "visibility": { "$ref": "#/definitions/VisibilityModifier" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Precedence" ] }, "value": { "type": "object", "required": [ "insteadof", "method" ], "properties": { "insteadof": { "type": "array", "items": { "$ref": "#/definitions/SimpleIdentifier" } }, "method": { "$ref": "#/definitions/SimpleIdentifier" }, "trait": { "anyOf": [ { "$ref": "#/definitions/SimpleIdentifier" }, { "type": "null" } ] } } } } } ] }, "TryStatement": { "type": "object", "required": [ "body", "catches", "end", "start" ], "properties": { "body": { "type": "array", "items": { "$ref": "#/definitions/Statement" } }, "catches": { "type": "array", "items": { "$ref": "#/definitions/CatchBlock" } }, "end": { "$ref": "#/definitions/Span" }, "finally": { "anyOf": [ { "$ref": "#/definitions/FinallyBlock" }, { "type": "null" } ] }, "start": { "$ref": "#/definitions/Span" } } }, "Type": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Named" ] }, "value": { "type": "array", "items": [ { "$ref": "#/definitions/Span" }, { "$ref": "#/definitions/ByteString" } ], "maxItems": 2, "minItems": 2 } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Nullable" ] }, "value": { "type": "array", "items": [ { "$ref": "#/definitions/Span" }, { "$ref": "#/definitions/Type" } ], "maxItems": 2, "minItems": 2 } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Union" ] }, "value": { "type": "array", "items": { "$ref": "#/definitions/Type" } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Intersection" ] }, "value": { "type": "array", "items": { "$ref": "#/definitions/Type" } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Void" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Null" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "True" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "False" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Never" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Float" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Boolean" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Integer" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "String" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Array" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Object" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Mixed" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Callable" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Iterable" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "StaticReference" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "SelfReference" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "ParentReference" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "TypeAliasStatement": { "type": "object", "required": [ "equals", "name", "semicolon", "type", "type_keyword" ], "properties": { "equals": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "semicolon": { "$ref": "#/definitions/Span" }, "type": { "$ref": "#/definitions/Type" }, "type_keyword": { "$ref": "#/definitions/Span" } } }, "UnbracedNamespace": { "type": "object", "required": [ "end", "name", "start", "statements" ], "properties": { "end": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "start": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } }, "UnitEnumBody": { "type": "object", "required": [ "left_brace", "members", "right_brace" ], "properties": { "left_brace": { "$ref": "#/definitions/Span" }, "members": { "type": "array", "items": { "$ref": "#/definitions/UnitEnumMember" } }, "right_brace": { "$ref": "#/definitions/Span" } } }, "UnitEnumCase": { "type": "object", "required": [ "attributes", "end", "name", "start" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "end": { "$ref": "#/definitions/Span" }, "name": { "$ref": "#/definitions/SimpleIdentifier" }, "start": { "$ref": "#/definitions/Span" } } }, "UnitEnumMember": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Case" ] }, "value": { "$ref": "#/definitions/UnitEnumCase" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Method" ] }, "value": { "$ref": "#/definitions/ConcreteMethod" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Constant" ] }, "value": { "$ref": "#/definitions/ClassishConstant" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "TraitUsage" ] }, "value": { "$ref": "#/definitions/TraitUsage" } } } ] }, "UnitEnumStatement": { "type": "object", "required": [ "attributes", "body", "enum", "implements", "name" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "body": { "$ref": "#/definitions/UnitEnumBody" }, "enum": { "$ref": "#/definitions/Span" }, "implements": { "type": "array", "items": { "$ref": "#/definitions/SimpleIdentifier" } }, "name": { "$ref": "#/definitions/SimpleIdentifier" } } }, "UnsetExpression": { "type": "object", "required": [ "arguments", "unset" ], "properties": { "arguments": { "$ref": "#/definitions/ArgumentList" }, "unset": { "$ref": "#/definitions/Span" } } }, "Use": { "type": "object", "required": [ "name" ], "properties": { "alias": { "anyOf": [ { "$ref": "#/definitions/SimpleIdentifier" }, { "type": "null" } ] }, "kind": { "anyOf": [ { "$ref": "#/definitions/UseKind" }, { "type": "null" } ] }, "name": { "$ref": "#/definitions/SimpleIdentifier" } } }, "UseKind": { "oneOf": [ { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Normal" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Function" ] } } }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "Const" ] } } } ] }, "UseStatement": { "type": "object", "required": [ "kind", "uses" ], "properties": { "kind": { "$ref": "#/definitions/UseKind" }, "uses": { "type": "array", "items": { "$ref": "#/definitions/Use" } } } }, "Variable": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "SimpleVariable" ] }, "value": { "$ref": "#/definitions/SimpleVariable" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "VariableVariable" ] }, "value": { "$ref": "#/definitions/VariableVariable" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "BracedVariableVariable" ] }, "value": { "$ref": "#/definitions/BracedVariableVariable" } } } ] }, "VariableProperty": { "type": "object", "required": [ "attributes", "end", "entries" ], "properties": { "attributes": { "type": "array", "items": { "$ref": "#/definitions/AttributeGroup" } }, "end": { "$ref": "#/definitions/Span" }, "entries": { "type": "array", "items": { "$ref": "#/definitions/PropertyEntry" } }, "type": { "anyOf": [ { "$ref": "#/definitions/Type" }, { "type": "null" } ] } } }, "VariableVariable": { "type": "object", "required": [ "span", "variable" ], "properties": { "span": { "$ref": "#/definitions/Span" }, "variable": { "$ref": "#/definitions/Variable" } } }, "VisibilityModifier": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Public" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Protected" ] }, "value": { "$ref": "#/definitions/Span" } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Private" ] }, "value": { "$ref": "#/definitions/Span" } } } ] }, "WhileStatement": { "type": "object", "required": [ "body", "condition", "left_parenthesis", "right_parenthesis", "while" ], "properties": { "body": { "$ref": "#/definitions/WhileStatementBody" }, "condition": { "$ref": "#/definitions/Expression" }, "left_parenthesis": { "$ref": "#/definitions/Span" }, "right_parenthesis": { "$ref": "#/definitions/Span" }, "while": { "$ref": "#/definitions/Span" } } }, "WhileStatementBody": { "oneOf": [ { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Statement" ] }, "value": { "type": "object", "required": [ "statement" ], "properties": { "statement": { "$ref": "#/definitions/Statement" } } } } }, { "type": "object", "required": [ "type", "value" ], "properties": { "type": { "type": "string", "enum": [ "Block" ] }, "value": { "type": "object", "required": [ "colon", "ending", "endwhile", "statements" ], "properties": { "colon": { "$ref": "#/definitions/Span" }, "ending": { "$ref": "#/definitions/Ending" }, "endwhile": { "$ref": "#/definitions/Span" }, "statements": { "type": "array", "items": { "$ref": "#/definitions/Statement" } } } } } } ] }, "YieldExpression": { "type": "object", "properties": { "key": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] }, "value": { "anyOf": [ { "$ref": "#/definitions/Expression" }, { "type": "null" } ] } } }, "YieldFromExpression": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/Expression" } } } } }