@witchcraft/expressit 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +1 -2
  2. package/dist/Lexer.d.ts +99 -94
  3. package/dist/Lexer.d.ts.map +1 -1
  4. package/dist/Lexer.js +211 -559
  5. package/dist/Parser.d.ts +26 -26
  6. package/dist/Parser.d.ts.map +1 -1
  7. package/dist/Parser.js +2 -1
  8. package/dist/ast/builders/condition.d.ts +1 -1
  9. package/dist/ast/builders/condition.d.ts.map +1 -1
  10. package/dist/ast/builders/condition.js +1 -0
  11. package/dist/ast/builders/delim.d.ts +2 -2
  12. package/dist/ast/builders/delim.d.ts.map +1 -1
  13. package/dist/ast/builders/error.d.ts +2 -2
  14. package/dist/ast/builders/error.d.ts.map +1 -1
  15. package/dist/ast/builders/expression.d.ts +2 -2
  16. package/dist/ast/builders/expression.d.ts.map +1 -1
  17. package/dist/ast/builders/expression.js +2 -6
  18. package/dist/ast/builders/group.d.ts +1 -1
  19. package/dist/ast/builders/group.d.ts.map +1 -1
  20. package/dist/ast/builders/group.js +1 -3
  21. package/dist/ast/builders/pos.d.ts +2 -2
  22. package/dist/ast/builders/pos.d.ts.map +1 -1
  23. package/dist/ast/builders/token.d.ts +2 -2
  24. package/dist/ast/builders/token.d.ts.map +1 -1
  25. package/dist/ast/builders/type.d.ts +2 -2
  26. package/dist/ast/builders/type.d.ts.map +1 -1
  27. package/dist/ast/builders/variable.d.ts +3 -3
  28. package/dist/ast/builders/variable.d.ts.map +1 -1
  29. package/dist/ast/createConditionNode.d.ts +1 -1
  30. package/dist/ast/createConditionNode.d.ts.map +1 -1
  31. package/dist/ast/createGroupNode.d.ts +1 -1
  32. package/dist/ast/createGroupNode.d.ts.map +1 -1
  33. package/dist/ast/createToken.d.ts +2 -2
  34. package/dist/ast/createToken.d.ts.map +1 -1
  35. package/dist/ast/createToken.js +2 -2
  36. package/dist/ast/error.d.ts +2 -2
  37. package/dist/ast/error.d.ts.map +1 -1
  38. package/dist/ast/error.js +1 -0
  39. package/dist/ast/handlers.d.ts +23 -23
  40. package/dist/ast/handlers.d.ts.map +1 -1
  41. package/dist/ast/handlers.js +1 -1
  42. package/dist/examples/ParserWithSqlSupport.d.ts +5 -5
  43. package/dist/examples/ParserWithSqlSupport.d.ts.map +1 -1
  44. package/dist/examples/ParserWithSqlSupport.js +2 -0
  45. package/dist/index.js +2 -2
  46. package/dist/internal/ExpressitError.d.ts +2 -2
  47. package/dist/internal/ExpressitError.d.ts.map +1 -1
  48. package/dist/internal/checkParserOpts.js +11 -11
  49. package/dist/package.json.js +2 -60
  50. package/dist/types/ast.d.ts +60 -58
  51. package/dist/types/ast.d.ts.map +1 -1
  52. package/dist/types/ast.js +26 -27
  53. package/dist/types/autocomplete.d.ts +23 -21
  54. package/dist/types/autocomplete.d.ts.map +1 -1
  55. package/dist/types/autocomplete.js +24 -21
  56. package/dist/types/errors.d.ts +12 -10
  57. package/dist/types/errors.d.ts.map +1 -1
  58. package/dist/types/errors.js +8 -7
  59. package/dist/types/index.js +2 -2
  60. package/dist/types/parser.d.ts +3 -3
  61. package/dist/types/parser.d.ts.map +1 -1
  62. package/dist/utils/getCursorInfo.js +2 -0
  63. package/dist/utils/getOppositeDelimiter.d.ts +2 -2
  64. package/dist/utils/getOppositeDelimiter.d.ts.map +1 -1
  65. package/dist/utils/isDelimiter.d.ts +2 -2
  66. package/dist/utils/isDelimiter.d.ts.map +1 -1
  67. package/dist/utils/isParen.d.ts +2 -2
  68. package/dist/utils/isParen.d.ts.map +1 -1
  69. package/dist/utils/isQuote.d.ts +2 -2
  70. package/dist/utils/isQuote.d.ts.map +1 -1
  71. package/package.json +13 -13
  72. package/src/Lexer.ts +98 -88
  73. package/src/Parser.ts +61 -61
  74. package/src/ast/builders/condition.ts +3 -3
  75. package/src/ast/builders/delim.ts +4 -4
  76. package/src/ast/builders/error.ts +3 -3
  77. package/src/ast/builders/expression.ts +4 -8
  78. package/src/ast/builders/group.ts +2 -4
  79. package/src/ast/builders/pos.ts +3 -3
  80. package/src/ast/builders/token.ts +2 -2
  81. package/src/ast/builders/type.ts +2 -2
  82. package/src/ast/builders/variable.ts +5 -5
  83. package/src/ast/createConditionNode.ts +2 -2
  84. package/src/ast/createGroupNode.ts +4 -4
  85. package/src/ast/createToken.ts +6 -6
  86. package/src/ast/error.ts +2 -2
  87. package/src/ast/handlers.ts +20 -20
  88. package/src/examples/ParserWithSqlSupport.ts +11 -5
  89. package/src/internal/ExpressitError.ts +3 -3
  90. package/src/internal/checkParserOpts.ts +11 -11
  91. package/src/types/ast.ts +101 -96
  92. package/src/types/autocomplete.ts +26 -22
  93. package/src/types/errors.ts +18 -13
  94. package/src/types/parser.ts +3 -3
  95. package/src/utils/getOppositeDelimiter.ts +2 -2
  96. package/src/utils/getSurroundingErrors.ts +4 -4
  97. package/src/utils/isDelimiter.ts +3 -3
  98. package/src/utils/isParen.ts +2 -2
  99. package/src/utils/isQuote.ts +2 -2
package/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  ### 🚧 WORK IN PROGRESS 🚧
2
2
  [![NPM Version (with latest tag)](https://img.shields.io/npm/v/%40witchcraft%2Fexpressit/latest)](https://www.npmjs.com/package/@witchcraft/expressit/v/latest)
3
3
  <!-- [![NPM Version (with beta tag)](https://img.shields.io/npm/v/%40witchcraft%2Fexpressit/beta)](https://www.npmjs.com/package/@witchcraft/expressit/v/beta) -->
4
- [![Build](https://github.com/witchcraftjs/expressit/actions/workflows/build.yml/badge.svg)](https://github.com/witchcraftjs/expressit/actions/workflows/build.yml)
5
4
  [![Docs](https://github.com/witchcraftjs/expressit/workflows/Docs/badge.svg)](https://github.com/witchcraftjs/expressit/actions/workflows/docs.yml)
6
5
  [![Release](https://github.com/witchcraftjs/expressit/actions/workflows/release.yml/badge.svg)](https://github.com/witchcraftjs/expressit/actions/workflows/release.yml)
7
6
 
@@ -88,6 +87,6 @@ Many more examples can be found in the [tests](https://github.com/witchcraftjs/e
88
87
 
89
88
  ## Related
90
89
 
91
- [Shortcuts Manager](https://github.com/alanscodelog/shortcuts-manager)
90
+ [Shortcuts Manager](https://github.com/witchcraftjs/spellcraft)
92
91
 
93
92
  [Parsekey (shortcuts parser)](https://github.com/alanscodelog/parsekey)
package/dist/Lexer.d.ts CHANGED
@@ -1,55 +1,60 @@
1
+ import type { EnumLike } from "@alanscodelog/utils";
1
2
  import type { FullParserOptions } from "./types/index.js";
2
- declare enum MODE {
3
- MAIN = "MAIN",
4
- MAYBE_QUOTE_ERROR = "MAYBE_QUOTE_ERROR",
5
- NOT_SINGLE = "NOT_SINGLE",
6
- NOT_DOUBLE = "NOT_DOUBLE",
7
- NOT_BACKTICK = "NOT_BACKTICK",
8
- NOT_REGEX = "NOT_REGEX",
9
- REGEX_END = "REGEX_END",
10
- BRACKET_MAIN = "BRACKET_MAIN",
11
- BRACKET_MAYBE_QUOTE_ERROR = "BRACKET_MAYBE_QUOTE_ERROR",
12
- BRACKET_NOT_SINGLE = "BRACKET_NOT_SINGLE",
13
- BRACKET_NOT_DOUBLE = "BRACKET_NOT_DOUBLE",
14
- BRACKET_NOT_BACKTICK = "BRACKET_NOT_BACKTICK"
15
- }
16
- export declare enum $T {
17
- _ = "_",// whitespace,
18
- VALUE_UNQUOTED = "VALUE_UNQUOTED",
19
- VALUE_REGEX = "VALUE_REGEX",
20
- VALUE_NOT_SINGLE = "VALUE_NOT_SINGLE",
21
- VALUE_NOT_DOUBLE = "VALUE_NOT_DOUBLE",
22
- VALUE_NOT_BACKTICK = "VALUE_NOT_BACKTICK",
23
- SYM_OR = "SYM_OR",
24
- SYM_AND = "SYM_AND",
25
- SYM_NOT = "SYM_NOT",
26
- WORD_OR = "WORD_OR",
27
- WORD_AND = "WORD_AND",
28
- WORD_NOT = "WORD_NOT",
29
- REGEX_START = "REGEX_START",
30
- REGEX_END = "REGEX_END",
31
- EXP_PROP_OP = "EXP_PROP_OP",
32
- CUSTOM_PROP_OP = "CUSTOM_PROP_OP",
33
- PAREN_L = "PAREN_L",
34
- PAREN_R = "PAREN_R",
35
- BRACKET_L = "BRACKET_L",
36
- BRACKET_R = "BRACKET_R",
37
- QUOTE_SINGLE = "QUOTE_SINGLE",
38
- QUOTE_DOUBLE = "QUOTE_DOUBLE",
39
- QUOTE_BACKTICK = "QUOTE_BACKTICK"
40
- }
41
- export declare enum $C {
42
- ANY = "ANY",
43
- QUOTE_ANY = "QUOTE_ANY",
44
- REGEX_ANY = "REGEX_ANY",
45
- VALUE_FOR_SINGLE = "VALUE_FOR_SINGLE",
46
- VALUE_FOR_DOUBLE = "VALUE_FOR_DOUBLE",
47
- VALUE_FOR_BACKTICK = "VALUE_FOR_BACKTICK",
48
- OPERATOR_OR = "OPERATOR_OR",
49
- OPERATOR_AND = "OPERATOR_AND",
50
- OPERATOR_NOT = "OPERATOR_NOT",
51
- VALUE = "VALUE"
52
- }
3
+ declare const MODE: {
4
+ MAIN: "MAIN";
5
+ MAYBE_QUOTE_ERROR: "MAYBE_QUOTE_ERROR";
6
+ NOT_SINGLE: "NOT_SINGLE";
7
+ NOT_DOUBLE: "NOT_DOUBLE";
8
+ NOT_BACKTICK: "NOT_BACKTICK";
9
+ NOT_REGEX: "NOT_REGEX";
10
+ REGEX_END: "REGEX_END";
11
+ BRACKET_MAIN: "BRACKET_MAIN";
12
+ BRACKET_MAYBE_QUOTE_ERROR: "BRACKET_MAYBE_QUOTE_ERROR";
13
+ BRACKET_NOT_SINGLE: "BRACKET_NOT_SINGLE";
14
+ BRACKET_NOT_DOUBLE: "BRACKET_NOT_DOUBLE";
15
+ BRACKET_NOT_BACKTICK: "BRACKET_NOT_BACKTICK";
16
+ BRACKET_NOT_REGEX: "BRACKET_NOT_REGEX";
17
+ BRACKET_REGEX_END: "BRACKET_REGEX_END";
18
+ };
19
+ export declare const $T: {
20
+ REGEX_END: "REGEX_END";
21
+ _: "_";
22
+ VALUE_UNQUOTED: "VALUE_UNQUOTED";
23
+ VALUE_REGEX: "VALUE_REGEX";
24
+ VALUE_NOT_SINGLE: "VALUE_NOT_SINGLE";
25
+ VALUE_NOT_DOUBLE: "VALUE_NOT_DOUBLE";
26
+ VALUE_NOT_BACKTICK: "VALUE_NOT_BACKTICK";
27
+ SYM_OR: "SYM_OR";
28
+ SYM_AND: "SYM_AND";
29
+ SYM_NOT: "SYM_NOT";
30
+ WORD_OR: "WORD_OR";
31
+ WORD_AND: "WORD_AND";
32
+ WORD_NOT: "WORD_NOT";
33
+ REGEX_START: "REGEX_START";
34
+ EXP_PROP_OP: "EXP_PROP_OP";
35
+ CUSTOM_PROP_OP: "CUSTOM_PROP_OP";
36
+ PAREN_L: "PAREN_L";
37
+ PAREN_R: "PAREN_R";
38
+ BRACKET_L: "BRACKET_L";
39
+ BRACKET_R: "BRACKET_R";
40
+ QUOTE_SINGLE: "QUOTE_SINGLE";
41
+ QUOTE_DOUBLE: "QUOTE_DOUBLE";
42
+ QUOTE_BACKTICK: "QUOTE_BACKTICK";
43
+ };
44
+ export type $TType = EnumLike<typeof $T>;
45
+ export declare const $C: {
46
+ VALUE: "VALUE";
47
+ ANY: "ANY";
48
+ QUOTE_ANY: "QUOTE_ANY";
49
+ REGEX_ANY: "REGEX_ANY";
50
+ VALUE_FOR_SINGLE: "VALUE_FOR_SINGLE";
51
+ VALUE_FOR_DOUBLE: "VALUE_FOR_DOUBLE";
52
+ VALUE_FOR_BACKTICK: "VALUE_FOR_BACKTICK";
53
+ OPERATOR_OR: "OPERATOR_OR";
54
+ OPERATOR_AND: "OPERATOR_AND";
55
+ OPERATOR_NOT: "OPERATOR_NOT";
56
+ };
57
+ export type $CType = EnumLike<typeof $C>;
53
58
  type SymbolInfo = {
54
59
  symOrs: string[];
55
60
  symAnds: string[];
@@ -62,22 +67,22 @@ type SymbolInfo = {
62
67
  customOpAlsoNegation: boolean;
63
68
  };
64
69
  type TokenMatchFunc = (c: string, input: string, start: number, mode: string) => string | boolean;
65
- interface BaseTokenType<T extends $T | $C> {
70
+ interface LexerBaseToken<T extends $TType | $CType> {
66
71
  type: T;
67
72
  skip?: boolean;
68
73
  }
69
- export interface RealTokenType<T extends $T = $T, TPush extends string | undefined = undefined> extends BaseTokenType<T> {
74
+ export interface LexerRealToken<T extends $TType = $TType, TPush extends string | undefined = undefined> extends LexerBaseToken<T> {
70
75
  matches: TokenMatchFunc;
71
76
  push?: TPush | ((mode: string, tokens: Token[]) => TPush);
72
- longerAlt?: $T;
77
+ longerAlt?: $TType;
73
78
  skip?: boolean;
74
79
  }
75
- export interface TokenCategoryType<TC extends $C, TTokens extends RealTokenType<$T, any>[] = RealTokenType<$T, any>[]> extends BaseTokenType<TC> {
80
+ export interface LexerCategoryToken<TC extends $CType, TTokens extends LexerRealToken<$TType, any>[] = LexerRealToken<$TType, any>[]> extends LexerBaseToken<TC> {
76
81
  isCategory: true;
77
82
  entries: Partial<Record<TTokens[number]["type"], TTokens[number]>>;
78
83
  }
79
- export type TokenType<TC extends $C | $T> = TC extends $T ? RealTokenType<TC, any> : TC extends $C ? TokenCategoryType<TC> : never;
80
- export interface Token<T extends $T | $C = $T | $C> {
84
+ export type LexerToken<TC extends $CType | $TType> = TC extends $TType ? LexerRealToken<TC, any> : TC extends $CType ? LexerCategoryToken<TC> : never;
85
+ export interface Token<T extends $TType | $CType = $TType | $CType> {
81
86
  type: T;
82
87
  value: string;
83
88
  startOffset: number;
@@ -87,58 +92,58 @@ export interface Token<T extends $T | $C = $T | $C> {
87
92
  export declare class Lexer {
88
93
  symbols: SymbolInfo;
89
94
  $: {
90
- [key in $T]: RealTokenType<key, any>;
95
+ [key in $TType]: LexerRealToken<key, any>;
91
96
  };
92
97
  $categories: ReturnType<Lexer["createTokens"]>["$categories"];
93
98
  branches: {
94
- [key in keyof typeof MODE]?: TokenType<$T>[];
99
+ [key in keyof typeof MODE]?: LexerToken<$TType>[];
95
100
  };
96
101
  opts: FullParserOptions<any>;
97
102
  constructor(opts?: Partial<FullParserOptions<any>>);
98
103
  calculateSymbolInfo(): SymbolInfo;
99
104
  createTokens(): {
100
105
  $: {
101
- PAREN_L: RealTokenType<$T.PAREN_L, undefined>;
102
- PAREN_R: RealTokenType<$T.PAREN_R, undefined>;
103
- BRACKET_L: RealTokenType<$T.BRACKET_L, MODE.BRACKET_MAIN>;
104
- BRACKET_R: RealTokenType<$T.BRACKET_R, MODE.MAIN>;
105
- CUSTOM_PROP_OP?: RealTokenType<$T.CUSTOM_PROP_OP, undefined> | undefined;
106
- EXP_PROP_OP?: RealTokenType<$T.EXP_PROP_OP, undefined> | undefined;
107
- WORD_NOT?: RealTokenType<$T.WORD_NOT, undefined> | undefined;
108
- WORD_AND?: RealTokenType<$T.WORD_AND, undefined> | undefined;
109
- WORD_OR?: RealTokenType<$T.WORD_OR, undefined> | undefined;
110
- SYM_NOT?: RealTokenType<$T.SYM_NOT, undefined> | undefined;
111
- SYM_AND?: RealTokenType<$T.SYM_AND, undefined> | undefined;
112
- SYM_OR?: RealTokenType<$T.SYM_OR, undefined> | undefined;
113
- _: RealTokenType<$T._, undefined>;
114
- REGEX_START: RealTokenType<$T.REGEX_START, MODE.NOT_REGEX>;
115
- REGEX_END: RealTokenType<$T.REGEX_END, MODE.MAIN>;
116
- VALUE_REGEX: RealTokenType<$T.VALUE_REGEX, MODE.REGEX_END>;
117
- QUOTE_SINGLE: RealTokenType<$T.QUOTE_SINGLE, MODE.MAIN | MODE.NOT_SINGLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_SINGLE>;
118
- QUOTE_DOUBLE: RealTokenType<$T.QUOTE_DOUBLE, MODE.MAIN | MODE.NOT_DOUBLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_DOUBLE>;
119
- QUOTE_BACKTICK: RealTokenType<$T.QUOTE_BACKTICK, MODE.MAIN | MODE.NOT_BACKTICK | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_BACKTICK>;
120
- VALUE_NOT_SINGLE: RealTokenType<$T.VALUE_NOT_SINGLE, MODE.MAIN | MODE.BRACKET_MAIN>;
121
- VALUE_NOT_DOUBLE: RealTokenType<$T.VALUE_NOT_DOUBLE, MODE.MAIN | MODE.BRACKET_MAIN>;
122
- VALUE_NOT_BACKTICK: RealTokenType<$T.VALUE_NOT_BACKTICK, MODE.MAIN | MODE.BRACKET_MAIN>;
123
- VALUE_UNQUOTED: RealTokenType<$T.VALUE_UNQUOTED, MODE.MAIN | MODE.BRACKET_MAIN>;
106
+ PAREN_L: LexerRealToken<"PAREN_L", undefined>;
107
+ PAREN_R: LexerRealToken<"PAREN_R", undefined>;
108
+ BRACKET_L: LexerRealToken<"BRACKET_L", "BRACKET_MAIN">;
109
+ BRACKET_R: LexerRealToken<"BRACKET_R", "MAIN">;
110
+ CUSTOM_PROP_OP?: LexerRealToken<"CUSTOM_PROP_OP", undefined> | undefined;
111
+ EXP_PROP_OP?: LexerRealToken<"EXP_PROP_OP", undefined> | undefined;
112
+ WORD_NOT?: LexerRealToken<"WORD_NOT", undefined> | undefined;
113
+ WORD_AND?: LexerRealToken<"WORD_AND", undefined> | undefined;
114
+ WORD_OR?: LexerRealToken<"WORD_OR", undefined> | undefined;
115
+ SYM_NOT?: LexerRealToken<"SYM_NOT", undefined> | undefined;
116
+ SYM_AND?: LexerRealToken<"SYM_AND", undefined> | undefined;
117
+ SYM_OR?: LexerRealToken<"SYM_OR", undefined> | undefined;
118
+ _: LexerRealToken<"_", undefined>;
119
+ REGEX_START: LexerRealToken<"REGEX_START", "NOT_REGEX">;
120
+ REGEX_END: LexerRealToken<"REGEX_END", "MAIN">;
121
+ VALUE_REGEX: LexerRealToken<"VALUE_REGEX", "REGEX_END">;
122
+ QUOTE_SINGLE: LexerRealToken<"QUOTE_SINGLE", "MAIN" | "NOT_SINGLE" | "BRACKET_MAIN" | "BRACKET_NOT_SINGLE">;
123
+ QUOTE_DOUBLE: LexerRealToken<"QUOTE_DOUBLE", "MAIN" | "NOT_DOUBLE" | "BRACKET_MAIN" | "BRACKET_NOT_DOUBLE">;
124
+ QUOTE_BACKTICK: LexerRealToken<"QUOTE_BACKTICK", "MAIN" | "NOT_BACKTICK" | "BRACKET_MAIN" | "BRACKET_NOT_BACKTICK">;
125
+ VALUE_NOT_SINGLE: LexerRealToken<"VALUE_NOT_SINGLE", "MAIN" | "BRACKET_MAIN">;
126
+ VALUE_NOT_DOUBLE: LexerRealToken<"VALUE_NOT_DOUBLE", "MAIN" | "BRACKET_MAIN">;
127
+ VALUE_NOT_BACKTICK: LexerRealToken<"VALUE_NOT_BACKTICK", "MAIN" | "BRACKET_MAIN">;
128
+ VALUE_UNQUOTED: LexerRealToken<"VALUE_UNQUOTED", "MAIN" | "BRACKET_MAIN">;
124
129
  };
125
130
  $categories: {
126
- ANY: TokenCategoryType<$C.ANY, (RealTokenType<$T.REGEX_START, MODE.NOT_REGEX> | RealTokenType<$T.REGEX_END, MODE.MAIN> | RealTokenType<$T.QUOTE_SINGLE, MODE.MAIN | MODE.NOT_SINGLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_SINGLE> | RealTokenType<$T.QUOTE_DOUBLE, MODE.MAIN | MODE.NOT_DOUBLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_DOUBLE> | RealTokenType<$T.QUOTE_BACKTICK, MODE.MAIN | MODE.NOT_BACKTICK | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_BACKTICK> | RealTokenType<$T.VALUE_NOT_SINGLE, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.VALUE_NOT_DOUBLE, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.VALUE_NOT_BACKTICK, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.VALUE_UNQUOTED, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.SYM_OR, undefined> | RealTokenType<$T.SYM_AND, undefined> | RealTokenType<$T.SYM_NOT, undefined> | RealTokenType<$T.WORD_OR, undefined> | RealTokenType<$T.WORD_AND, undefined> | RealTokenType<$T.WORD_NOT, undefined> | RealTokenType<$T.EXP_PROP_OP, undefined> | RealTokenType<$T.CUSTOM_PROP_OP, undefined> | RealTokenType<$T.PAREN_L, undefined> | RealTokenType<$T.PAREN_R, undefined> | RealTokenType<$T.BRACKET_L, MODE.BRACKET_MAIN> | RealTokenType<$T.BRACKET_R, MODE.MAIN>)[]>;
127
- VALUE: TokenCategoryType<$C.VALUE, (RealTokenType<$T.VALUE_NOT_SINGLE, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.VALUE_NOT_DOUBLE, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.VALUE_NOT_BACKTICK, MODE.MAIN | MODE.BRACKET_MAIN> | RealTokenType<$T.VALUE_UNQUOTED, MODE.MAIN | MODE.BRACKET_MAIN>)[]>;
128
- VALUE_FOR_SINGLE: TokenCategoryType<$C.VALUE_FOR_SINGLE, RealTokenType<$T.VALUE_NOT_SINGLE, MODE.MAIN | MODE.BRACKET_MAIN>[]>;
129
- VALUE_FOR_DOUBLE: TokenCategoryType<$C.VALUE_FOR_DOUBLE, RealTokenType<$T.VALUE_NOT_DOUBLE, MODE.MAIN | MODE.BRACKET_MAIN>[]>;
130
- VALUE_FOR_BACKTICK: TokenCategoryType<$C.VALUE_FOR_BACKTICK, RealTokenType<$T.VALUE_NOT_BACKTICK, MODE.MAIN | MODE.BRACKET_MAIN>[]>;
131
- REGEX_ANY: TokenCategoryType<$C.REGEX_ANY, (RealTokenType<$T.REGEX_START, MODE.NOT_REGEX> | RealTokenType<$T.REGEX_END, MODE.MAIN>)[]>;
132
- QUOTE_ANY: TokenCategoryType<$C.QUOTE_ANY, (RealTokenType<$T.QUOTE_SINGLE, MODE.MAIN | MODE.NOT_SINGLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_SINGLE> | RealTokenType<$T.QUOTE_DOUBLE, MODE.MAIN | MODE.NOT_DOUBLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_DOUBLE> | RealTokenType<$T.QUOTE_BACKTICK, MODE.MAIN | MODE.NOT_BACKTICK | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_BACKTICK>)[]>;
133
- OPERATOR_OR: TokenCategoryType<$C.OPERATOR_OR, (RealTokenType<$T.SYM_OR, undefined> | RealTokenType<$T.WORD_OR, undefined>)[]>;
134
- OPERATOR_AND: TokenCategoryType<$C.OPERATOR_AND, (RealTokenType<$T.SYM_AND, undefined> | RealTokenType<$T.WORD_AND, undefined>)[]>;
135
- OPERATOR_NOT: TokenCategoryType<$C.OPERATOR_NOT, (RealTokenType<$T.SYM_NOT, undefined> | RealTokenType<$T.WORD_NOT, undefined>)[]>;
131
+ ANY: LexerCategoryToken<"ANY", (LexerRealToken<"REGEX_START", "NOT_REGEX"> | LexerRealToken<"REGEX_END", "MAIN"> | LexerRealToken<"QUOTE_SINGLE", "MAIN" | "NOT_SINGLE" | "BRACKET_MAIN" | "BRACKET_NOT_SINGLE"> | LexerRealToken<"QUOTE_DOUBLE", "MAIN" | "NOT_DOUBLE" | "BRACKET_MAIN" | "BRACKET_NOT_DOUBLE"> | LexerRealToken<"QUOTE_BACKTICK", "MAIN" | "NOT_BACKTICK" | "BRACKET_MAIN" | "BRACKET_NOT_BACKTICK"> | LexerRealToken<"VALUE_NOT_SINGLE", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"VALUE_NOT_DOUBLE", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"VALUE_NOT_BACKTICK", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"VALUE_UNQUOTED", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"SYM_OR", undefined> | LexerRealToken<"SYM_AND", undefined> | LexerRealToken<"SYM_NOT", undefined> | LexerRealToken<"WORD_OR", undefined> | LexerRealToken<"WORD_AND", undefined> | LexerRealToken<"WORD_NOT", undefined> | LexerRealToken<"EXP_PROP_OP", undefined> | LexerRealToken<"CUSTOM_PROP_OP", undefined> | LexerRealToken<"PAREN_L", undefined> | LexerRealToken<"PAREN_R", undefined> | LexerRealToken<"BRACKET_L", "BRACKET_MAIN"> | LexerRealToken<"BRACKET_R", "MAIN">)[]>;
132
+ VALUE: LexerCategoryToken<"VALUE", (LexerRealToken<"VALUE_NOT_SINGLE", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"VALUE_NOT_DOUBLE", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"VALUE_NOT_BACKTICK", "MAIN" | "BRACKET_MAIN"> | LexerRealToken<"VALUE_UNQUOTED", "MAIN" | "BRACKET_MAIN">)[]>;
133
+ VALUE_FOR_SINGLE: LexerCategoryToken<"VALUE_FOR_SINGLE", LexerRealToken<"VALUE_NOT_SINGLE", "MAIN" | "BRACKET_MAIN">[]>;
134
+ VALUE_FOR_DOUBLE: LexerCategoryToken<"VALUE_FOR_DOUBLE", LexerRealToken<"VALUE_NOT_DOUBLE", "MAIN" | "BRACKET_MAIN">[]>;
135
+ VALUE_FOR_BACKTICK: LexerCategoryToken<"VALUE_FOR_BACKTICK", LexerRealToken<"VALUE_NOT_BACKTICK", "MAIN" | "BRACKET_MAIN">[]>;
136
+ REGEX_ANY: LexerCategoryToken<"REGEX_ANY", (LexerRealToken<"REGEX_START", "NOT_REGEX"> | LexerRealToken<"REGEX_END", "MAIN">)[]>;
137
+ QUOTE_ANY: LexerCategoryToken<"QUOTE_ANY", (LexerRealToken<"QUOTE_SINGLE", "MAIN" | "NOT_SINGLE" | "BRACKET_MAIN" | "BRACKET_NOT_SINGLE"> | LexerRealToken<"QUOTE_DOUBLE", "MAIN" | "NOT_DOUBLE" | "BRACKET_MAIN" | "BRACKET_NOT_DOUBLE"> | LexerRealToken<"QUOTE_BACKTICK", "MAIN" | "NOT_BACKTICK" | "BRACKET_MAIN" | "BRACKET_NOT_BACKTICK">)[]>;
138
+ OPERATOR_OR: LexerCategoryToken<"OPERATOR_OR", (LexerRealToken<"SYM_OR", undefined> | LexerRealToken<"WORD_OR", undefined>)[]>;
139
+ OPERATOR_AND: LexerCategoryToken<"OPERATOR_AND", (LexerRealToken<"SYM_AND", undefined> | LexerRealToken<"WORD_AND", undefined>)[]>;
140
+ OPERATOR_NOT: LexerCategoryToken<"OPERATOR_NOT", (LexerRealToken<"SYM_NOT", undefined> | LexerRealToken<"WORD_NOT", undefined>)[]>;
136
141
  };
137
142
  };
138
143
  createModeBranches(): {
139
- [key in keyof typeof MODE]?: TokenType<$T>[];
144
+ [key in keyof typeof MODE]?: LexerToken<$TType>[];
140
145
  };
141
- tokenize(input: string): Token<$T>[];
146
+ tokenize(input: string): Token<$TType>[];
142
147
  }
143
148
  export {};
144
149
  //# sourceMappingURL=Lexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lexer.d.ts","sourceRoot":"","sources":["../src/Lexer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAIzD,aAAK,IAAI;IACR,IAAI,SAAS;IACb,iBAAiB,sBAAsB;IACvC,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,yBAAyB,8BAA8B;IACvD,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;CAE7C;AAID,oBAAY,EAAE;IACb,CAAC,MAAM,CAAE,cAAc;IACvB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CACjC;AAGD,oBAAY,EAAE;IACb,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,KAAK,UAAU;CACf;AAGD,KAAK,UAAU,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,qBAAqB,EAAE,OAAO,CAAA;IAC9B,oBAAoB,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,cAAc,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAA;AAEjG,UAAU,aAAa,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE;IACxC,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AACD,MAAM,WAAW,aAAa,CAC7B,CAAC,SAAS,EAAE,GAAG,EAAE,EACjB,KAAK,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,CAE3C,SAAQ,aAAa,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAA;IAEzD,SAAS,CAAC,EAAE,EAAE,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AACD,MAAM,WAAW,iBAAiB,CACjC,EAAE,SAAS,EAAE,EACb,OAAO,SAAS,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAClE,SAAQ,aAAa,CAAC,EAAE,CAAC;IAC1B,UAAU,EAAE,IAAI,CAAA;IAChB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAElE;AAED,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GACvD,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,GACtB,EAAE,SAAS,EAAE,GACb,iBAAiB,CAAC,EAAE,CAAC,GACrB,KAAK,CAAA;AAwDP,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACjD,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,KAAK;IACjB,OAAO,EAAE,UAAU,CAAA;IAEnB,CAAC,EAAE;SAAE,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;KAAE,CAAA;IAE1C,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IAE7D,QAAQ,EAAE;SAAE,GAAG,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;KAAE,CAAA;IAEzD,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAA;gBAG3B,IAAI,GAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAM;IAW3C,mBAAmB,IAAI,UAAU;IAwDjC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiUZ,kBAAkB,IAAI;SAAE,GAAG,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;KAAE;IAgFrE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE;CAyCpC"}
1
+ {"version":3,"file":"Lexer.d.ts","sourceRoot":"","sources":["../src/Lexer.ts"],"names":[],"mappings":"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"}