# Structs
ArgumentPairExpression represents a key/value pair in method parameters or arguments.
ArrayExpression defines the array expression literal which contains the node expression and its value.
AssignExpression represents variable assignment in Goby.
BaseNode holds the attribute every expression or statement should have.
BlockStatement represents a block statement.
BooleanExpression defines the boolean expression literal which contains the node expression and its value.
BreakStatement represents "break" keyword.
CallExpression represents an expression for calling a method.
ClassStatement represents a class node in AST.
ConditionalExpression represents if or elsif expression.
Constant represents a constant that may include namespace.
DefStatement represents a "def" keyword with block.
ExpressionStatement represents an expression statement.
FloatLiteral contains the node expression and its value.
GetBlockExpression represents `get_block` call in the AST.
HashExpression defines the hash expression literal which contains the node expression and its value.
Identifier represents an identifier string.
IfExpression represents an "if" expression.
InfixExpression represents an expression with an infix.
InstanceVariable represents an instance variables.
IntegerLiteral contains the node expression and its value.
ModuleStatement represents a module node in AST.
MultiVariableExpression is not really an expression, it's just a container that holds multiple Variables.
NextStatement represents "next" keyword.
NilExpression represents nil node.
PrefixExpression represents an expression with a prefix.
Program is the root node of entire AST.
RangeExpression defines the range expression literal which contains the node expression and its start/end value.
ReturnStatement represents an expression as a return value.
SelfExpression represents a "self" expression.
StringLiteral contains the node expression and its value.
WhileStatement represents a "while" keyword with a block.
YieldExpression represents a "yield" expression.
# Interfaces
Expression satisfies "node" and expressionNode.
Statement satisfies "node" and statementNode.
TestableStatement holds predicate functions for checking statements.
Variable interface represents assignable nodes in Goby, currently are Identifier, InstanceVariable and Constant.
# Type aliases
CodeBlock is a list of TestableStatement.
TestableIdentifierValue for marking a string as an identifier's value for test.