@witchcraft/expressit 0.0.2 → 0.1.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.
- package/README.md +6 -4
- package/dist/Lexer.d.ts +146 -0
- package/dist/Lexer.d.ts.map +1 -0
- package/dist/Lexer.js +960 -0
- package/dist/Parser.d.ts +140 -0
- package/dist/Parser.d.ts.map +1 -0
- package/dist/Parser.js +668 -0
- package/dist/ast/builders/token.js +1 -1
- package/dist/ast/handlers.d.ts +3 -3
- package/dist/ast/handlers.d.ts.map +1 -1
- package/dist/ast/index.d.ts.map +1 -1
- package/dist/examples/index.d.ts +2 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/dist/examples/index.js +4 -0
- package/dist/examples/shortcutContextParser.d.ts +2 -1
- package/dist/examples/shortcutContextParser.d.ts.map +1 -1
- package/dist/examples/shortcutContextParser.js +9 -5
- package/dist/helpers/errors.d.ts.map +1 -1
- package/dist/helpers/errors.js +3 -1
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/parser/checkParserOpts.d.ts.map +1 -1
- package/dist/helpers/parser/checkParserOpts.js +3 -2
- package/dist/helpers/parser/extractPosition.d.ts +2 -6
- package/dist/helpers/parser/extractPosition.d.ts.map +1 -1
- package/dist/helpers/parser/extractPosition.js +3 -3
- package/dist/helpers/parser/getUnclosedRightParenCount.d.ts +2 -3
- package/dist/helpers/parser/getUnclosedRightParenCount.d.ts.map +1 -1
- package/dist/helpers/parser/getUnclosedRightParenCount.js +4 -4
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/methods/autocomplete.d.ts.map +1 -1
- package/dist/methods/autocomplete.js +1 -1
- package/dist/methods/autoreplace.js +1 -1
- package/dist/methods/autosuggest.js +1 -1
- package/dist/methods/evaluate.d.ts.map +1 -1
- package/dist/methods/evaluate.js +3 -1
- package/dist/methods/getIndexes.d.ts.map +1 -1
- package/dist/methods/getIndexes.js +2 -1
- package/dist/methods/normalize.d.ts +0 -2
- package/dist/methods/normalize.d.ts.map +1 -1
- package/dist/methods/normalize.js +2 -3
- package/dist/methods/validate.d.ts.map +1 -1
- package/dist/methods/validate.js +3 -1
- package/dist/package.json.js +44 -37
- package/dist/types/ast.d.ts +2 -8
- package/dist/types/ast.d.ts.map +1 -1
- package/dist/types/errors.d.ts +5 -17
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +0 -1
- package/dist/types/parser.d.ts +6 -2
- package/dist/types/parser.d.ts.map +1 -1
- package/dist/utils/extractTokens.js +1 -1
- package/dist/utils/getCursorInfo.d.ts +2 -2
- package/dist/utils/getCursorInfo.d.ts.map +1 -1
- package/dist/utils/getCursorInfo.js +3 -2
- package/dist/utils/getOppositeDelimiter.d.ts.map +1 -1
- package/dist/utils/getOppositeDelimiter.js +1 -1
- package/dist/utils/prettyAst.d.ts.map +1 -1
- package/dist/utils/prettyAst.js +15 -9
- package/package.json +42 -37
- package/src/Lexer.ts +704 -0
- package/src/Parser.ts +972 -0
- package/src/ast/builders/array.ts +2 -2
- package/src/ast/builders/condition.ts +1 -1
- package/src/ast/builders/expression.ts +1 -1
- package/src/ast/builders/group.ts +1 -1
- package/src/ast/builders/index.ts +1 -1
- package/src/ast/builders/pos.ts +1 -1
- package/src/ast/builders/token.ts +2 -2
- package/src/ast/builders/type.ts +1 -1
- package/src/ast/builders/variable.ts +1 -1
- package/src/ast/classes/ConditionNode.ts +1 -1
- package/src/ast/classes/ErrorToken.ts +1 -1
- package/src/ast/classes/ValidToken.ts +2 -2
- package/src/ast/classes/index.ts +1 -1
- package/src/ast/handlers.ts +6 -6
- package/src/ast/index.ts +2 -2
- package/src/examples/index.ts +3 -0
- package/src/examples/shortcutContextParser.ts +11 -6
- package/src/helpers/errors.ts +5 -3
- package/src/helpers/general/defaultConditionNormalizer.ts +1 -1
- package/src/helpers/general/index.ts +1 -1
- package/src/helpers/index.ts +3 -2
- package/src/helpers/parser/checkParserOpts.ts +13 -12
- package/src/helpers/parser/extractPosition.ts +4 -8
- package/src/helpers/parser/getUnclosedRightParenCount.ts +6 -6
- package/src/helpers/parser/index.ts +1 -1
- package/src/helpers/parser/parseParserOptions.ts +1 -1
- package/src/index.ts +2 -2
- package/src/methods/autocomplete.ts +5 -5
- package/src/methods/autoreplace.ts +2 -2
- package/src/methods/autosuggest.ts +3 -3
- package/src/methods/evaluate.ts +4 -2
- package/src/methods/getIndexes.ts +2 -1
- package/src/methods/normalize.ts +3 -4
- package/src/methods/validate.ts +4 -2
- package/src/types/ast.ts +2 -9
- package/src/types/errors.ts +12 -22
- package/src/types/parser.ts +6 -4
- package/src/utils/extractTokens.ts +1 -1
- package/src/utils/getCursorInfo.ts +6 -4
- package/src/utils/getOppositeDelimiter.ts +5 -2
- package/src/utils/prettyAst.ts +5 -3
- package/dist/examples/advancedValueComparer.d.ts +0 -3
- package/dist/examples/advancedValueComparer.d.ts.map +0 -1
- package/dist/examples/advancedValueComparer.js +0 -28
- package/dist/grammar/ParserBase.d.ts +0 -51
- package/dist/grammar/ParserBase.d.ts.map +0 -1
- package/dist/grammar/ParserBase.js +0 -516
- package/dist/grammar/createTokens.d.ts +0 -56
- package/dist/grammar/createTokens.d.ts.map +0 -1
- package/dist/grammar/createTokens.js +0 -843
- package/dist/grammar/index.d.ts +0 -3
- package/dist/grammar/index.d.ts.map +0 -1
- package/dist/grammar/index.js +0 -6
- package/dist/parser.d.ts +0 -58
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -136
- package/src/examples/advancedValueComparer.ts +0 -31
- package/src/grammar/ParserBase.ts +0 -715
- package/src/grammar/createTokens.ts +0 -512
- package/src/grammar/index.ts +0 -4
- package/src/parser.ts +0 -183
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
### 🚧 WORK IN PROGRESS 🚧
|
|
3
3
|
|
|
4
|
-

|
|
5
|
+

|
|
6
|
+
[](https://www.npmjs.com/@witchcraft/expressit)
|
|
7
7
|
|
|
8
8
|
Expressit is a blazing fast, customizable, error-tolerant expression parser that creates safe to eval expressions + a few other goodies.
|
|
9
9
|
|
|
@@ -41,7 +41,9 @@ pnpm install @witchcraft/expressit
|
|
|
41
41
|
# Usage
|
|
42
42
|
|
|
43
43
|
```ts
|
|
44
|
-
|
|
44
|
+
// while you can import from "@witchcraft/expressit", if using something like vite, it's recommended you do not use barrel imports.
|
|
45
|
+
import { Parser } from "@witchcraft/expressit/Parser.js"
|
|
46
|
+
import { ErrorToken } from "@witchcraft/expressit/classes/ErrorToken.js"
|
|
45
47
|
|
|
46
48
|
const parser = new Parser({/* opts */})
|
|
47
49
|
const context = {
|
package/dist/Lexer.d.ts
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
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
|
+
}
|
|
53
|
+
type SymbolInfo = {
|
|
54
|
+
symOrs: string[];
|
|
55
|
+
symAnds: string[];
|
|
56
|
+
symNots: string[];
|
|
57
|
+
wordOrs: string[];
|
|
58
|
+
wordAnds: string[];
|
|
59
|
+
wordNots: string[];
|
|
60
|
+
all: string[];
|
|
61
|
+
expandedSepAlsoCustom: boolean;
|
|
62
|
+
customOpAlsoNegation: boolean;
|
|
63
|
+
};
|
|
64
|
+
type TokenMatchFunc = (c: string, input: string, start: number, mode: string) => string | boolean;
|
|
65
|
+
interface BaseTokenType<T extends $T | $C> {
|
|
66
|
+
type: T;
|
|
67
|
+
skip?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface RealTokenType<T extends $T = $T, TPush extends string | undefined = undefined> extends BaseTokenType<T> {
|
|
70
|
+
matches: TokenMatchFunc;
|
|
71
|
+
push?: TPush | ((mode: string, tokens: Token[]) => TPush);
|
|
72
|
+
longerAlt?: $T;
|
|
73
|
+
skip?: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface TokenCategoryType<TC extends $C, TTokens extends RealTokenType<$T, any>[] = RealTokenType<$T, any>[]> extends BaseTokenType<TC> {
|
|
76
|
+
isCategory: true;
|
|
77
|
+
entries: Partial<{
|
|
78
|
+
[key in TTokens[number]["type"]]: TTokens[number];
|
|
79
|
+
}>;
|
|
80
|
+
}
|
|
81
|
+
export type TokenType<TC extends $C | $T> = TC extends $T ? RealTokenType<TC, any> : TC extends $C ? TokenCategoryType<TC> : never;
|
|
82
|
+
export interface Token<T extends $T | $C = $T | $C> {
|
|
83
|
+
type: T;
|
|
84
|
+
value: string;
|
|
85
|
+
startOffset: number;
|
|
86
|
+
endOffset: number;
|
|
87
|
+
isError?: boolean;
|
|
88
|
+
}
|
|
89
|
+
export declare class Lexer {
|
|
90
|
+
symbols: SymbolInfo;
|
|
91
|
+
$: {
|
|
92
|
+
[key in $T]: RealTokenType<key, any>;
|
|
93
|
+
};
|
|
94
|
+
$categories: ReturnType<Lexer["createTokens"]>["$categories"];
|
|
95
|
+
branches: {
|
|
96
|
+
[key in keyof typeof MODE]?: TokenType<$T>[];
|
|
97
|
+
};
|
|
98
|
+
opts: FullParserOptions<{}>;
|
|
99
|
+
constructor(opts?: Partial<FullParserOptions<{}>>);
|
|
100
|
+
calculateSymbolInfo(): SymbolInfo;
|
|
101
|
+
createTokens(): {
|
|
102
|
+
$: {
|
|
103
|
+
PAREN_L: RealTokenType<$T.PAREN_L, undefined>;
|
|
104
|
+
PAREN_R: RealTokenType<$T.PAREN_R, undefined>;
|
|
105
|
+
BRACKET_L: RealTokenType<$T.BRACKET_L, MODE.BRACKET_MAIN>;
|
|
106
|
+
BRACKET_R: RealTokenType<$T.BRACKET_R, MODE.MAIN>;
|
|
107
|
+
CUSTOM_PROP_OP?: RealTokenType<$T.CUSTOM_PROP_OP, undefined> | undefined;
|
|
108
|
+
EXP_PROP_OP?: RealTokenType<$T.EXP_PROP_OP, undefined> | undefined;
|
|
109
|
+
WORD_NOT?: RealTokenType<$T.WORD_NOT, undefined> | undefined;
|
|
110
|
+
WORD_AND?: RealTokenType<$T.WORD_AND, undefined> | undefined;
|
|
111
|
+
WORD_OR?: RealTokenType<$T.WORD_OR, undefined> | undefined;
|
|
112
|
+
SYM_NOT?: RealTokenType<$T.SYM_NOT, undefined> | undefined;
|
|
113
|
+
SYM_AND?: RealTokenType<$T.SYM_AND, undefined> | undefined;
|
|
114
|
+
SYM_OR?: RealTokenType<$T.SYM_OR, undefined> | undefined;
|
|
115
|
+
_: RealTokenType<$T._, undefined>;
|
|
116
|
+
REGEX_START: RealTokenType<$T.REGEX_START, MODE.NOT_REGEX>;
|
|
117
|
+
REGEX_END: RealTokenType<$T.REGEX_END, MODE.MAIN>;
|
|
118
|
+
VALUE_REGEX: RealTokenType<$T.VALUE_REGEX, MODE.REGEX_END>;
|
|
119
|
+
QUOTE_SINGLE: RealTokenType<$T.QUOTE_SINGLE, MODE.MAIN | MODE.NOT_SINGLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_SINGLE>;
|
|
120
|
+
QUOTE_DOUBLE: RealTokenType<$T.QUOTE_DOUBLE, MODE.MAIN | MODE.NOT_DOUBLE | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_DOUBLE>;
|
|
121
|
+
QUOTE_BACKTICK: RealTokenType<$T.QUOTE_BACKTICK, MODE.MAIN | MODE.NOT_BACKTICK | MODE.BRACKET_MAIN | MODE.BRACKET_NOT_BACKTICK>;
|
|
122
|
+
VALUE_NOT_SINGLE: RealTokenType<$T.VALUE_NOT_SINGLE, MODE.MAIN | MODE.BRACKET_MAIN>;
|
|
123
|
+
VALUE_NOT_DOUBLE: RealTokenType<$T.VALUE_NOT_DOUBLE, MODE.MAIN | MODE.BRACKET_MAIN>;
|
|
124
|
+
VALUE_NOT_BACKTICK: RealTokenType<$T.VALUE_NOT_BACKTICK, MODE.MAIN | MODE.BRACKET_MAIN>;
|
|
125
|
+
VALUE_UNQUOTED: RealTokenType<$T.VALUE_UNQUOTED, MODE.MAIN | MODE.BRACKET_MAIN>;
|
|
126
|
+
};
|
|
127
|
+
$categories: {
|
|
128
|
+
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>)[]>;
|
|
129
|
+
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>)[]>;
|
|
130
|
+
VALUE_FOR_SINGLE: TokenCategoryType<$C.VALUE_FOR_SINGLE, RealTokenType<$T.VALUE_NOT_SINGLE, MODE.MAIN | MODE.BRACKET_MAIN>[]>;
|
|
131
|
+
VALUE_FOR_DOUBLE: TokenCategoryType<$C.VALUE_FOR_DOUBLE, RealTokenType<$T.VALUE_NOT_DOUBLE, MODE.MAIN | MODE.BRACKET_MAIN>[]>;
|
|
132
|
+
VALUE_FOR_BACKTICK: TokenCategoryType<$C.VALUE_FOR_BACKTICK, RealTokenType<$T.VALUE_NOT_BACKTICK, MODE.MAIN | MODE.BRACKET_MAIN>[]>;
|
|
133
|
+
REGEX_ANY: TokenCategoryType<$C.REGEX_ANY, (RealTokenType<$T.REGEX_START, MODE.NOT_REGEX> | RealTokenType<$T.REGEX_END, MODE.MAIN>)[]>;
|
|
134
|
+
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>)[]>;
|
|
135
|
+
OPERATOR_OR: TokenCategoryType<$C.OPERATOR_OR, (RealTokenType<$T.SYM_OR, undefined> | RealTokenType<$T.WORD_OR, undefined>)[]>;
|
|
136
|
+
OPERATOR_AND: TokenCategoryType<$C.OPERATOR_AND, (RealTokenType<$T.SYM_AND, undefined> | RealTokenType<$T.WORD_AND, undefined>)[]>;
|
|
137
|
+
OPERATOR_NOT: TokenCategoryType<$C.OPERATOR_NOT, (RealTokenType<$T.SYM_NOT, undefined> | RealTokenType<$T.WORD_NOT, undefined>)[]>;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
createModeBranches(): {
|
|
141
|
+
[key in keyof typeof MODE]?: TokenType<$T>[];
|
|
142
|
+
};
|
|
143
|
+
tokenize(input: string): Token<$T>[];
|
|
144
|
+
}
|
|
145
|
+
export {};
|
|
146
|
+
//# sourceMappingURL=Lexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Lexer.d.ts","sourceRoot":"","sources":["../src/Lexer.ts"],"names":[],"mappings":"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"}
|