AstNode(type: AstType, value: Any? = null, operator: String? = null, left: AstNode? = null, right: AstNode? = null, from: AstNode? = null, relative: Boolean = false, subject: AstNode? = null, name: String? = null, expression: AstNode? = null, test: AstNode? = null, consequent: AstNode? = null, alternate: AstNode? = null, arguments: MutableList<AstNode> = mutableListOf())
A node of the abstract syntax tree.
This class has a lot of properties because it needs to represent all types of nodes (See AstType). It should be possible to make this much simpler by creating a dedicated class for each type.