import { PosInfo } from "./gen_parser"; import * as P from "./gen_parser"; import { Stmt } from "./values"; import { ASTVisitor } from "./visitor"; type DeclaredID = { declared: true; id: string; }; export declare class Binder implements ASTVisitor { depthMap: Map; private scopes; private globals; private lateBindAvail; visitProgram(p: P.Program): void; visitStmts(stmts: Stmt[]): void; visitStmt(stmt: Stmt): void; visitIfStmt(stmt: P.IfStmt): void; visitBlockStmt(stmt: P.BlockStmt): void; visitAssgnStmt(stmt: P.AssgnStmt): void; visitDefnStmt(stmt: P.DefnStmt): void; visitNuairStmt(stmt: P.NuairStmt): void; visitLeStmt(stmt: P.LeStmt): void; visitGniomhStmt(stmt: P.GniomhStmt): void; visitToradhStmt(stmt: P.ToradhStmt): void; visitCtlchStmt(stmt: P.CtlchStmt): void; visitExpr(expr: P.Expr): void; visitAnd(expr: P.And): void; visitOr(expr: P.Or): void; visitEq(expr: P.Eq): void; visitComp(expr: P.Comp): void; visitSum(expr: P.Sum): void; visitProduct(expr: P.Product): void; visitPostfix(expr: P.Postfix): void; visitObjLookups(expr: P.ObjLookups): void; visitAtom(atom: P.Atom): void; visitListLit(expr: P.ListLit): void; visitGniomhExpr(expr: P.GniomhExpr): void; visitID(expr: P.ID): void; enterScope(): void; exitScope(): void; declareGlobal(s: string, start?: PosInfo, end?: PosInfo): DeclaredID; defineGlobal(id: DeclaredID): void; private globalNames; private declareVar; private defineVar; private visitGniomhBody; } export {};