@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/dist/Parser.d.ts
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { AddParameters, Mixin } from "@alanscodelog/utils/types";
|
|
2
|
+
import { ArrayNode } from "./ast/classes/ArrayNode.js";
|
|
3
|
+
import { ConditionNode } from "./ast/classes/ConditionNode.js";
|
|
4
|
+
import { GroupNode } from "./ast/classes/GroupNode.js";
|
|
5
|
+
import type { ValidToken } from "./ast/classes/ValidToken.js";
|
|
6
|
+
import { VariableNode } from "./ast/classes/VariableNode.js";
|
|
7
|
+
import * as handle from "./ast/handlers.js";
|
|
8
|
+
import { $C, $T, type Token, type TokenCategoryType, type TokenType } from "./Lexer.js";
|
|
9
|
+
import { AutocompleteMixin } from "./methods/autocomplete.js";
|
|
10
|
+
import { AutoreplaceMixin } from "./methods/autoreplace.js";
|
|
11
|
+
import { Autosuggest } from "./methods/autosuggest.js";
|
|
12
|
+
import { EvaluateMixin } from "./methods/evaluate.js";
|
|
13
|
+
import { GetBestIndexesMixin } from "./methods/getBestIndex.js";
|
|
14
|
+
import { GetIndexMixin } from "./methods/getIndexes.js";
|
|
15
|
+
import { NormalizeMixin } from "./methods/normalize.js";
|
|
16
|
+
import { ValidateMixin } from "./methods/validate.js";
|
|
17
|
+
import type { ParserResults } from "./types/ast.js";
|
|
18
|
+
import { type AnyToken, type Position, TOKEN_TYPE } from "./types/index.js";
|
|
19
|
+
import type { FullParserOptions, ParserOptions } from "./types/parser.js";
|
|
20
|
+
/**
|
|
21
|
+
* The parser's methods are often long and have a lot of documentation per method, so it's methods have been split into mixins. They can be found in the `./methods` folder.
|
|
22
|
+
*
|
|
23
|
+
* Writing from within any of these methods is like writing a method from here except:
|
|
24
|
+
* - `this` calls are wrapped in `(this as any as Parser<T>)`
|
|
25
|
+
* - private method/property access requires `// @ts-expect-error`.
|
|
26
|
+
* - recursion with hidden parameters requires re-typing this (see evaluate/validate for examples) since otherwise if we only retyped the function it would become unbound from `this`.
|
|
27
|
+
*
|
|
28
|
+
* Docs work like normal (on methods). From the outside, users of the library cannot even tell the class is composed of mixins.
|
|
29
|
+
*/
|
|
30
|
+
export interface Parser<T extends {} = {}> extends Mixin<AutocompleteMixin<T> | AutoreplaceMixin | Autosuggest<T> | EvaluateMixin<T> | ValidateMixin<T> | NormalizeMixin<T> | GetIndexMixin<T> | GetBestIndexesMixin>, AutocompleteMixin<T>, AutoreplaceMixin, Autosuggest<T>, EvaluateMixin<T>, ValidateMixin<T>, NormalizeMixin<T>, GetIndexMixin<T>, GetBestIndexesMixin {
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates the main parser class which handles all functionality (evaluation, validation, etc).
|
|
34
|
+
*/
|
|
35
|
+
export declare class Parser<T extends {} = {}> {
|
|
36
|
+
private evaluationOptionsChecked;
|
|
37
|
+
_checkEvaluationOptions(): void;
|
|
38
|
+
private validationOptionsChecked;
|
|
39
|
+
_checkValidationOptions(): void;
|
|
40
|
+
options: FullParserOptions<T>;
|
|
41
|
+
private readonly lexer;
|
|
42
|
+
private readonly $;
|
|
43
|
+
private readonly $categories;
|
|
44
|
+
private readonly info;
|
|
45
|
+
constructor(options?: ParserOptions<T>);
|
|
46
|
+
state: {
|
|
47
|
+
rawInput: string;
|
|
48
|
+
lexedTokens: Token<$T>[];
|
|
49
|
+
index: number;
|
|
50
|
+
shift: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* This is exposed mainly for debugging purposes. Use parse directly instead.
|
|
54
|
+
*/
|
|
55
|
+
lex(input: string): {
|
|
56
|
+
tokens: Token<$T>[];
|
|
57
|
+
shift: number;
|
|
58
|
+
rawInput: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Parse an input string into an AST.
|
|
62
|
+
* It can also parse the result from `lex`, but that is really only for internal use.
|
|
63
|
+
*/
|
|
64
|
+
parse(input: string | {
|
|
65
|
+
tokens: Token<$T>[];
|
|
66
|
+
shift: number;
|
|
67
|
+
rawInput: string;
|
|
68
|
+
}): ParserResults;
|
|
69
|
+
subParserOne?: Parser<T> & {
|
|
70
|
+
parse: AddParameters<Parser<T>["parse"], [{
|
|
71
|
+
seal: boolean;
|
|
72
|
+
}]>;
|
|
73
|
+
};
|
|
74
|
+
subParserTwo?: Parser<T> & {
|
|
75
|
+
parse: AddParameters<Parser<T>["parse"], [{
|
|
76
|
+
seal: boolean;
|
|
77
|
+
}]>;
|
|
78
|
+
};
|
|
79
|
+
createSubParserIfNotExists(opts: ParserOptions<T>, which?: "One" | "Two"): Parser["subParserOne"];
|
|
80
|
+
transformCategoryToken<TC extends $C>(token: Token, categoryToken: TokenCategoryType<TC>): Token<TC>;
|
|
81
|
+
getCategoryTokens<TType extends $C>(type: TType): TokenCategoryType<TType>["entries"] | undefined;
|
|
82
|
+
getTokenType(type: $T | $C): TokenType<$T> | undefined;
|
|
83
|
+
isExactType<TType extends $T>(token: Token, type: TType): token is Token<TType>;
|
|
84
|
+
isType(token: Token | undefined, type: $T | $C): boolean;
|
|
85
|
+
createErrorToken(type: $T, index?: number): Token;
|
|
86
|
+
processToken<TDefined extends boolean = boolean>(token?: Pick<Token, "value" | "startOffset" | "endOffset">): [TDefined extends true ? string : string | undefined, Position];
|
|
87
|
+
peek(n?: number): Token<$T> | undefined;
|
|
88
|
+
nextIsEof(): boolean;
|
|
89
|
+
consumeAny(): Token<$T>;
|
|
90
|
+
consume<TType extends $T | $C>(type: TType | undefined): Token<TType>;
|
|
91
|
+
saveState(): Parser["state"];
|
|
92
|
+
restoreState(state: Parser["state"]): void;
|
|
93
|
+
ruleMain(): ParserResults;
|
|
94
|
+
ruleBool<TType extends "AND" | "OR">(type: TType): any;
|
|
95
|
+
ruleCondition(): ConditionNode | GroupNode | ConditionNode<boolean> | undefined;
|
|
96
|
+
ruleConditionValue(property: ReturnType<Parser<T>["ruleConditionProperty"]>, { convertRegexValues, convertArrayValues }?: {
|
|
97
|
+
convertRegexValues?: boolean;
|
|
98
|
+
convertArrayValues?: boolean;
|
|
99
|
+
}): ReturnType<Parser["rulePlainGroup"]> | ReturnType<Parser["rulePlainBracketGroup"]> | ReturnType<Parser["ruleVariable"]> | undefined;
|
|
100
|
+
rulePlainGroup({ onlyValues, convertRegexValues, convertArrayValues }?: {
|
|
101
|
+
onlyValues?: boolean;
|
|
102
|
+
convertRegexValues?: boolean;
|
|
103
|
+
convertArrayValues?: boolean;
|
|
104
|
+
}): [
|
|
105
|
+
ValidToken<TOKEN_TYPE.PARENL> | undefined,
|
|
106
|
+
GroupNode["expression"],
|
|
107
|
+
ValidToken<TOKEN_TYPE.PARENR> | undefined
|
|
108
|
+
];
|
|
109
|
+
rulePlainBracketGroup({ convertArrayValues }?: {
|
|
110
|
+
convertArrayValues?: boolean;
|
|
111
|
+
}): ArrayNode | VariableNode;
|
|
112
|
+
ruleConditionProperty(): {
|
|
113
|
+
prop?: VariableNode;
|
|
114
|
+
rest: Parameters<typeof handle.condition>[2];
|
|
115
|
+
} | undefined;
|
|
116
|
+
ruleProperty(): {
|
|
117
|
+
prop?: VariableNode;
|
|
118
|
+
rest: Parameters<typeof handle.condition>[2];
|
|
119
|
+
};
|
|
120
|
+
ruleVariable({ unprefixed, }?: {
|
|
121
|
+
unprefixed?: boolean;
|
|
122
|
+
}): VariableNode | undefined;
|
|
123
|
+
ruleValueDelimAny(): ValidToken<TOKEN_TYPE.SINGLEQUOTE | TOKEN_TYPE.DOUBLEQUOTE | TOKEN_TYPE.BACKTICK | TOKEN_TYPE.REGEX> | undefined;
|
|
124
|
+
ruleRegexAny(): ValidToken<TOKEN_TYPE.REGEX> | [ValidToken<TOKEN_TYPE.REGEX>, AnyToken<TOKEN_TYPE.VALUE>];
|
|
125
|
+
ruleValueNot<TType extends $T.QUOTE_SINGLE | $T.QUOTE_DOUBLE | $T.QUOTE_BACKTICK | $C.REGEX_ANY>(type: TType): ValidToken<TOKEN_TYPE.VALUE>;
|
|
126
|
+
ruleQuote<TType extends $T.QUOTE_SINGLE | $T.QUOTE_DOUBLE | $T.QUOTE_BACKTICK>(type: TType): ValidToken<TType extends $T.QUOTE_SINGLE ? TOKEN_TYPE.SINGLEQUOTE : TType extends $T.QUOTE_DOUBLE ? TOKEN_TYPE.DOUBLEQUOTE : TType extends $T.QUOTE_BACKTICK ? TOKEN_TYPE.BACKTICK : never>;
|
|
127
|
+
ruleVariablePrefix<TOnlyToken extends boolean = false>({ onlyToken, unprefixed, }?: {
|
|
128
|
+
onlyToken?: TOnlyToken;
|
|
129
|
+
unprefixed?: boolean;
|
|
130
|
+
}): TOnlyToken extends true ? Token<$T.VALUE_UNQUOTED> | undefined : AnyToken<TOKEN_TYPE.VALUE> | undefined;
|
|
131
|
+
ruleValueUnquoted<TOnlyToken extends boolean = false>({ onlyToken, }?: {
|
|
132
|
+
onlyToken?: TOnlyToken;
|
|
133
|
+
}): TOnlyToken extends true ? Token<$T.VALUE_UNQUOTED> : AnyToken<TOKEN_TYPE.VALUE>;
|
|
134
|
+
ruleParenL(): ValidToken<TOKEN_TYPE.PARENL> | undefined;
|
|
135
|
+
ruleParenR(): ValidToken<TOKEN_TYPE.PARENR> | undefined;
|
|
136
|
+
ruleBracketL(): ValidToken<TOKEN_TYPE.BRACKETL> | undefined;
|
|
137
|
+
ruleBracketR(): ValidToken<TOKEN_TYPE.BRACKETR> | undefined;
|
|
138
|
+
ruleNot(): ValidToken<TOKEN_TYPE.NOT> | undefined;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=Parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"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"}
|