UNPKG

onelang

Version:

OneLang transpiler framework core

51 lines (50 loc) 1.56 kB
export declare namespace ExprLangAst { interface Expression { kind: "binary" | "unary" | "literal" | "identifier" | "parenthesized" | "conditional" | "call" | "propertyAccess" | "elementAccess"; } interface BinaryExpression extends Expression { kind: "binary"; op: "+" | "-" | "*" | "/" | "<<" | ">>"; left: Expression; right: Expression; } interface UnaryExpression extends Expression { kind: "unary"; op: "!" | "+" | "-" | "!"; expr: Expression; } interface LiteralExpression extends Expression { kind: "literal"; type: "number" | "string" | "boolean"; value: any; } interface IdentifierExpression extends Expression { kind: "identifier"; text: string; } interface ParenthesizedExpression extends Expression { kind: "parenthesized"; expr: Expression; } interface ConditionalExpression extends Expression { kind: "conditional"; condition: Expression; whenTrue: Expression; whenFalse: Expression; } interface CallExpression extends Expression { kind: "call"; method: Expression; arguments: Expression[]; } interface PropertyAccessExpression extends Expression { kind: "propertyAccess"; object: Expression; propertyName: string; } interface ElementAccessExpression extends Expression { kind: "elementAccess"; object: Expression; elementExpr: Expression; } }