flowquery 1.0.2 → 1.0.5
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 +54 -1
- package/dist/compute/runner.d.ts +81 -0
- package/dist/compute/runner.d.ts.map +1 -0
- package/dist/index.browser.d.ts +10 -0
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.node.d.ts +14 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/io/command_line.d.ts +28 -0
- package/dist/io/command_line.d.ts.map +1 -0
- package/dist/parsing/alias.d.ts +10 -0
- package/dist/parsing/alias.d.ts.map +1 -0
- package/dist/parsing/alias_option.d.ts +6 -0
- package/dist/parsing/alias_option.d.ts.map +1 -0
- package/dist/parsing/ast_node.d.ts +100 -0
- package/dist/parsing/ast_node.d.ts.map +1 -0
- package/dist/parsing/base_parser.d.ts +49 -0
- package/dist/parsing/base_parser.d.ts.map +1 -0
- package/dist/parsing/components/csv.d.ts +6 -0
- package/dist/parsing/components/csv.d.ts.map +1 -0
- package/dist/parsing/components/from.d.ts +7 -0
- package/dist/parsing/components/from.d.ts.map +1 -0
- package/dist/parsing/components/headers.d.ts +7 -0
- package/dist/parsing/components/headers.d.ts.map +1 -0
- package/dist/parsing/components/json.d.ts +6 -0
- package/dist/parsing/components/json.d.ts.map +1 -0
- package/dist/parsing/components/null.d.ts +6 -0
- package/dist/parsing/components/null.d.ts.map +1 -0
- package/dist/parsing/components/post.d.ts +6 -0
- package/dist/parsing/components/post.d.ts.map +1 -0
- package/dist/parsing/components/text.d.ts +6 -0
- package/dist/parsing/components/text.d.ts.map +1 -0
- package/dist/parsing/context.d.ts +38 -0
- package/dist/parsing/context.d.ts.map +1 -0
- package/dist/parsing/data_structures/associative_array.d.ts +28 -0
- package/dist/parsing/data_structures/associative_array.d.ts.map +1 -0
- package/dist/parsing/data_structures/json_array.d.ts +26 -0
- package/dist/parsing/data_structures/json_array.d.ts.map +1 -0
- package/dist/parsing/data_structures/key_value_pair.d.ts +25 -0
- package/dist/parsing/data_structures/key_value_pair.d.ts.map +1 -0
- package/dist/parsing/data_structures/lookup.d.ts +25 -0
- package/dist/parsing/data_structures/lookup.d.ts.map +1 -0
- package/dist/parsing/data_structures/range_lookup.d.ts +14 -0
- package/dist/parsing/data_structures/range_lookup.d.ts.map +1 -0
- package/dist/parsing/expressions/expression.d.ts +53 -0
- package/dist/parsing/expressions/expression.d.ts.map +1 -0
- package/dist/parsing/expressions/f_string.d.ts +21 -0
- package/dist/parsing/expressions/f_string.d.ts.map +1 -0
- package/dist/parsing/expressions/identifier.d.ts +17 -0
- package/dist/parsing/expressions/identifier.d.ts.map +1 -0
- package/dist/parsing/expressions/number.d.ts +25 -0
- package/dist/parsing/expressions/number.d.ts.map +1 -0
- package/dist/parsing/expressions/operator.d.ts +79 -0
- package/dist/parsing/expressions/operator.d.ts.map +1 -0
- package/dist/parsing/expressions/reference.d.ts +29 -0
- package/dist/parsing/expressions/reference.d.ts.map +1 -0
- package/dist/parsing/expressions/string.d.ts +23 -0
- package/dist/parsing/expressions/string.d.ts.map +1 -0
- package/dist/parsing/functions/aggregate_function.d.ts +42 -0
- package/dist/parsing/functions/aggregate_function.d.ts.map +1 -0
- package/dist/parsing/functions/async_function.d.ts +52 -0
- package/dist/parsing/functions/async_function.d.ts.map +1 -0
- package/dist/parsing/functions/avg.d.ts +15 -0
- package/dist/parsing/functions/avg.d.ts.map +1 -0
- package/dist/parsing/functions/collect.d.ts +21 -0
- package/dist/parsing/functions/collect.d.ts.map +1 -0
- package/dist/parsing/functions/function.d.ts +36 -0
- package/dist/parsing/functions/function.d.ts.map +1 -0
- package/dist/parsing/functions/function_factory.d.ts +151 -0
- package/dist/parsing/functions/function_factory.d.ts.map +1 -0
- package/dist/parsing/functions/function_metadata.d.ts +83 -0
- package/dist/parsing/functions/function_metadata.d.ts.map +1 -0
- package/dist/parsing/functions/functions.d.ts +21 -0
- package/dist/parsing/functions/functions.d.ts.map +1 -0
- package/dist/parsing/functions/join.d.ts +9 -0
- package/dist/parsing/functions/join.d.ts.map +1 -0
- package/dist/parsing/functions/predicate_function.d.ts +18 -0
- package/dist/parsing/functions/predicate_function.d.ts.map +1 -0
- package/dist/parsing/functions/predicate_function_factory.d.ts +6 -0
- package/dist/parsing/functions/predicate_function_factory.d.ts.map +1 -0
- package/dist/parsing/functions/predicate_sum.d.ts +7 -0
- package/dist/parsing/functions/predicate_sum.d.ts.map +1 -0
- package/dist/parsing/functions/rand.d.ts +7 -0
- package/dist/parsing/functions/rand.d.ts.map +1 -0
- package/dist/parsing/functions/range.d.ts +7 -0
- package/dist/parsing/functions/range.d.ts.map +1 -0
- package/dist/parsing/functions/reducer_element.d.ts +6 -0
- package/dist/parsing/functions/reducer_element.d.ts.map +1 -0
- package/dist/parsing/functions/replace.d.ts +7 -0
- package/dist/parsing/functions/replace.d.ts.map +1 -0
- package/dist/parsing/functions/round.d.ts +7 -0
- package/dist/parsing/functions/round.d.ts.map +1 -0
- package/dist/parsing/functions/size.d.ts +7 -0
- package/dist/parsing/functions/size.d.ts.map +1 -0
- package/dist/parsing/functions/split.d.ts +9 -0
- package/dist/parsing/functions/split.d.ts.map +1 -0
- package/dist/parsing/functions/stringify.d.ts +9 -0
- package/dist/parsing/functions/stringify.d.ts.map +1 -0
- package/dist/parsing/functions/sum.d.ts +14 -0
- package/dist/parsing/functions/sum.d.ts.map +1 -0
- package/dist/parsing/functions/to_json.d.ts +7 -0
- package/dist/parsing/functions/to_json.d.ts.map +1 -0
- package/dist/parsing/functions/value_holder.d.ts +8 -0
- package/dist/parsing/functions/value_holder.d.ts.map +1 -0
- package/dist/parsing/logic/case.d.ts +7 -0
- package/dist/parsing/logic/case.d.ts.map +1 -0
- package/dist/parsing/logic/else.d.ts +7 -0
- package/dist/parsing/logic/else.d.ts.map +1 -0
- package/dist/parsing/logic/end.d.ts +6 -0
- package/dist/parsing/logic/end.d.ts.map +1 -0
- package/dist/parsing/logic/then.d.ts +7 -0
- package/dist/parsing/logic/then.d.ts.map +1 -0
- package/dist/parsing/logic/when.d.ts +7 -0
- package/dist/parsing/logic/when.d.ts.map +1 -0
- package/dist/parsing/operations/aggregated_return.d.ts +8 -0
- package/dist/parsing/operations/aggregated_return.d.ts.map +1 -0
- package/dist/parsing/operations/aggregated_with.d.ts +8 -0
- package/dist/parsing/operations/aggregated_with.d.ts.map +1 -0
- package/dist/parsing/operations/group_by.d.ts +35 -0
- package/dist/parsing/operations/group_by.d.ts.map +1 -0
- package/dist/parsing/operations/limit.d.ts +10 -0
- package/dist/parsing/operations/limit.d.ts.map +1 -0
- package/dist/parsing/operations/load.d.ts +48 -0
- package/dist/parsing/operations/load.d.ts.map +1 -0
- package/dist/parsing/operations/operation.d.ts +39 -0
- package/dist/parsing/operations/operation.d.ts.map +1 -0
- package/dist/parsing/operations/projection.d.ts +8 -0
- package/dist/parsing/operations/projection.d.ts.map +1 -0
- package/dist/parsing/operations/return.d.ts +23 -0
- package/dist/parsing/operations/return.d.ts.map +1 -0
- package/dist/parsing/operations/unwind.d.ts +12 -0
- package/dist/parsing/operations/unwind.d.ts.map +1 -0
- package/dist/parsing/operations/where.d.ts +26 -0
- package/dist/parsing/operations/where.d.ts.map +1 -0
- package/dist/parsing/operations/with.d.ts +17 -0
- package/dist/parsing/operations/with.d.ts.map +1 -0
- package/dist/parsing/parser.d.ts +66 -0
- package/dist/parsing/parser.d.ts.map +1 -0
- package/dist/parsing/parser.js +1 -1
- package/dist/parsing/token_to_node.d.ts +7 -0
- package/dist/parsing/token_to_node.d.ts.map +1 -0
- package/dist/tokenization/keyword.d.ts +43 -0
- package/dist/tokenization/keyword.d.ts.map +1 -0
- package/dist/tokenization/operator.d.ts +22 -0
- package/dist/tokenization/operator.d.ts.map +1 -0
- package/dist/tokenization/string_walker.d.ts +55 -0
- package/dist/tokenization/string_walker.d.ts.map +1 -0
- package/dist/tokenization/symbol.d.ts +15 -0
- package/dist/tokenization/symbol.d.ts.map +1 -0
- package/dist/tokenization/token.d.ts +176 -0
- package/dist/tokenization/token.d.ts.map +1 -0
- package/dist/tokenization/token_mapper.d.ts +40 -0
- package/dist/tokenization/token_mapper.d.ts.map +1 -0
- package/dist/tokenization/token_mapper.js +2 -2
- package/dist/tokenization/token_mapper.js.map +1 -1
- package/dist/tokenization/token_type.d.ts +16 -0
- package/dist/tokenization/token_type.d.ts.map +1 -0
- package/dist/tokenization/tokenizer.d.ts +45 -0
- package/dist/tokenization/tokenizer.d.ts.map +1 -0
- package/dist/tokenization/trie.d.ts +41 -0
- package/dist/tokenization/trie.d.ts.map +1 -0
- package/dist/utils/object_utils.d.ts +15 -0
- package/dist/utils/object_utils.d.ts.map +1 -0
- package/dist/utils/string_utils.d.ts +51 -0
- package/dist/utils/string_utils.d.ts.map +1 -0
- package/misc/apps/RAG/README.md +48 -0
- package/misc/apps/RAG/package.json +31 -0
- package/misc/apps/RAG/src/index.ts +20 -0
- package/misc/apps/RAG/tsconfig.json +19 -0
- package/misc/apps/RAG/webpack.config.js +32 -0
- package/misc/apps/README.md +1 -0
- package/package.json +1 -1
- package/src/parsing/parser.ts +1 -1
- package/src/tokenization/token_mapper.ts +2 -2
- package/tsconfig.json +3 -1
- /package/{queries → misc/queries}/analyze_catfacts.cql +0 -0
- /package/{queries → misc/queries}/azure_openai_completions.cql +0 -0
- /package/{queries → misc/queries}/azure_openai_models.cql +0 -0
- /package/{queries → misc/queries}/mock_pipeline.cql +0 -0
- /package/{queries → misc/queries}/openai_completions.cql +0 -0
- /package/{queries → misc/queries}/openai_models.cql +0 -0
- /package/{queries → misc/queries}/test.cql +0 -0
- /package/{queries → misc/queries}/tool_inference.cql +0 -0
- /package/{queries → misc/queries}/wisdom.cql +0 -0
- /package/{queries → misc/queries}/wisdom_letter_histogram.cql +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import Operation from "./operation";
|
|
2
|
+
import CSV from "../components/csv";
|
|
3
|
+
import { default as _JSON } from "../components/json";
|
|
4
|
+
import Text from "../components/text";
|
|
5
|
+
import Function from "../functions/function";
|
|
6
|
+
import AsyncFunction from "../functions/async_function";
|
|
7
|
+
import AssociativeArray from "../data_structures/associative_array";
|
|
8
|
+
import Reference from "../expressions/reference";
|
|
9
|
+
import Expression from "../expressions/expression";
|
|
10
|
+
import Lookup from "../data_structures/lookup";
|
|
11
|
+
import From from "../components/from";
|
|
12
|
+
declare class Load extends Operation {
|
|
13
|
+
private _value;
|
|
14
|
+
constructor();
|
|
15
|
+
get type(): _JSON | CSV | Text;
|
|
16
|
+
/**
|
|
17
|
+
* Gets the From component which contains either a URL expression or an AsyncFunction.
|
|
18
|
+
*/
|
|
19
|
+
get fromComponent(): From;
|
|
20
|
+
/**
|
|
21
|
+
* Checks if the data source is an async function.
|
|
22
|
+
*/
|
|
23
|
+
get isAsyncFunction(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Gets the async function if the source is a function, otherwise null.
|
|
26
|
+
*/
|
|
27
|
+
get asyncFunction(): AsyncFunction | null;
|
|
28
|
+
get from(): string;
|
|
29
|
+
get headers(): {
|
|
30
|
+
[key: string]: string;
|
|
31
|
+
};
|
|
32
|
+
get payload(): Function | Reference | Expression | AssociativeArray | Lookup | null;
|
|
33
|
+
private method;
|
|
34
|
+
private options;
|
|
35
|
+
/**
|
|
36
|
+
* Loads data from an async function source.
|
|
37
|
+
*/
|
|
38
|
+
private loadFromFunction;
|
|
39
|
+
/**
|
|
40
|
+
* Loads data from a URL source (original behavior).
|
|
41
|
+
*/
|
|
42
|
+
private loadFromUrl;
|
|
43
|
+
load(): Promise<any>;
|
|
44
|
+
run(): Promise<void>;
|
|
45
|
+
value(): any;
|
|
46
|
+
}
|
|
47
|
+
export default Load;
|
|
48
|
+
//# sourceMappingURL=load.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/load.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAC7C,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAGnD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,cAAM,IAAK,SAAQ,SAAS;IAC1B,OAAO,CAAC,MAAM,CAAa;;IAI3B,IAAW,IAAI,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAEpC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,IAAI,CAE/B;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,aAAa,GAAG,IAAI,CAG/C;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IACD,IAAW,OAAO,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAK9C;IACD,IAAW,OAAO,IAAI,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAQzF;IACD,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;IAcf;;OAEG;YACW,gBAAgB;IAQ9B;;OAEG;YACW,WAAW;IAsBZ,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAOpB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1B,KAAK,IAAI,GAAG;CAGpB;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import ASTNode from "../ast_node";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all FlowQuery operations.
|
|
4
|
+
*
|
|
5
|
+
* Operations represent the main statements in FlowQuery (WITH, UNWIND, RETURN, LOAD, WHERE).
|
|
6
|
+
* They form a linked list structure and can be executed sequentially.
|
|
7
|
+
*
|
|
8
|
+
* @abstract
|
|
9
|
+
*/
|
|
10
|
+
declare abstract class Operation extends ASTNode {
|
|
11
|
+
private _previous;
|
|
12
|
+
private _next;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new Operation instance.
|
|
15
|
+
*/
|
|
16
|
+
constructor();
|
|
17
|
+
get previous(): Operation | null;
|
|
18
|
+
set previous(value: Operation | null);
|
|
19
|
+
get next(): Operation | null;
|
|
20
|
+
set next(value: Operation | null);
|
|
21
|
+
addSibling(operation: Operation): void;
|
|
22
|
+
/**
|
|
23
|
+
* Executes this operation. Must be implemented by subclasses.
|
|
24
|
+
*
|
|
25
|
+
* @returns A promise that resolves when the operation completes
|
|
26
|
+
* @throws {Error} If not implemented by subclass
|
|
27
|
+
*/
|
|
28
|
+
run(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Finishes execution by calling finish on the next operation in the chain.
|
|
31
|
+
*
|
|
32
|
+
* @returns A promise that resolves when all operations finish
|
|
33
|
+
*/
|
|
34
|
+
finish(): Promise<void>;
|
|
35
|
+
reset(): void;
|
|
36
|
+
get results(): Record<string, any>[];
|
|
37
|
+
}
|
|
38
|
+
export default Operation;
|
|
39
|
+
//# sourceMappingURL=operation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/operation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC;;;;;;;GAOG;AACH,uBAAe,SAAU,SAAQ,OAAO;IACpC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,KAAK,CAA0B;IAEvC;;OAEG;;IAIH,IAAW,QAAQ,IAAI,SAAS,GAAG,IAAI,CAEtC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAE1C;IACD,IAAW,IAAI,IAAI,SAAS,GAAG,IAAI,CAElC;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAEtC;IACM,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAM7C;;;;;OAKG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAG7B,KAAK,IAAI,IAAI;IAGpB,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Operation from "./operation";
|
|
2
|
+
import Expression from "../expressions/expression";
|
|
3
|
+
declare class Projection extends Operation {
|
|
4
|
+
constructor(expressions: Expression[]);
|
|
5
|
+
protected expressions(): Generator<[Expression, string]>;
|
|
6
|
+
}
|
|
7
|
+
export default Projection;
|
|
8
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/projection.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD,cAAM,UAAW,SAAQ,SAAS;gBAClB,WAAW,EAAE,UAAU,EAAE;IAIrC,SAAS,CAAE,WAAW,IAAI,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CAO5D;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import Projection from "./projection";
|
|
2
|
+
import Where from "./where";
|
|
3
|
+
/**
|
|
4
|
+
* Represents a RETURN operation that produces the final query results.
|
|
5
|
+
*
|
|
6
|
+
* The RETURN operation evaluates expressions and collects them into result records.
|
|
7
|
+
* It can optionally have a WHERE clause to filter results.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // RETURN x, y WHERE x > 0
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare class Return extends Projection {
|
|
15
|
+
protected _where: Where | null;
|
|
16
|
+
protected _results: Record<string, any>[];
|
|
17
|
+
set where(where: Where);
|
|
18
|
+
get where(): boolean;
|
|
19
|
+
run(): Promise<void>;
|
|
20
|
+
get results(): Record<string, any>[];
|
|
21
|
+
}
|
|
22
|
+
export default Return;
|
|
23
|
+
//# sourceMappingURL=return.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Operation from "./operation";
|
|
2
|
+
import Expression from "../expressions/expression";
|
|
3
|
+
declare class Unwind extends Operation {
|
|
4
|
+
private _value;
|
|
5
|
+
constructor(expression: Expression);
|
|
6
|
+
get expression(): Expression;
|
|
7
|
+
get as(): string;
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
value(): any;
|
|
10
|
+
}
|
|
11
|
+
export default Unwind;
|
|
12
|
+
//# sourceMappingURL=unwind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwind.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/unwind.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD,cAAM,MAAO,SAAQ,SAAS;IAC1B,OAAO,CAAC,MAAM,CAAM;gBACR,UAAU,EAAE,UAAU;IAIlC,IAAW,UAAU,IAAI,UAAU,CAElC;IACD,IAAW,EAAE,IAAI,MAAM,CAEtB;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1B,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Operation from "./operation";
|
|
2
|
+
import Expression from "../expressions/expression";
|
|
3
|
+
/**
|
|
4
|
+
* Represents a WHERE operation that filters data based on a condition.
|
|
5
|
+
*
|
|
6
|
+
* The WHERE operation evaluates a boolean expression and only continues
|
|
7
|
+
* execution to the next operation if the condition is true.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // RETURN x WHERE x > 0
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare class Where extends Operation {
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new WHERE operation with the given condition.
|
|
17
|
+
*
|
|
18
|
+
* @param expression - The boolean expression to evaluate
|
|
19
|
+
*/
|
|
20
|
+
constructor(expression: Expression);
|
|
21
|
+
get expression(): Expression;
|
|
22
|
+
run(): Promise<void>;
|
|
23
|
+
value(): any;
|
|
24
|
+
}
|
|
25
|
+
export default Where;
|
|
26
|
+
//# sourceMappingURL=where.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/where.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,cAAM,KAAM,SAAQ,SAAS;IACzB;;;;OAIG;gBACS,UAAU,EAAE,UAAU;IAIlC,IAAW,UAAU,IAAI,UAAU,CAElC;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Projection from "./projection";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a WITH operation that defines variables or intermediate results.
|
|
4
|
+
*
|
|
5
|
+
* The WITH operation creates named expressions that can be referenced later in the query.
|
|
6
|
+
* It passes control to the next operation in the chain.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // WITH x = 1, y = 2 RETURN x + y
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
declare class With extends Projection {
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export default With;
|
|
17
|
+
//# sourceMappingURL=with.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/with.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,cAAM,IAAK,SAAQ,UAAU;IACZ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import ASTNode from "./ast_node";
|
|
2
|
+
import BaseParser from "./base_parser";
|
|
3
|
+
/**
|
|
4
|
+
* Main parser for FlowQuery statements.
|
|
5
|
+
*
|
|
6
|
+
* Parses FlowQuery declarative query language statements into an Abstract Syntax Tree (AST).
|
|
7
|
+
* Supports operations like WITH, UNWIND, RETURN, LOAD, WHERE, and LIMIT, along with
|
|
8
|
+
* expressions, functions, data structures, and logical constructs.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const parser = new Parser();
|
|
13
|
+
* const ast = parser.parse("unwind [1, 2, 3, 4] as num return num");
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare class Parser extends BaseParser {
|
|
17
|
+
private variables;
|
|
18
|
+
private context;
|
|
19
|
+
private _returns;
|
|
20
|
+
/**
|
|
21
|
+
* Parses a FlowQuery statement into an Abstract Syntax Tree.
|
|
22
|
+
*
|
|
23
|
+
* @param statement - The FlowQuery statement to parse
|
|
24
|
+
* @returns The root AST node containing the parsed structure
|
|
25
|
+
* @throws {Error} If the statement is malformed or contains syntax errors
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const ast = parser.parse("LOAD JSON FROM 'https://api.adviceslip.com/advice' AS data RETURN data");
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
parse(statement: string): ASTNode;
|
|
33
|
+
private parseOperation;
|
|
34
|
+
private parseWith;
|
|
35
|
+
private parseUnwind;
|
|
36
|
+
private parseReturn;
|
|
37
|
+
private parseWhere;
|
|
38
|
+
private parseLoad;
|
|
39
|
+
private parseLimit;
|
|
40
|
+
private parseExpressions;
|
|
41
|
+
private parseExpression;
|
|
42
|
+
private parseLookup;
|
|
43
|
+
private parseCase;
|
|
44
|
+
private parseWhen;
|
|
45
|
+
private parseThen;
|
|
46
|
+
private parseElse;
|
|
47
|
+
private parseAlias;
|
|
48
|
+
private parseFunction;
|
|
49
|
+
/**
|
|
50
|
+
* Parses an async function call for use in LOAD operations.
|
|
51
|
+
* Only matches if the identifier is registered as an async data provider.
|
|
52
|
+
*
|
|
53
|
+
* @returns An AsyncFunction node if a registered async function is found, otherwise null
|
|
54
|
+
*/
|
|
55
|
+
private parseAsyncFunction;
|
|
56
|
+
private parsePredicateFunction;
|
|
57
|
+
private parseFString;
|
|
58
|
+
private parseJSON;
|
|
59
|
+
private parseAssociativeArray;
|
|
60
|
+
private parseJSONArray;
|
|
61
|
+
private expectAndSkipWhitespaceAndComments;
|
|
62
|
+
private skipWhitespaceAndComments;
|
|
63
|
+
private expectPreviousTokenToBeWhitespaceOrComment;
|
|
64
|
+
}
|
|
65
|
+
export default Parser;
|
|
66
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,eAAe,CAAC;AAuCvC;;;;;;;;;;;;GAYG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAa;IAE7B;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IA6CxC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,SAAS;IAoEjB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAE,gBAAgB;IA6BzB,OAAO,CAAC,eAAe;IAiFvB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,aAAa;IAiCrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,sBAAsB;IA0D9B,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,kCAAkC;IAO1C,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,0CAA0C;CAKrD;AAED,eAAe,MAAM,CAAC"}
|
package/dist/parsing/parser.js
CHANGED
|
@@ -52,7 +52,7 @@ const null_1 = __importDefault(require("./components/null"));
|
|
|
52
52
|
* @example
|
|
53
53
|
* ```typescript
|
|
54
54
|
* const parser = new Parser();
|
|
55
|
-
* const ast = parser.parse("unwind [1, 2, 3, 4
|
|
55
|
+
* const ast = parser.parse("unwind [1, 2, 3, 4] as num return num");
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
58
|
class Parser extends base_parser_1.default {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token_to_node.d.ts","sourceRoot":"","sources":["../../src/parsing/token_to_node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,OAAO,MAAM,YAAY,CAAC;AASjC,cAAM,WAAW;WACC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;CAyE/C;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
declare enum Keyword {
|
|
2
|
+
RETURN = "RETURN",
|
|
3
|
+
MATCH = "MATCH",
|
|
4
|
+
WHERE = "WHERE",
|
|
5
|
+
CREATE = "CREATE",
|
|
6
|
+
MERGE = "MERGE",
|
|
7
|
+
DELETE = "DELETE",
|
|
8
|
+
DETACH = "DETACH",
|
|
9
|
+
SET = "SET",
|
|
10
|
+
REMOVE = "REMOVE",
|
|
11
|
+
FOREACH = "FOREACH",
|
|
12
|
+
WITH = "WITH",
|
|
13
|
+
CALL = "CALL",
|
|
14
|
+
YIELD = "YIELD",
|
|
15
|
+
LOAD = "LOAD",
|
|
16
|
+
HEADERS = "HEADERS",
|
|
17
|
+
POST = "POST",
|
|
18
|
+
FROM = "FROM",
|
|
19
|
+
CSV = "CSV",
|
|
20
|
+
JSON = "JSON",
|
|
21
|
+
TEXT = "TEXT",
|
|
22
|
+
AS = "AS",
|
|
23
|
+
UNWIND = "UNWIND",
|
|
24
|
+
SUM = "SUM",
|
|
25
|
+
COLLECT = "COLLECT",
|
|
26
|
+
DISTINCT = "DISTINCT",
|
|
27
|
+
ORDER = "ORDER",
|
|
28
|
+
BY = "BY",
|
|
29
|
+
ASC = "ASC",
|
|
30
|
+
DESC = "DESC",
|
|
31
|
+
SKIP = "SKIP",
|
|
32
|
+
LIMIT = "LIMIT",
|
|
33
|
+
EOF = "EOF",
|
|
34
|
+
CASE = "CASE",
|
|
35
|
+
WHEN = "WHEN",
|
|
36
|
+
THEN = "THEN",
|
|
37
|
+
ELSE = "ELSE",
|
|
38
|
+
END = "END",
|
|
39
|
+
NULL = "NULL",
|
|
40
|
+
IN = "IN"
|
|
41
|
+
}
|
|
42
|
+
export default Keyword;
|
|
43
|
+
//# sourceMappingURL=keyword.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyword.d.ts","sourceRoot":"","sources":["../../src/tokenization/keyword.ts"],"names":[],"mappings":"AAAA,aAAK,OAAO;IACR,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,EAAE,OAAO;CACZ;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare enum Operator {
|
|
2
|
+
ADD = "+",
|
|
3
|
+
SUBTRACT = "-",
|
|
4
|
+
MULTIPLY = "*",
|
|
5
|
+
DIVIDE = "/",
|
|
6
|
+
MODULO = "%",
|
|
7
|
+
EXPONENT = "^",
|
|
8
|
+
EQUALS = "=",
|
|
9
|
+
NOT_EQUALS = "<>",
|
|
10
|
+
LESS_THAN = "<",
|
|
11
|
+
LESS_THAN_OR_EQUAL = "<=",
|
|
12
|
+
GREATER_THAN = ">",
|
|
13
|
+
GREATER_THAN_OR_EQUAL = ">=",
|
|
14
|
+
IS = "IS",
|
|
15
|
+
AND = "AND",
|
|
16
|
+
OR = "OR",
|
|
17
|
+
NOT = "NOT",
|
|
18
|
+
IN = "IN",
|
|
19
|
+
PIPE = "|"
|
|
20
|
+
}
|
|
21
|
+
export default Operator;
|
|
22
|
+
//# sourceMappingURL=operator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../src/tokenization/operator.ts"],"names":[],"mappings":"AAAA,aAAK,QAAQ;IAET,GAAG,MAAM;IACT,QAAQ,MAAM;IACd,QAAQ,MAAM;IACd,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,QAAQ,MAAM;IAEd,MAAM,MAAM;IACZ,UAAU,OAAO;IACjB,SAAS,MAAM;IACf,kBAAkB,OAAO;IACzB,YAAY,MAAM;IAClB,qBAAqB,OAAO;IAC5B,EAAE,OAAO;IAET,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,IAAI,MAAM;CACb;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility class for walking through a string character by character during tokenization.
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to check for specific character patterns, move through the string,
|
|
5
|
+
* and extract substrings. Used by the Tokenizer to process input text.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const walker = new StringWalker("WITH x as variable");
|
|
10
|
+
* while (!walker.isAtEnd) {
|
|
11
|
+
* // Process characters
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare class StringWalker {
|
|
16
|
+
private _position;
|
|
17
|
+
private readonly text;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new StringWalker for the given text.
|
|
20
|
+
*
|
|
21
|
+
* @param text - The input text to walk through
|
|
22
|
+
*/
|
|
23
|
+
constructor(text: string);
|
|
24
|
+
get position(): number;
|
|
25
|
+
get currentChar(): string;
|
|
26
|
+
get nextChar(): string;
|
|
27
|
+
get previousChar(): string;
|
|
28
|
+
get isAtEnd(): boolean;
|
|
29
|
+
getString(startPosition: number): string;
|
|
30
|
+
getRemainingString(): string;
|
|
31
|
+
checkForSingleComment(): boolean;
|
|
32
|
+
checkForMultiLineComment(): boolean;
|
|
33
|
+
singleLineCommentStart(): boolean;
|
|
34
|
+
multiLineCommentStart(): boolean;
|
|
35
|
+
multiLineCommentEnd(): boolean;
|
|
36
|
+
newLine(): boolean;
|
|
37
|
+
escaped(char: string): boolean;
|
|
38
|
+
escapedBrace(): boolean;
|
|
39
|
+
openingBrace(): boolean;
|
|
40
|
+
closingBrace(): boolean;
|
|
41
|
+
checkForUnderScore(): boolean;
|
|
42
|
+
checkForLetter(): boolean;
|
|
43
|
+
checkForDigit(): boolean;
|
|
44
|
+
checkForQuote(): string | null;
|
|
45
|
+
checkForString(value: string): boolean;
|
|
46
|
+
checkForWhitespace(): boolean;
|
|
47
|
+
checkForFStringStart(): boolean;
|
|
48
|
+
moveNext(): void;
|
|
49
|
+
moveBy(steps: number): void;
|
|
50
|
+
movePrevious(): void;
|
|
51
|
+
is_word(word: string | null): boolean;
|
|
52
|
+
word_continuation(word: string): boolean;
|
|
53
|
+
}
|
|
54
|
+
export default StringWalker;
|
|
55
|
+
//# sourceMappingURL=string_walker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string_walker.d.ts","sourceRoot":"","sources":["../../src/tokenization/string_walker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,cAAM,YAAY;IACd,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAE9B;;;;OAIG;gBACS,IAAI,EAAE,MAAM;IAKxB,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAIxC,kBAAkB,IAAI,MAAM;IAI5B,qBAAqB,IAAI,OAAO;IAUhC,wBAAwB,IAAI,OAAO;IAcnC,sBAAsB,IAAI,OAAO;IAIjC,qBAAqB,IAAI,OAAO;IAIhC,mBAAmB,IAAI,OAAO;IAI9B,OAAO,IAAI,OAAO;IAOlB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,YAAY,IAAI,OAAO;IAIvB,YAAY,IAAI,OAAO;IAIvB,YAAY,IAAI,OAAO;IAIvB,kBAAkB,IAAI,OAAO;IAQ7B,cAAc,IAAI,OAAO;IAQzB,aAAa,IAAI,OAAO;IAQxB,aAAa,IAAI,MAAM,GAAG,IAAI;IAS9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUtC,kBAAkB,IAAI,OAAO;IAI7B,oBAAoB,IAAI,OAAO;IAI/B,QAAQ,IAAI,IAAI;IAIhB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAOrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAIlD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare enum Symbol {
|
|
2
|
+
LEFT_PARENTHESIS = "(",
|
|
3
|
+
RIGHT_PARENTHESIS = ")",
|
|
4
|
+
COMMA = ",",
|
|
5
|
+
DOT = ".",
|
|
6
|
+
COLON = ":",
|
|
7
|
+
WHITESPACE = "",
|
|
8
|
+
OPENING_BRACE = "{",
|
|
9
|
+
CLOSING_BRACE = "}",
|
|
10
|
+
OPENING_BRACKET = "[",
|
|
11
|
+
CLOSING_BRACKET = "]",
|
|
12
|
+
BACKTICK = "`"
|
|
13
|
+
}
|
|
14
|
+
export default Symbol;
|
|
15
|
+
//# sourceMappingURL=symbol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../src/tokenization/symbol.ts"],"names":[],"mappings":"AAAA,aAAK,MAAM;IACP,gBAAgB,MAAM;IACtB,iBAAiB,MAAM;IACvB,KAAK,MAAM;IACX,GAAG,MAAM;IACT,KAAK,MAAM;IACX,UAAU,KAAK;IACf,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,eAAe,MAAM;IACrB,eAAe,MAAM;IACrB,QAAQ,MAAM;CACjB;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import TokenType from "./token_type";
|
|
2
|
+
import ASTNode from "../parsing/ast_node";
|
|
3
|
+
/**
|
|
4
|
+
* Represents a single token in the FlowQuery language.
|
|
5
|
+
*
|
|
6
|
+
* Tokens are the atomic units of lexical analysis, produced by the tokenizer
|
|
7
|
+
* and consumed by the parser. Each token has a type (keyword, operator, identifier, etc.)
|
|
8
|
+
* and an optional value.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const withToken = Token.WITH;
|
|
13
|
+
* const identToken = Token.IDENTIFIER("myVar");
|
|
14
|
+
* const numToken = Token.NUMBER("42");
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare class Token {
|
|
18
|
+
private _position;
|
|
19
|
+
private _type;
|
|
20
|
+
private _value;
|
|
21
|
+
private _case_sensitive_value;
|
|
22
|
+
private _can_be_identifier;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new Token instance.
|
|
25
|
+
*
|
|
26
|
+
* @param type - The type of the token
|
|
27
|
+
* @param value - The optional value associated with the token
|
|
28
|
+
*/
|
|
29
|
+
constructor(type: TokenType, value?: string | null);
|
|
30
|
+
/**
|
|
31
|
+
* Checks if this token equals another token.
|
|
32
|
+
*
|
|
33
|
+
* @param other - The token to compare against
|
|
34
|
+
* @returns True if tokens are equal, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
equals(other: Token): boolean;
|
|
37
|
+
set position(position: number);
|
|
38
|
+
get position(): number;
|
|
39
|
+
get type(): TokenType;
|
|
40
|
+
get value(): string | null;
|
|
41
|
+
set case_sensitive_value(value: string);
|
|
42
|
+
get can_be_identifier(): boolean;
|
|
43
|
+
get node(): ASTNode;
|
|
44
|
+
toString(): string;
|
|
45
|
+
static COMMENT(comment: string): Token;
|
|
46
|
+
isComment(): boolean;
|
|
47
|
+
static IDENTIFIER(value: string): Token;
|
|
48
|
+
isIdentifier(): boolean;
|
|
49
|
+
static STRING(value: string, quoteChar?: string): Token;
|
|
50
|
+
isString(): boolean;
|
|
51
|
+
static BACKTICK_STRING(value: string, quoteChar?: string): Token;
|
|
52
|
+
static F_STRING(value: string, quoteChar?: string): Token;
|
|
53
|
+
isFString(): boolean;
|
|
54
|
+
static NUMBER(value: string): Token;
|
|
55
|
+
isNumber(): boolean;
|
|
56
|
+
static get LEFT_PARENTHESIS(): Token;
|
|
57
|
+
isLeftParenthesis(): boolean;
|
|
58
|
+
static get RIGHT_PARENTHESIS(): Token;
|
|
59
|
+
isRightParenthesis(): boolean;
|
|
60
|
+
static get COMMA(): Token;
|
|
61
|
+
isComma(): boolean;
|
|
62
|
+
static get DOT(): Token;
|
|
63
|
+
isDot(): boolean;
|
|
64
|
+
static get COLON(): Token;
|
|
65
|
+
isColon(): boolean;
|
|
66
|
+
static get OPENING_BRACE(): Token;
|
|
67
|
+
isOpeningBrace(): boolean;
|
|
68
|
+
static get CLOSING_BRACE(): Token;
|
|
69
|
+
isClosingBrace(): boolean;
|
|
70
|
+
static get OPENING_BRACKET(): Token;
|
|
71
|
+
isOpeningBracket(): boolean;
|
|
72
|
+
static get CLOSING_BRACKET(): Token;
|
|
73
|
+
isClosingBracket(): boolean;
|
|
74
|
+
static get WHITESPACE(): Token;
|
|
75
|
+
isWhitespace(): boolean;
|
|
76
|
+
isOperator(): boolean;
|
|
77
|
+
isUnaryOperator(): boolean;
|
|
78
|
+
static get ADD(): Token;
|
|
79
|
+
isAdd(): boolean;
|
|
80
|
+
static get SUBTRACT(): Token;
|
|
81
|
+
isSubtract(): boolean;
|
|
82
|
+
isNegation(): boolean;
|
|
83
|
+
static get MULTIPLY(): Token;
|
|
84
|
+
isMultiply(): boolean;
|
|
85
|
+
static get DIVIDE(): Token;
|
|
86
|
+
isDivide(): boolean;
|
|
87
|
+
static get EXPONENT(): Token;
|
|
88
|
+
isExponent(): boolean;
|
|
89
|
+
static get MODULO(): Token;
|
|
90
|
+
isModulo(): boolean;
|
|
91
|
+
static get EQUALS(): Token;
|
|
92
|
+
isEquals(): boolean;
|
|
93
|
+
static get NOT_EQUALS(): Token;
|
|
94
|
+
isNotEquals(): boolean;
|
|
95
|
+
static get LESS_THAN(): Token;
|
|
96
|
+
isLessThan(): boolean;
|
|
97
|
+
static get LESS_THAN_OR_EQUAL(): Token;
|
|
98
|
+
isLessThanOrEqual(): boolean;
|
|
99
|
+
static get GREATER_THAN(): Token;
|
|
100
|
+
isGreaterThan(): boolean;
|
|
101
|
+
static get GREATER_THAN_OR_EQUAL(): Token;
|
|
102
|
+
isGreaterThanOrEqual(): boolean;
|
|
103
|
+
static get AND(): Token;
|
|
104
|
+
isAnd(): boolean;
|
|
105
|
+
static get OR(): Token;
|
|
106
|
+
isOr(): boolean;
|
|
107
|
+
static get NOT(): Token;
|
|
108
|
+
isNot(): boolean;
|
|
109
|
+
static get IS(): Token;
|
|
110
|
+
isIs(): boolean;
|
|
111
|
+
isKeyword(): boolean;
|
|
112
|
+
static get WITH(): Token;
|
|
113
|
+
isWith(): boolean;
|
|
114
|
+
static get RETURN(): Token;
|
|
115
|
+
isReturn(): boolean;
|
|
116
|
+
static get LOAD(): Token;
|
|
117
|
+
isLoad(): boolean;
|
|
118
|
+
static get JSON(): Token;
|
|
119
|
+
isJSON(): boolean;
|
|
120
|
+
static get CSV(): Token;
|
|
121
|
+
isCSV(): boolean;
|
|
122
|
+
static get TEXT(): Token;
|
|
123
|
+
isText(): boolean;
|
|
124
|
+
static get FROM(): Token;
|
|
125
|
+
isFrom(): boolean;
|
|
126
|
+
static get HEADERS(): Token;
|
|
127
|
+
isHeaders(): boolean;
|
|
128
|
+
static get POST(): Token;
|
|
129
|
+
isPost(): boolean;
|
|
130
|
+
static get UNWIND(): Token;
|
|
131
|
+
isUnwind(): boolean;
|
|
132
|
+
static get MATCH(): Token;
|
|
133
|
+
isMatch(): boolean;
|
|
134
|
+
static get AS(): Token;
|
|
135
|
+
isAs(): boolean;
|
|
136
|
+
static get WHERE(): Token;
|
|
137
|
+
isWhere(): boolean;
|
|
138
|
+
static get MERGE(): Token;
|
|
139
|
+
isMerge(): boolean;
|
|
140
|
+
static get CREATE(): Token;
|
|
141
|
+
isCreate(): boolean;
|
|
142
|
+
static get DELETE(): Token;
|
|
143
|
+
isDelete(): boolean;
|
|
144
|
+
static get SET(): Token;
|
|
145
|
+
isSet(): boolean;
|
|
146
|
+
static get REMOVE(): Token;
|
|
147
|
+
isRemove(): boolean;
|
|
148
|
+
static get CASE(): Token;
|
|
149
|
+
isCase(): boolean;
|
|
150
|
+
static get WHEN(): Token;
|
|
151
|
+
isWhen(): boolean;
|
|
152
|
+
static get THEN(): Token;
|
|
153
|
+
isThen(): boolean;
|
|
154
|
+
static get ELSE(): Token;
|
|
155
|
+
isElse(): boolean;
|
|
156
|
+
static get END(): Token;
|
|
157
|
+
isEnd(): boolean;
|
|
158
|
+
static get NULL(): Token;
|
|
159
|
+
isNull(): boolean;
|
|
160
|
+
static get IN(): Token;
|
|
161
|
+
isIn(): boolean;
|
|
162
|
+
static get PIPE(): Token;
|
|
163
|
+
isPipe(): boolean;
|
|
164
|
+
static get DISTINCT(): Token;
|
|
165
|
+
isDistinct(): boolean;
|
|
166
|
+
static get LIMIT(): Token;
|
|
167
|
+
isLimit(): boolean;
|
|
168
|
+
static get EOF(): Token;
|
|
169
|
+
isEOF(): boolean;
|
|
170
|
+
isOperand(): boolean;
|
|
171
|
+
isWhitespaceOrComment(): boolean;
|
|
172
|
+
isSymbol(): boolean;
|
|
173
|
+
static method(name: string): Token | undefined;
|
|
174
|
+
}
|
|
175
|
+
export default Token;
|
|
176
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/tokenization/token.ts"],"names":[],"mappings":"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"}
|