summaryrefslogtreecommitdiff
path: root/src/lib/core/lexer.ts
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2025-11-02 18:08:16 -0800
committerKai Stevenson <kai@kaistevenson.com>2025-11-02 18:09:14 -0800
commite9f3c782bc10d4c5c44faf768aa60cd6bcc66574 (patch)
treecb4e447a5ce5deffe989a65ff774e90f0e8ad518 /src/lib/core/lexer.ts
parentf53622d63c74a1e2dd0397f4a26f31aa72dea60b (diff)
refactor
Diffstat (limited to 'src/lib/core/lexer.ts')
-rw-r--r--src/lib/core/lexer.ts62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/lib/core/lexer.ts b/src/lib/core/lexer.ts
deleted file mode 100644
index 33a408a..0000000
--- a/src/lib/core/lexer.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import { LexerCtx, Token, TokenSubType, TokenType } from "./common";
-
-export type BreakingToken =
- | TokenType.OPEN_PAREN
- | TokenType.CLOSE_PAREN
- | TokenType.COMMA
- | TokenType.SEMICOLON
- | TokenType.SPACE;
-
-export type IsWhitespace<T extends string> = T extends `${TokenType.SPACE}`
- ? true
- : T extends `${TokenType.COMMA}`
- ? true
- : T extends `${TokenType.SEMICOLON}`
- ? true
- : false;
-
-export type ProcessNameCollection<
- Ctx extends LexerCtx,
- Tail extends string,
- _Token extends Token | null
-> = {
- next: Tail;
- nameCollection: "";
- tokens: _Token extends null
- ? [
- ...Ctx["tokens"],
- ...(Ctx["nameCollection"] extends ""
- ? []
- : [Token<TokenType.NAME, Ctx["nameCollection"]>])
- ]
- : [
- ...Ctx["tokens"],
- ...(Ctx["nameCollection"] extends ""
- ? [_Token]
- : [Token<TokenType.NAME, Ctx["nameCollection"]>, _Token])
- ];
-};
-
-export type IsOpen<T> = T extends `${TokenType.OPEN_PAREN}` ? true : false;
-export type IsClose<T> = T extends `${TokenType.CLOSE_PAREN}` ? true : false;
-
-export type _Lex<Ctx extends LexerCtx> =
- Ctx["next"] extends `${infer Head}${infer Tail}`
- ? IsWhitespace<Head> extends true
- ? _Lex<ProcessNameCollection<Ctx, Tail, null>>
- : IsOpen<Head> extends true
- ? _Lex<ProcessNameCollection<Ctx, Tail, Token<TokenType.OPEN_PAREN>>>
- : IsClose<Head> extends true
- ? _Lex<ProcessNameCollection<Ctx, Tail, Token<TokenType.CLOSE_PAREN>>>
- : _Lex<{
- next: Tail;
- nameCollection: `${Ctx["nameCollection"]}${Head}`;
- tokens: Ctx["tokens"];
- }>
- : Ctx["tokens"];
-
-export type Lex<Raw extends string> = _Lex<{
- next: `${Raw};`;
- tokens: [];
- nameCollection: "";
-}>;