import { Machine, State } from "../vm"; import { AnyContext, Context, Goal, Signal } from "../simulation"; import { Expression } from "./expression"; import { Metadata } from "./meta"; export declare abstract class Statement { abstract evaluate(state: State): Machine; abstract get position(): Metadata; } export declare class SFact extends Statement { readonly position: Metadata; readonly name: string; readonly exprs: Expression[]; constructor(position: Metadata, name: string, exprs: Expression[]); evaluate(state: State): Machine; } export declare class SForget extends Statement { readonly position: Metadata; readonly name: string; readonly exprs: Expression[]; constructor(position: Metadata, name: string, exprs: Expression[]); evaluate(state: State): Machine; } export declare class SExpression extends Statement { readonly position: Metadata; readonly expr: Expression; constructor(position: Metadata, expr: Expression); evaluate(state: State): Machine; } export declare class SLet extends Statement { readonly position: Metadata; readonly name: string; readonly expr: Expression; constructor(position: Metadata, name: string, expr: Expression); evaluate(state: State): Machine; } export declare class SBlock extends Statement { readonly position: Metadata; readonly statements: Statement[]; constructor(position: Metadata, statements: Statement[]); evaluate(state: State): Machine; } export declare class SGoto extends Statement { readonly position: Metadata; readonly name: string; constructor(position: Metadata, name: string); evaluate(state: State): Machine; } export declare class SCall extends Statement { readonly position: Metadata; readonly name: string; constructor(position: Metadata, name: string); evaluate(state: State): Machine; } export declare abstract class SimulateContext { abstract realise(state: State): Context; } export declare class SCAny extends SimulateContext { realise(state: State): AnyContext; } export declare class SCNamed extends SimulateContext { readonly name: string; constructor(name: string); realise(state: State): Context; } export declare class SSimulate extends Statement { readonly position: Metadata; readonly context: SimulateContext; readonly actors: Expression; readonly goal: Goal; readonly signals: Signal[]; constructor(position: Metadata, context: SimulateContext, actors: Expression, goal: Goal, signals: Signal[]); evaluate(state: State): Machine; } export declare class SRegister extends Statement { readonly position: Metadata; readonly expr: Expression; constructor(position: Metadata, expr: Expression); evaluate(state: State): Machine; } export declare class SAssert extends Statement { readonly position: Metadata; readonly expr: Expression; private id; constructor(position: Metadata, expr: Expression); evaluate(state0: State): Machine; }