solidity-ast
Version:
Solidity AST schema and type definitions
2,840 lines • 97.5 kB
JSON
{
"ArrayTypeName": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"*": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"documentation",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"ElementaryTypeNameExpression": [
"typeName"
],
"EmitStatement": [
"eventCall"
],
"EnumDefinition": [
"members",
"documentation"
],
"EnumValue": [
"documentation"
],
"ErrorDefinition": [
"documentation",
"parameters"
],
"EventDefinition": [
"documentation",
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"documentation",
"modifiers",
"overrides",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"ImportDirective": [
"symbolAliases"
],
"$other": [
"foreign",
"function"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments",
"baseName"
],
"InlineAssembly": [
"AST"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"documentation",
"overrides",
"parameters"
],
"ModifierInvocation": [
"arguments",
"modifierName"
],
"NewExpression": [
"typeName"
],
"OverrideSpecifier": [
"overrides"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members",
"documentation"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedTypeName": [
"pathNode"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"functionList",
"libraryName",
"typeName"
],
"VariableDeclaration": [
"documentation",
"overrides",
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"YulAssignment": [
"value",
"variableNames"
],
"YulBlock": [
"statements"
],
"YulCase": [
"body",
"value"
],
"YulExpressionStatement": [
"expression"
],
"YulFunctionCall": [
"arguments",
"functionName"
],
"YulForLoop": [
"body",
"condition",
"post",
"pre"
],
"YulFunctionDefinition": [
"body",
"parameters",
"returnVariables"
],
"YulIf": [
"body",
"condition"
],
"YulSwitch": [
"cases",
"expression"
],
"YulVariableDeclaration": [
"value",
"variables"
],
"SourceUnit": [
"nodes"
]
},
"Assignment": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"BinaryOperation": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"Conditional": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"ElementaryTypeNameExpression": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"ElementaryTypeName": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"ElementaryTypeNameExpression": [
"typeName"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"FunctionCall": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"FunctionCallOptions": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"Identifier": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"ImportDirective": [
"symbolAliases"
],
"$other": [
"foreign"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments",
"modifierName"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"IndexAccess": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"IndexRangeAccess": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"Literal": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"MemberAccess": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"NewExpression": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"TupleExpression": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"UnaryOperation": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"UncheckedBlock": [
"statements"
],
"UserDefinedValueTypeDefinition": [
"underlyingType"
],
"UsingForDirective": [
"typeName"
],
"VariableDeclaration": [
"typeName",
"value"
],
"VariableDeclarationStatement": [
"declarations",
"initialValue"
],
"WhileStatement": [
"body",
"condition"
],
"SourceUnit": [
"nodes"
]
},
"FunctionTypeName": {
"ArrayTypeName": [
"baseType",
"length"
],
"Assignment": [
"leftHandSide",
"rightHandSide"
],
"BinaryOperation": [
"leftExpression",
"rightExpression"
],
"Block": [
"statements"
],
"Conditional": [
"condition",
"falseExpression",
"trueExpression"
],
"ContractDefinition": [
"baseContracts",
"nodes",
"storageLayout"
],
"StorageLayoutSpecifier": [
"baseSlotExpression"
],
"DoWhileStatement": [
"body",
"condition"
],
"EmitStatement": [
"eventCall"
],
"ErrorDefinition": [
"parameters"
],
"EventDefinition": [
"parameters"
],
"ExpressionStatement": [
"expression"
],
"ForStatement": [
"body",
"condition",
"initializationExpression",
"loopExpression"
],
"FunctionCall": [
"arguments",
"expression"
],
"FunctionCallOptions": [
"expression",
"options"
],
"FunctionDefinition": [
"body",
"modifiers",
"parameters",
"returnParameters"
],
"FunctionTypeName": [
"parameterTypes",
"returnParameterTypes"
],
"IfStatement": [
"condition",
"falseBody",
"trueBody"
],
"IndexAccess": [
"baseExpression",
"indexExpression"
],
"IndexRangeAccess": [
"baseExpression",
"endExpression",
"startExpression"
],
"InheritanceSpecifier": [
"arguments"
],
"Mapping": [
"keyType",
"valueType"
],
"MemberAccess": [
"expression"
],
"ModifierDefinition": [
"body",
"parameters"
],
"ModifierInvocation": [
"arguments"
],
"NewExpression": [
"typeName"
],
"ParameterList": [
"parameters"
],
"Return": [
"expression"
],
"RevertStatement": [
"errorCall"
],
"StructDefinition": [
"members"
],
"TryCatchClause": [
"block",
"parameters"
],
"TryStatement": [
"clauses",
"externalCall"
],
"TupleExpression": [
"components"
],
"UnaryOperation": [
"subExpression"
],
"Unchecked