Skip to content

Instantly share code, notes, and snippets.

@vihanb
Last active March 29, 2018 23:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vihanb/f7b85a6c1f5d329e09ac2cea97df5d33 to your computer and use it in GitHub Desktop.
Save vihanb/f7b85a6c1f5d329e09ac2cea97df5d33 to your computer and use it in GitHub Desktop.
halp
Syntax Error: Ambigous parsing (1024) for:
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ IfStatement
│ ├ condition: ExpressionStatement
│ │ └ expression: Identifier; bool
│ ├ trueBody: CodeBlock
│ │ └ statements[]
│ │ ├ ExpressionStatement
│ │ │ └ expression: Identifier; puts
│ │ └ ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: ExpressionStatement
│ │ └ expression: Literal; true
│ └ falseBody: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; false
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint32
│ │ └ type: Identifier; UInt32
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int
│ │ └ type: Identifier; Int
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int32>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; uint64
│ │ └ type: Identifier; UInt64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<UInt64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; int64
│ │ └ type: Identifier; Int64
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Int64>>
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; float
│ │ └ type: Identifier; Float
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Literal; <<Float>>
└ FunctionStatement
├ annotations[]
├ name: Identifier; print
├ args[]
└ FunctionArgument
├ typedId: TypedIdentifier
│ ├ identifier: Identifier; double
│ └ type: Identifier; Double
└ defaultValue: null
├ returnType: null
└ statements: CodeBlock
└ statements[]
└ ExpressionStatement
└ expression: FunctionCall
├ head: Identifier; puts
└ arguments[]
└ ArgumentCall
└ value: Literal; <<Double>>
CodeBlock
└ statements[]
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; string
│ │ └ type: Identifier; String
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: PropertyExpression
│ ├ head: Identifier; string
│ └ tail: Identifier; underlyingData
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; byteSequence
│ │ └ type: Identifier; ByteSequence
│ └ defaultValue: null
│ ├ returnType: null
│ └ statements: CodeBlock
│ └ statements[]
│ └ ExpressionStatement
│ └ expression: FunctionCall
│ ├ head: Identifier; puts
│ └ arguments[]
│ └ ArgumentCall
│ └ value: Identifier; byteSequence
├ FunctionStatement
│ ├ annotations[]
│ ├ name: Identifier; print
│ ├ args[]
│ └ FunctionArgument
│ ├ typedId: TypedIdentifier
│ │ ├ identifier: Identifier; bool
│ │ └ type: Identifier; Bool
│ └ defaultValue: null
│ ├ returnT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment