{
  "Assignment": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "BinaryOperation": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "Conditional": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ElementaryTypeNameExpression": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ElementaryTypeName": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "ElementaryTypeNameExpression": [
      "typeName"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "FunctionCall": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "FunctionCallOptions": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "Identifier": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments",
      "modifierName"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ImportDirective": [
      "symbolAliases"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "IndexAccess": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "Literal": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "MemberAccess": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "NewExpression": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ArrayTypeName": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "FunctionTypeName": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ParameterList": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "VariableDeclaration": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "Mapping": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "UserDefinedTypeName": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments",
      "baseName"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "OverrideSpecifier": [
      "overrides"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "overrides",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "libraryName",
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "TupleExpression": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "UnaryOperation": {
    "Assignment": [
      "leftHandSide",
      "rightHandSide"
    ],
    "BinaryOperation": [
      "leftExpression",
      "rightExpression"
    ],
    "Conditional": [
      "condition",
      "falseExpression",
      "trueExpression"
    ],
    "IndexAccess": [
      "baseExpression",
      "indexExpression"
    ],
    "FunctionCall": [
      "arguments",
      "expression"
    ],
    "FunctionCallOptions": [
      "expression",
      "options"
    ],
    "MemberAccess": [
      "expression"
    ],
    "NewExpression": [
      "typeName"
    ],
    "TupleExpression": [
      "components"
    ],
    "UnaryOperation": [
      "subExpression"
    ],
    "FunctionTypeName": [
      "parameterTypes",
      "returnParameterTypes"
    ],
    "ForStatement": [
      "body",
      "condition",
      "initializationExpression",
      "loopExpression"
    ],
    "IfStatement": [
      "condition",
      "falseBody",
      "trueBody"
    ],
    "EmitStatement": [
      "eventCall"
    ],
    "ExpressionStatement": [
      "expression"
    ],
    "VariableDeclarationStatement": [
      "declarations",
      "initialValue"
    ],
    "WhileStatement": [
      "body",
      "condition"
    ],
    "InheritanceSpecifier": [
      "arguments"
    ],
    "ModifierInvocation": [
      "arguments"
    ],
    "Block": [
      "statements"
    ],
    "EventDefinition": [
      "parameters"
    ],
    "FunctionDefinition": [
      "body",
      "modifiers",
      "parameters",
      "returnParameters"
    ],
    "ParameterList": [
      "parameters"
    ],
    "ArrayTypeName": [
      "baseType",
      "length"
    ],
    "Mapping": [
      "keyType",
      "valueType"
    ],
    "ModifierDefinition": [
      "body",
      "parameters"
    ],
    "ContractDefinition": [
      "baseContracts",
      "nodes"
    ],
    "Return": [
      "expression"
    ],
    "StructDefinition": [
      "members"
    ],
    "UsingForDirective": [
      "typeName"
    ],
    "VariableDeclaration": [
      "typeName",
      "value"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "Block": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "EmitStatement": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ExpressionStatement": {
    "ForStatement": [
      "body",
      "loopExpression"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ForStatement": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "VariableDeclarationStatement": {
    "ForStatement": [
      "body",
      "initializationExpression"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "IfStatement": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "WhileStatement": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "InlineAssembly": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "PlaceholderStatement": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "Return": {
    "ForStatement": [
      "body"
    ],
    "IfStatement": [
      "falseBody",
      "trueBody"
    ],
    "WhileStatement": [
      "body"
    ],
    "Block": [
      "statements"
    ],
    "FunctionDefinition": [
      "body"
    ],
    "ModifierDefinition": [
      "body"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "EnumValue": {
    "EnumDefinition": [
      "members"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "StructuredDocumentation": {
    "EventDefinition": [
      "documentation"
    ],
    "FunctionDefinition": [
      "documentation"
    ],
    "ModifierDefinition": [
      "documentation"
    ],
    "ContractDefinition": [
      "documentation",
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ModifierInvocation": {
    "FunctionDefinition": [
      "modifiers"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "OverrideSpecifier": {
    "FunctionDefinition": [
      "overrides"
    ],
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "InheritanceSpecifier": {
    "ContractDefinition": [
      "baseContracts"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "EnumDefinition": {
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "EventDefinition": {
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "FunctionDefinition": {
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ModifierDefinition": {
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "StructDefinition": {
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "UsingForDirective": {
    "ContractDefinition": [
      "nodes"
    ],
    "SourceUnit": [
      "nodes"
    ]
  },
  "ContractDefinition": {
    "SourceUnit": [
      "nodes"
    ]
  },
  "ImportDirective": {
    "SourceUnit": [
      "nodes"
    ]
  },
  "PragmaDirective": {
    "SourceUnit": [
      "nodes"
    ]
  }
}