import LineContext from '../Assembler/LineContext'; import BinarySerializer from '../BinarySerializer'; import ILineState from '../LineState/ILineState'; import PatchType from '../Linker/PatchType'; import Logger from '../Logger'; import Node from '../Node'; import Token from '../Token'; import EvaluatorContext from './EvaluatorContext'; export default class Evaluator { logger: Logger; constructor(logger: Logger); evaluate(ctx: EvaluatorContext): Promise; evaluateLine(state: ILineState, line: LineContext, ctx: EvaluatorContext): Promise; calcConstExprOrPatch(type: PatchType, byteOffset: number, op: Node, expected: 'number', ctx: EvaluatorContext): number; calcConstExprOrPatch(type: PatchType, byteOffset: number, op: Node, expected: 'string', ctx: EvaluatorContext): string; calcConstExprOrPatch(type: PatchType, byteOffset: number, op: Node, expected: 'either', ctx: EvaluatorContext): number | string; calcConstExpr(op: Node, expected: 'number', ctx: EvaluatorContext): number; calcConstExpr(op: Node, expected: 'string', ctx: EvaluatorContext): string; calcConstExpr(op: Node, expected: 'either', ctx: EvaluatorContext): number | string; isExpr(op: Node): boolean; isConstExpr(op: Node, ctx: EvaluatorContext): boolean; getConstExprType(op: Node): 'number' | 'string'; buildLinkExpr(bs: BinarySerializer, op: Node, ctx: EvaluatorContext): number[]; defineLabel(state: ILineState, label: Node, ctx: EvaluatorContext): void; applySourceReplace(source: string, regex: RegExp, value: string): string; isFeatureEnabled(feature: string, token: Token | undefined, ctx: EvaluatorContext): boolean; error(msg: string, token: Token | undefined, ctx: EvaluatorContext): void; warn(msg: string, token: Token | undefined, ctx: EvaluatorContext): void; }