ifc-expressions
Version:
Parsing and evaluation of IFC expressions
24 lines (23 loc) • 1 kB
JavaScript
import { ExprVisitor } from "../postprocess/ExprVisitor.js";
import { TextSpan } from "../util/TextSpan.js";
import { ExprWalker } from "../postprocess/ExprWalker.js";
export class ExprToTextInputLinker extends ExprVisitor {
constructor(input, exprManager) {
super();
this.exprManager = exprManager;
this.input = input;
}
static linkTextToExpressions(input, expr, exprManager) {
const visitor = new ExprToTextInputLinker(input, exprManager);
const walker = new ExprWalker(visitor);
walker.walk(expr);
}
enterExpr(expr) {
const parserRuleContext = this.exprManager.getContext(expr);
// @ts-ignore
// @ts-ignore
const textSpan = TextSpan.of(parserRuleContext.start.line, parserRuleContext.start.column + 1, parserRuleContext.stop.line, parserRuleContext.stop.column + (parserRuleContext.stop.text || "").length);
expr.setTextSpan(textSpan);
}
}
//# sourceMappingURL=ExprToTextInputLinker.js.map