From 728beb5013493e404996f9a61f3c1bf861211d7e Mon Sep 17 00:00:00 2001 From: DualFroz Date: Sun, 23 Aug 2026 20:23:00 +0200 Subject: [PATCH] feat(formula): add formula token types --- lib/src/tokens.dart | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 lib/src/tokens.dart diff --git a/lib/src/tokens.dart b/lib/src/tokens.dart new file mode 100644 index 0000000..af2f9ce --- /dev/null +++ b/lib/src/tokens.dart @@ -0,0 +1,44 @@ +import 'values.dart'; + +enum TokenType { + number, + text, + identifier, + quotedName, + cellRef, + errorLit, + bang, + plus, + minus, + star, + slash, + caret, + percent, + amp, + eq, + neq, + lt, + lte, + gt, + gte, + lparen, + rparen, + comma, + colon, + eof, +} + +class Token { + final TokenType type; + final String lexeme; + final Object? literal; + + const Token(this.type, this.lexeme, [this.literal]); + + double get numberValue => literal as double; + String get textValue => literal as String; + ErrorKind get errorKind => literal as ErrorKind; + + @override + String toString() => 'Token(${type.name}, $lexeme)'; +}