/****************************************************************************** * This file was generated by langium-cli 4.3.0. * DO NOT EDIT MANUALLY! ******************************************************************************/ import * as langium from 'langium'; export declare const MiniLogoTerminals: { HEX: RegExp; ID: RegExp; NUMBER: RegExp; WS: RegExp; ML_COMMENT: RegExp; SL_COMMENT: RegExp; }; export type MiniLogoTerminalNames = keyof typeof MiniLogoTerminals; export type MiniLogoKeywordNames = "(" | ")" | "*" | "+" | "," | "-" | "/" | "=" | "color" | "def" | "down" | "for" | "move" | "pen" | "to" | "up" | "{" | "}"; export type MiniLogoTokenNames = MiniLogoTerminalNames | MiniLogoKeywordNames; export interface BinExpr extends langium.AstNode { readonly $container: BinExpr | Color | For | Group | Macro | Move | NegExpr; readonly $type: 'BinExpr'; e1: Expr | PrimExpr; e2: Expr | PrimExpr; op: '*' | '+' | '-' | '/'; } export declare const BinExpr: { readonly $type: "BinExpr"; readonly e1: "e1"; readonly e2: "e2"; readonly op: "op"; }; export declare function isBinExpr(item: unknown): item is BinExpr; export type Cmd = Color | For | Move | Pen; export declare const Cmd: { readonly $type: "Cmd"; }; export declare function isCmd(item: unknown): item is Cmd; export interface Color extends langium.AstNode { readonly $container: Def | For | Model; readonly $type: 'Color'; b?: Expr; color?: string; g?: Expr; r?: Expr; } export declare const Color: { readonly $type: "Color"; readonly b: "b"; readonly color: "color"; readonly g: "g"; readonly r: "r"; }; export declare function isColor(item: unknown): item is Color; export interface Def extends langium.AstNode { readonly $container: Model; readonly $type: 'Def'; body: Array; name: string; params: Array; } export declare const Def: { readonly $type: "Def"; readonly body: "body"; readonly name: "name"; readonly params: "params"; }; export declare function isDef(item: unknown): item is Def; export type Expr = BinExpr | PrimExpr; export declare const Expr: { readonly $type: "Expr"; }; export declare function isExpr(item: unknown): item is Expr; export interface For extends langium.AstNode { readonly $container: Def | For | Model; readonly $type: 'For'; body: Array; e1: Expr; e2: Expr; var: Param; } export declare const For: { readonly $type: "For"; readonly body: "body"; readonly e1: "e1"; readonly e2: "e2"; readonly var: "var"; }; export declare function isFor(item: unknown): item is For; export interface Group extends langium.AstNode { readonly $container: BinExpr | Color | For | Group | Macro | Move | NegExpr; readonly $type: 'Group'; ge: Expr; } export declare const Group: { readonly $type: "Group"; readonly ge: "ge"; }; export declare function isGroup(item: unknown): item is Group; export interface Lit extends langium.AstNode { readonly $container: BinExpr | Color | For | Group | Macro | Move | NegExpr; readonly $type: 'Lit'; val: number; } export declare const Lit: { readonly $type: "Lit"; readonly val: "val"; }; export declare function isLit(item: unknown): item is Lit; export interface Macro extends langium.AstNode { readonly $container: Def | For | Model; readonly $type: 'Macro'; args: Array; def: langium.Reference; } export declare const Macro: { readonly $type: "Macro"; readonly args: "args"; readonly def: "def"; }; export declare function isMacro(item: unknown): item is Macro; export interface Model extends langium.AstNode { readonly $type: 'Model'; defs: Array; stmts: Array; } export declare const Model: { readonly $type: "Model"; readonly defs: "defs"; readonly stmts: "stmts"; }; export declare function isModel(item: unknown): item is Model; export interface Move extends langium.AstNode { readonly $container: Def | For | Model; readonly $type: 'Move'; ex: Expr; ey: Expr; } export declare const Move: { readonly $type: "Move"; readonly ex: "ex"; readonly ey: "ey"; }; export declare function isMove(item: unknown): item is Move; export interface NegExpr extends langium.AstNode { readonly $container: BinExpr | Color | For | Group | Macro | Move | NegExpr; readonly $type: 'NegExpr'; ne: Expr; } export declare const NegExpr: { readonly $type: "NegExpr"; readonly ne: "ne"; }; export declare function isNegExpr(item: unknown): item is NegExpr; export interface Param extends langium.AstNode { readonly $container: Def | For; readonly $type: 'Param'; name: string; } export declare const Param: { readonly $type: "Param"; readonly name: "name"; }; export declare function isParam(item: unknown): item is Param; export interface Pen extends langium.AstNode { readonly $container: Def | For | Model; readonly $type: 'Pen'; mode: 'down' | 'up'; } export declare const Pen: { readonly $type: "Pen"; readonly mode: "mode"; }; export declare function isPen(item: unknown): item is Pen; export type PrimExpr = Group | Lit | NegExpr | Ref; export declare const PrimExpr: { readonly $type: "PrimExpr"; }; export declare function isPrimExpr(item: unknown): item is PrimExpr; export interface Ref extends langium.AstNode { readonly $container: BinExpr | Color | For | Group | Macro | Move | NegExpr; readonly $type: 'Ref'; val: langium.Reference; } export declare const Ref: { readonly $type: "Ref"; readonly val: "val"; }; export declare function isRef(item: unknown): item is Ref; export type Stmt = Cmd | Macro; export declare const Stmt: { readonly $type: "Stmt"; }; export declare function isStmt(item: unknown): item is Stmt; export type MiniLogoAstType = { BinExpr: BinExpr; Cmd: Cmd; Color: Color; Def: Def; Expr: Expr; For: For; Group: Group; Lit: Lit; Macro: Macro; Model: Model; Move: Move; NegExpr: NegExpr; Param: Param; Pen: Pen; PrimExpr: PrimExpr; Ref: Ref; Stmt: Stmt; }; export declare class MiniLogoAstReflection extends langium.AbstractAstReflection { readonly types: { readonly BinExpr: { readonly name: "BinExpr"; readonly properties: { readonly e1: { readonly name: "e1"; }; readonly e2: { readonly name: "e2"; }; readonly op: { readonly name: "op"; }; }; readonly superTypes: ["Expr"]; }; readonly Cmd: { readonly name: "Cmd"; readonly properties: {}; readonly superTypes: ["Stmt"]; }; readonly Color: { readonly name: "Color"; readonly properties: { readonly b: { readonly name: "b"; readonly optional: true; }; readonly color: { readonly name: "color"; readonly optional: true; }; readonly g: { readonly name: "g"; readonly optional: true; }; readonly r: { readonly name: "r"; readonly optional: true; }; }; readonly superTypes: ["Cmd"]; }; readonly Def: { readonly name: "Def"; readonly properties: { readonly body: { readonly name: "body"; readonly defaultValue: []; readonly optional: true; }; readonly name: { readonly name: "name"; }; readonly params: { readonly name: "params"; readonly defaultValue: []; readonly optional: true; }; }; readonly superTypes: []; }; readonly Expr: { readonly name: "Expr"; readonly properties: {}; readonly superTypes: []; }; readonly For: { readonly name: "For"; readonly properties: { readonly body: { readonly name: "body"; readonly defaultValue: []; readonly optional: true; }; readonly e1: { readonly name: "e1"; }; readonly e2: { readonly name: "e2"; }; readonly var: { readonly name: "var"; }; }; readonly superTypes: ["Cmd"]; }; readonly Group: { readonly name: "Group"; readonly properties: { readonly ge: { readonly name: "ge"; }; }; readonly superTypes: ["PrimExpr"]; }; readonly Lit: { readonly name: "Lit"; readonly properties: { readonly val: { readonly name: "val"; }; }; readonly superTypes: ["PrimExpr"]; }; readonly Macro: { readonly name: "Macro"; readonly properties: { readonly args: { readonly name: "args"; readonly defaultValue: []; readonly optional: true; }; readonly def: { readonly name: "def"; readonly referenceType: "Def"; }; }; readonly superTypes: ["Stmt"]; }; readonly Model: { readonly name: "Model"; readonly properties: { readonly defs: { readonly name: "defs"; readonly defaultValue: []; readonly optional: true; }; readonly stmts: { readonly name: "stmts"; readonly defaultValue: []; readonly optional: true; }; }; readonly superTypes: []; }; readonly Move: { readonly name: "Move"; readonly properties: { readonly ex: { readonly name: "ex"; }; readonly ey: { readonly name: "ey"; }; }; readonly superTypes: ["Cmd"]; }; readonly NegExpr: { readonly name: "NegExpr"; readonly properties: { readonly ne: { readonly name: "ne"; }; }; readonly superTypes: ["PrimExpr"]; }; readonly Param: { readonly name: "Param"; readonly properties: { readonly name: { readonly name: "name"; }; }; readonly superTypes: []; }; readonly Pen: { readonly name: "Pen"; readonly properties: { readonly mode: { readonly name: "mode"; }; }; readonly superTypes: ["Cmd"]; }; readonly PrimExpr: { readonly name: "PrimExpr"; readonly properties: {}; readonly superTypes: ["Expr"]; }; readonly Ref: { readonly name: "Ref"; readonly properties: { readonly val: { readonly name: "val"; readonly referenceType: "Param"; }; }; readonly superTypes: ["PrimExpr"]; }; readonly Stmt: { readonly name: "Stmt"; readonly properties: {}; readonly superTypes: []; }; }; } export declare const reflection: MiniLogoAstReflection; //# sourceMappingURL=ast.d.ts.map