From c20434533887618820985cbb25081255475852f2 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Wed, 29 Oct 2025 20:22:19 -0700 Subject: references --- src/lib/core/common.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/lib/core/common.ts') diff --git a/src/lib/core/common.ts b/src/lib/core/common.ts index 1283000..a17eff4 100644 --- a/src/lib/core/common.ts +++ b/src/lib/core/common.ts @@ -4,14 +4,22 @@ export enum TokenType { SPACE = " ", SEMICOLON = ";", COMMA = ",", - UNIQUE_SYMBOL = "UNIQUE_SYMBOL", + NAME = "NAME", +} + +export enum TokenSubType { + NA = "NA", + LITERAL = "LITERAL", + REFERENCE = "REFERENCE", } export type Token< Type extends TokenType = TokenType, + Subtype extends TokenSubType = TokenSubType, Name extends string = string > = { type: Type; + subType: Subtype; name: Name; }; @@ -23,23 +31,25 @@ export type LexerCtx = { export enum NodeType { ROOT = "ROOT", - LITERAL = "LITERAL", - CALL = "CALL", + INT = "INT", + EXT = "EXT", PARSER_ERROR = "PARSER_ERROR", } export type ASTNode< Type extends NodeType = NodeType, Name extends string = string, - Children extends ASTNode[] = ASTNode[] + Value extends any = any, + Children extends ASTNode[] = ASTNode[] > = { type: Type; name: Name; + value: Value; children: Children; }; export type ParserCtx = { remainingTokens: readonly Token[]; - lastName: string | null; + lastToken: Token | null; stack: readonly ASTNode[]; }; -- cgit v1.2.3-70-g09d2