001package gudusoft.gsqlparser.ir.builder;
002
003import gudusoft.gsqlparser.TStatementList;
004import gudusoft.gsqlparser.analyzer.v2.AnalyzerV2Config;
005import gudusoft.gsqlparser.ir.bound.BoundProgram;
006
007/**
008 * Phase 1 Builder: Scope/Symbol/Object binding.
009 * <p>
010 * Input: AST statement list (from TGSqlParser.parse())
011 * Output: BoundProgram (all binding results)
012 * <p>
013 * Implementations traverse the AST via Visitor pattern, resolving names to
014 * semantic objects. The builder MUST NOT modify any AST node fields.
015 */
016public interface IBoundIRBuilder {
017
018    /**
019     * Builds the Bound IR from the given AST statements.
020     *
021     * @param stmts  parsed SQL statements
022     * @param config analyzer configuration
023     * @return bound program with all scopes, symbols, and references
024     */
025    BoundProgram build(TStatementList stmts, AnalyzerV2Config config);
026}