import { BaseNode, Keyword } from "./Base"; import { ConstraintCollate, ConstraintNotNull } from "./Constraint"; import { DataType } from "./DataType"; import { Identifier, ListExpr, ParenExpr, BinaryExpr, Expr, FuncCall, CaseWhen, CaseElse, Variable, MemberExpr } from "./Expr"; import { StringLiteral } from "./Literal"; import { CommaClause } from "./Node"; import { ExecuteExpr } from "./PreparedStatements"; import { AsClause } from "./OtherClauses"; import { Program } from "./Program"; import { SubSelect } from "./Select"; import { WhenClause } from "./Trigger"; export type AllProceduralNodes = AllProceduralStatements | ColonLabel | ChevronLabel | DeclareClause | ExceptionClause | ExceptionWhenClause | ErrorBigquery | ErrorSqlstate | ErrorName | ErrorFormatString | DeclareInit | IfClause | ElseifClause | ElseClause | ForRange | ForByClause | ForeachSlice | RaiseLevel | RaiseUsingClause | RaiseOptionElement; export type AllProceduralStatements = LabeledStmt | BlockStmt | DeclareStmt | DeclareAliasStmt | SetStmt | AssignmentStmt | IfStmt | CaseStmt | LoopStmt | RepeatStmt | WhileStmt | WhileLoopStmt | ForStmt | ForLoopStmt | ForeachStmt | BreakStmt | ContinueStmt | CallStmt | ReturnStmt | ReturnNextStmt | ReturnQueryStmt | RaiseStmt | AssertStmt | NullStmt; export interface LabeledStmt extends BaseNode { type: "labeled_stmt"; beginLabel: ColonLabel | ChevronLabel; statement: BlockStmt | LoopStmt | RepeatStmt | WhileStmt | WhileLoopStmt | ForStmt | ForLoopStmt | ForeachStmt; endLabel?: Identifier; } /** For the label: syntax (as in MySQL, BigQuery, DB2) */ export interface ColonLabel extends BaseNode { type: "colon_label"; label: Identifier; } /** For the <