onelang
Version:
OneLang transpiler framework core
24 lines (23 loc) • 1.29 kB
TypeScript
import { OneAst as one } from "../Ast";
import { SchemaContext } from "../SchemaContext";
import { VariableContext } from "../VariableContext";
import { AstTransformer } from "../AstTransformer";
export declare class Context {
variables: VariableContext<one.Reference>;
constructor(parent?: Context);
addLocalVar(variable: one.VariableBase): void;
inherit(): Context;
}
export declare class ResolveIdentifiersTransform extends AstTransformer<Context> {
schemaCtx: SchemaContext;
constructor(schemaCtx: SchemaContext);
protected visitIdentifier(id: one.Identifier, context: Context): void;
protected visitVariable(stmt: one.VariableDeclaration, context: Context): void;
protected visitForStatement(stmt: one.ForStatement, context: Context): void;
protected visitForeachStatement(stmt: one.ForeachStatement, context: Context): void;
protected tryToConvertImplicitVarDecl(stmt: one.ExpressionStatement, context: Context): boolean;
protected visitExpressionStatement(stmt: one.ExpressionStatement, context: Context): void;
protected visitMethodLike(method: one.Method | one.Constructor, classContext: Context): void;
protected visitClass(cls: one.Class, globalContext: Context): void;
static transform(schemaCtx: SchemaContext): void;
}