AST Nodes

AST (Abstract Syntax Tree) nodes represent parsed TLSQL statements. The AST is organized hierarchically:

  • Statements: Top-level constructs (TRAIN, PREDICT, VALIDATE).

  • Clauses: Statement components (WITH, FROM, WHERE, VALUE).

  • Expressions: Conditional and logical expressions.

  • References: Column and table references.

Base Classes

class ASTNode[source]

Bases: object

Base class for all AST nodes. All AST nodes inherit from this class, used for type identification and unified interface.

class Expr[source]

Bases: ASTNode

Base class for all expressions.

Column and Reference Classes

class ColumnReference(table=None, column='')[source]

Bases: ASTNode

Column reference, format is ‘table.column’ or ‘column’.

table

Table name.

column

Column name.

class ColumnSelector(table, column)[source]

Bases: ASTNode

Column selector in WITH clause.

table

Table name.

column

Column name, ‘*’ means all columns.

Expression Classes

class LiteralExpr(value, value_type)[source]

Bases: Expr

Literal value.

value

Value of literal.

value_type

Type of value, ‘number’ and ‘string’.

class ColumnExpr(column)[source]

Bases: Expr

Column reference in expression.

column

Column reference object.

class BinaryExpr(left, operator, right)[source]

Bases: Expr

Binary expression.

Supported operators: - Comparison operators: >, <, >=, <=, ==, !=, =. - Logical operators: AND, OR.

left

Left operand expression.

operator

Operator.

right

Right operand expression.

class UnaryExpr(operator, operand)[source]

Bases: Expr

Unary expression.

Supported operator:

NOT:Logical negation

operator

Operator.

operand

Operand expression.

class BetweenExpr(column, lower, upper)[source]

Bases: Expr

BETWEEN expression.

Syntax: column BETWEEN value1 AND value2.

column

Column reference expression.

lower

Lower bound value expression.

upper

Upper bound value expression.

class InExpr(column, values)[source]

Bases: Expr

IN expression.

Syntax: column IN (value1, value2, …).

column

Column reference expression.

values

Value list.

Statement Classes

class Statement(train=None, predict=None, validate=None)[source]

Bases: ASTNode

Contains TRAIN/PREDICT/VALIDATE statements.

train

TRAIN statement.

predict

PREDICT statement.

validate

VALIDATE statement.

class TrainStatement(with_clause, tables, where=None)[source]

Bases: ASTNode

TRAIN statement.

Complete syntax: TRAIN WITH (column_selectors) FROM table1, table2, … [WHERE conditions]

with_clause

WITH clause.

tables

Tables clause.

where

WHERE clause.

class PredictStatement(value, from_table, where=None)[source]

Bases: ASTNode

PREDICT statement.

PREDICT VALUE(target_column, predict_type) FROM table [WHERE conditions]

value

VALUE clause.

from_table

FROM clause.

where

WHERE clause.

class ValidateStatement(with_clause, tables, where=None)[source]

Bases: ASTNode

VALIDATE statement.

VALIDATE WITH (column_selectors) FROM table1, table2, … [WHERE conditions]

with_clause

WITH clause.

tables

Tables clause.

where

WHERE clause.

Clause Classes

class WithClause(selectors=<factory>)[source]

Bases: ASTNode

WITH clause in TRAIN/VALIDATE statement.

selectors

Column selector list.

class TablesClause(tables=<factory>)[source]

Bases: ASTNode

FROM clause for multiple tables.

Syntax: FROM table1, table2, …

tables

Table name list.

class ValueClause(target, predict_type)[source]

Bases: ASTNode

VALUE clause in PREDICT statement.

target

Prediction target column.

predict_type

Prediction type.

class FromClause(table)[source]

Bases: ASTNode

FROM clause.

table

Table name.

class WhereClause(condition)[source]

Bases: ASTNode

WHERE clause.

condition

Condition expression tree.

class PredictType(type_name)[source]

Bases: ASTNode

Prediction type, CLF/REG.

type_name

Prediction type.