rawsql-ts 0.1.0-beta.11 → 0.1.0-beta.14
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 +78 -18
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/models/BinarySelectQuery.js +137 -0
- package/dist/esm/models/BinarySelectQuery.js.map +1 -0
- package/dist/esm/models/Clause.js +289 -0
- package/dist/esm/models/Clause.js.map +1 -0
- package/dist/esm/models/KeywordTrie.js +48 -0
- package/dist/esm/models/KeywordTrie.js.map +1 -0
- package/dist/esm/models/Lexeme.js +18 -0
- package/dist/esm/models/Lexeme.js.map +1 -0
- package/dist/esm/models/SelectQuery.js +5 -0
- package/dist/esm/models/SelectQuery.js.map +1 -0
- package/dist/esm/models/SimpleSelectQuery.js +288 -0
- package/dist/esm/models/SimpleSelectQuery.js.map +1 -0
- package/dist/esm/models/SqlComponent.js +22 -0
- package/dist/esm/models/SqlComponent.js.map +1 -0
- package/dist/esm/models/ValueComponent.js +223 -0
- package/dist/esm/models/ValueComponent.js.map +1 -0
- package/dist/esm/models/ValuesQuery.js +12 -0
- package/dist/esm/models/ValuesQuery.js.map +1 -0
- package/dist/esm/parsers/CommandExpressionParser.js +120 -0
- package/dist/esm/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/esm/parsers/CommonTableParser.js +58 -0
- package/dist/esm/parsers/CommonTableParser.js.map +1 -0
- package/dist/esm/parsers/ForClauseParser.js +54 -0
- package/dist/esm/parsers/ForClauseParser.js.map +1 -0
- package/dist/esm/parsers/FromClauseParser.js +43 -0
- package/dist/esm/parsers/FromClauseParser.js.map +1 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +174 -0
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/esm/parsers/GroupByParser.js +54 -0
- package/dist/esm/parsers/GroupByParser.js.map +1 -0
- package/dist/esm/parsers/HavingParser.js +32 -0
- package/dist/esm/parsers/HavingParser.js.map +1 -0
- package/dist/esm/parsers/IdentifierParser.js +35 -0
- package/dist/esm/parsers/IdentifierParser.js.map +1 -0
- package/dist/esm/parsers/JoinClauseParser.js +101 -0
- package/dist/esm/parsers/JoinClauseParser.js.map +1 -0
- package/dist/esm/parsers/KeywordParser.js +87 -0
- package/dist/esm/parsers/KeywordParser.js.map +1 -0
- package/dist/esm/parsers/LimitClauseParser.js +46 -0
- package/dist/esm/parsers/LimitClauseParser.js.map +1 -0
- package/dist/esm/parsers/LiteralParser.js +34 -0
- package/dist/esm/parsers/LiteralParser.js.map +1 -0
- package/dist/esm/parsers/OrderByClauseParser.js +73 -0
- package/dist/esm/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/esm/parsers/OverExpressionParser.js +40 -0
- package/dist/esm/parsers/OverExpressionParser.js.map +1 -0
- package/dist/esm/parsers/ParameterExpressionParser.js +11 -0
- package/dist/esm/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/esm/parsers/ParenExpressionParser.js +29 -0
- package/dist/esm/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/esm/parsers/PartitionByParser.js +49 -0
- package/dist/esm/parsers/PartitionByParser.js.map +1 -0
- package/dist/esm/parsers/SelectClauseParser.js +80 -0
- package/dist/esm/parsers/SelectClauseParser.js.map +1 -0
- package/dist/esm/parsers/SelectQueryParser.js +149 -0
- package/dist/esm/parsers/SelectQueryParser.js.map +1 -0
- package/dist/esm/parsers/SourceAliasExpressionParser.js +45 -0
- package/dist/esm/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/esm/parsers/SourceExpressionParser.js +31 -0
- package/dist/esm/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/esm/parsers/SourceParser.js +115 -0
- package/dist/esm/parsers/SourceParser.js.map +1 -0
- package/dist/esm/parsers/SqlTokenizer.js +170 -0
- package/dist/esm/parsers/SqlTokenizer.js.map +1 -0
- package/dist/esm/parsers/StringSpecifierExpressionParser.js +18 -0
- package/dist/esm/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/esm/parsers/UnaryExpressionParser.js +26 -0
- package/dist/esm/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/esm/parsers/ValueParser.js +132 -0
- package/dist/esm/parsers/ValueParser.js.map +1 -0
- package/dist/esm/parsers/ValuesQueryParser.js +82 -0
- package/dist/esm/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/esm/parsers/WhereClauseParser.js +32 -0
- package/dist/esm/parsers/WhereClauseParser.js.map +1 -0
- package/dist/esm/parsers/WindowClauseParser.js +41 -0
- package/dist/esm/parsers/WindowClauseParser.js.map +1 -0
- package/dist/esm/parsers/WindowExpressionParser.js +159 -0
- package/dist/esm/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/esm/parsers/WithClauseParser.js +53 -0
- package/dist/esm/parsers/WithClauseParser.js.map +1 -0
- package/dist/esm/tokenReaders/BaseTokenReader.js +78 -0
- package/dist/esm/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/CommandTokenReader.js +141 -0
- package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/FunctionTokenReader.js +41 -0
- package/dist/esm/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/IdentifierTokenReader.js +66 -0
- package/dist/esm/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/LiteralTokenReader.js +185 -0
- package/dist/esm/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/OperatorTokenReader.js +94 -0
- package/dist/esm/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/ParameterTokenReader.js +40 -0
- package/dist/esm/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.js +27 -0
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/SymbolTokenReader.js +31 -0
- package/dist/esm/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/esm/tokenReaders/TokenReaderManager.js +106 -0
- package/dist/esm/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/esm/tokenReaders/TypeTokenReader.js +55 -0
- package/dist/esm/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/esm/transformers/CTEBuilder.js +184 -0
- package/dist/esm/transformers/CTEBuilder.js.map +1 -0
- package/dist/esm/transformers/CTECollector.js +380 -0
- package/dist/esm/transformers/CTECollector.js.map +1 -0
- package/dist/esm/transformers/CTEDisabler.js +321 -0
- package/dist/esm/transformers/CTEDisabler.js.map +1 -0
- package/dist/esm/transformers/CTEInjector.js +79 -0
- package/dist/esm/transformers/CTEInjector.js.map +1 -0
- package/dist/esm/transformers/CTENormalizer.js +42 -0
- package/dist/esm/transformers/CTENormalizer.js.map +1 -0
- package/dist/esm/transformers/Formatter.js +463 -0
- package/dist/esm/transformers/Formatter.js.map +1 -0
- package/dist/esm/transformers/QueryConverter.js +115 -0
- package/dist/esm/transformers/QueryConverter.js.map +1 -0
- package/dist/esm/transformers/SelectValueCollector.js +245 -0
- package/dist/esm/transformers/SelectValueCollector.js.map +1 -0
- package/dist/esm/transformers/SelectableColumnCollector.js +304 -0
- package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/esm/transformers/TableColumnResolver.js +2 -0
- package/dist/esm/transformers/TableColumnResolver.js.map +1 -0
- package/dist/esm/transformers/TableSourceCollector.js +380 -0
- package/dist/esm/transformers/TableSourceCollector.js.map +1 -0
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js +125 -0
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/esm/types/index.d.ts +14 -0
- package/dist/esm/types/models/BinarySelectQuery.d.ts +91 -0
- package/dist/esm/types/models/Clause.d.ts +189 -0
- package/dist/esm/types/models/KeywordTrie.d.ts +11 -0
- package/dist/esm/types/models/Lexeme.d.ts +25 -0
- package/dist/esm/types/models/SelectQuery.d.ts +5 -0
- package/dist/esm/types/models/SimpleSelectQuery.d.ts +167 -0
- package/dist/esm/types/models/SqlComponent.d.ts +18 -0
- package/dist/esm/types/models/ValueComponent.d.ts +158 -0
- package/dist/esm/types/models/ValuesQuery.d.ts +10 -0
- package/dist/esm/types/parsers/CommandExpressionParser.d.ts +15 -0
- package/dist/esm/types/parsers/CommonTableParser.d.ts +9 -0
- package/dist/esm/types/parsers/ForClauseParser.d.ts +9 -0
- package/dist/esm/types/parsers/FromClauseParser.d.ts +9 -0
- package/dist/esm/types/parsers/FunctionExpressionParser.d.ts +22 -0
- package/dist/esm/types/parsers/GroupByParser.d.ts +10 -0
- package/dist/esm/types/parsers/HavingParser.d.ts +9 -0
- package/dist/esm/types/parsers/IdentifierParser.d.ts +8 -0
- package/dist/esm/types/parsers/JoinClauseParser.d.ts +14 -0
- package/dist/esm/types/parsers/KeywordParser.d.ts +17 -0
- package/dist/esm/types/parsers/LimitClauseParser.d.ts +9 -0
- package/dist/esm/types/parsers/LiteralParser.d.ts +8 -0
- package/dist/esm/types/parsers/OrderByClauseParser.d.ts +10 -0
- package/dist/esm/types/parsers/OverExpressionParser.d.ts +9 -0
- package/dist/esm/types/parsers/ParameterExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/ParenExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/PartitionByParser.d.ts +9 -0
- package/dist/esm/types/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/esm/types/parsers/SelectQueryParser.d.ts +13 -0
- package/dist/esm/types/parsers/SourceAliasExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/SourceParser.d.ts +13 -0
- package/dist/esm/types/parsers/SqlTokenizer.d.ts +64 -0
- package/dist/esm/types/parsers/StringSpecifierExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/UnaryExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/ValueParser.d.ts +14 -0
- package/dist/esm/types/parsers/ValuesQueryParser.d.ts +10 -0
- package/dist/esm/types/parsers/WhereClauseParser.d.ts +9 -0
- package/dist/esm/types/parsers/WindowClauseParser.d.ts +9 -0
- package/dist/esm/types/parsers/WindowExpressionParser.d.ts +12 -0
- package/dist/esm/types/parsers/WithClauseParser.d.ts +9 -0
- package/dist/esm/types/tokenReaders/BaseTokenReader.d.ts +43 -0
- package/dist/esm/types/tokenReaders/CommandTokenReader.d.ts +7 -0
- package/dist/esm/types/tokenReaders/FunctionTokenReader.d.ts +11 -0
- package/dist/esm/types/tokenReaders/IdentifierTokenReader.d.ts +15 -0
- package/dist/esm/types/tokenReaders/LiteralTokenReader.d.ts +23 -0
- package/dist/esm/types/tokenReaders/OperatorTokenReader.d.ts +5 -0
- package/dist/esm/types/tokenReaders/ParameterTokenReader.d.ts +11 -0
- package/dist/esm/types/tokenReaders/StringSpecifierTokenReader.d.ts +8 -0
- package/dist/esm/types/tokenReaders/SymbolTokenReader.d.ts +12 -0
- package/dist/esm/types/tokenReaders/TokenReaderManager.d.ts +53 -0
- package/dist/esm/types/tokenReaders/TypeTokenReader.d.ts +11 -0
- package/dist/esm/types/transformers/CTEBuilder.d.ts +52 -0
- package/dist/esm/types/transformers/CTECollector.d.ts +81 -0
- package/dist/esm/types/transformers/CTEDisabler.d.ts +77 -0
- package/dist/esm/types/transformers/CTEInjector.d.ts +40 -0
- package/dist/esm/types/transformers/CTENormalizer.d.ts +25 -0
- package/dist/esm/types/transformers/Formatter.d.ts +82 -0
- package/dist/esm/types/transformers/QueryConverter.d.ts +41 -0
- package/dist/esm/types/transformers/SelectValueCollector.d.ts +60 -0
- package/dist/esm/types/transformers/SelectableColumnCollector.d.ts +70 -0
- package/dist/esm/types/transformers/TableColumnResolver.d.ts +10 -0
- package/dist/esm/types/transformers/TableSourceCollector.d.ts +92 -0
- package/dist/esm/types/transformers/UpstreamSelectQueryFinder.d.ts +27 -0
- package/dist/esm/types/utils/charLookupTable.d.ts +11 -0
- package/dist/esm/types/utils/stringUtils.d.ts +43 -0
- package/dist/esm/utils/charLookupTable.js +69 -0
- package/dist/esm/utils/charLookupTable.js.map +1 -0
- package/dist/esm/utils/stringUtils.js +164 -0
- package/dist/esm/utils/stringUtils.js.map +1 -0
- package/package.json +4 -1
package/README.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# rawsql-ts
|
2
2
|
|
3
3
|

|
4
|
+

|
5
|
+

|
6
|
+

|
7
|
+

|
4
8
|
|
5
9
|
rawsql-ts is a high-performance SQL parser and AST transformer library written in TypeScript. It is designed for extensibility and advanced SQL analysis, with initial focus on PostgreSQL syntax but not limited to it. The library enables easy SQL parsing, transformation, and analysis for a wide range of SQL dialects.
|
6
10
|
|
@@ -20,6 +24,28 @@ With rawsql-ts, raw SQL can be represented as objects, enabling flexible manipul
|
|
20
24
|
- High-speed SQL parsing and AST analysis
|
21
25
|
- Rich utilities for SQL structure transformation and analysis
|
22
26
|
|
27
|
+
## ✨ Browser & CDN Ready!
|
28
|
+
|
29
|
+
You can use rawsql-ts directly in modern browsers via CDN (unpkg/jsdelivr)!
|
30
|
+
No Node.js dependencies, no build tools required.
|
31
|
+
Just import it like this:
|
32
|
+
|
33
|
+
```html
|
34
|
+
<!-- Always get the latest version -->
|
35
|
+
<script type="module">
|
36
|
+
import { parse } from "https://unpkg.com/rawsql-ts/dist/esm/index.js";
|
37
|
+
</script>
|
38
|
+
```
|
39
|
+
|
40
|
+
```html
|
41
|
+
<!-- Pin a specific version for stability -->
|
42
|
+
<script type="module">
|
43
|
+
import { parse } from "https://unpkg.com/rawsql-ts@0.1.0-beta.12/dist/esm/index.js";
|
44
|
+
</script>
|
45
|
+
```
|
46
|
+
|
47
|
+
---
|
48
|
+
|
23
49
|
## Installation
|
24
50
|
|
25
51
|
```bash
|
@@ -112,36 +138,70 @@ A suite of utilities for transforming and analyzing SQL ASTs.
|
|
112
138
|
## Usage Example
|
113
139
|
|
114
140
|
```typescript
|
115
|
-
import { TableColumnResolver } from
|
116
|
-
import { SelectQueryParser } from 'rawsql-ts';
|
117
|
-
import { SelectableColumnCollector } from 'rawsql-ts/transformers/SelectableColumnCollector';
|
118
|
-
import { SelectValueCollector } from 'rawsql-ts/transformers/SelectValueCollector';
|
119
|
-
import { TableSourceCollector } from 'rawsql-ts/transformers/TableSourceCollector';
|
141
|
+
import { TableColumnResolver, SelectQueryParser, SelectableColumnCollector, SelectValueCollector, TableSourceCollector, Formatter } from 'rawsql-ts';
|
120
142
|
|
121
143
|
// TableColumnResolver example
|
122
144
|
const resolver: TableColumnResolver = (tableName) => {
|
123
|
-
|
124
|
-
|
125
|
-
|
145
|
+
if (tableName === 'users') return ['user_id', 'user_name', 'email'];
|
146
|
+
if (tableName === 'posts') return ['post_id', 'user_id', 'title', 'content'];
|
147
|
+
return [];
|
126
148
|
};
|
127
149
|
|
128
|
-
const sql = `SELECT u
|
150
|
+
const sql = `SELECT u.*, p.title as post_title FROM users u INNER JOIN posts p ON u.user_id = p.user_id`;
|
129
151
|
const query = SelectQueryParser.parse(sql);
|
152
|
+
const formatter = new Formatter();
|
130
153
|
|
131
|
-
//
|
154
|
+
// Collects information from the SELECT clause.
|
155
|
+
// To expand wildcards, you must specify a TableColumnResolver.
|
132
156
|
const selectValueCollector = new SelectValueCollector(resolver);
|
133
157
|
const selectValues = selectValueCollector.collect(query);
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
158
|
+
// Log the name and formatted value of each select value
|
159
|
+
console.log('Select values:');
|
160
|
+
selectValues.forEach(val => {
|
161
|
+
console.log(` name: ${val.name}, value: ${formatter.format(val.value)}`);
|
162
|
+
});
|
163
|
+
/*
|
164
|
+
Select values:
|
165
|
+
name: post_title, value: "p"."title"
|
166
|
+
name: user_id, value: "u"."user_id"
|
167
|
+
name: user_name, value: "u"."user_name"
|
168
|
+
name: email, value: "u"."email"
|
169
|
+
*/
|
170
|
+
|
171
|
+
// Collects selectable columns from the FROM/JOIN clauses.
|
172
|
+
// You can get accurate information by specifying a TableColumnResolver.
|
173
|
+
// If omitted, the information will be inferred from the query content.
|
174
|
+
const selectableColumnCollector = new SelectableColumnCollector(resolver);
|
138
175
|
const selectableColumns = selectableColumnCollector.collect(query);
|
139
|
-
|
140
|
-
|
141
|
-
|
176
|
+
// Log detailed info for each selectable column
|
177
|
+
console.log('Selectable columns:');
|
178
|
+
selectableColumns.forEach(val => {
|
179
|
+
console.log(` name: ${val.name}, value: ${formatter.format(val.value)}`);
|
180
|
+
});
|
181
|
+
/*
|
182
|
+
Selectable columns:
|
183
|
+
name: post_title, value: "p"."title"
|
184
|
+
name: user_id, value: "u"."user_id"
|
185
|
+
name: user_name, value: "u"."user_name"
|
186
|
+
name: email, value: "u"."email"
|
187
|
+
name: post_id, value: "p"."post_id"
|
188
|
+
name: title, value: "p"."title"
|
189
|
+
name: content, value: "p"."content"
|
190
|
+
*/
|
191
|
+
|
192
|
+
// Retrieves physical table sources.
|
142
193
|
const tableSourceCollector = new TableSourceCollector();
|
143
194
|
const sources = tableSourceCollector.collect(query);
|
144
|
-
|
195
|
+
// Log detailed info for each source
|
196
|
+
console.log('Sources:');
|
197
|
+
sources.forEach(src => {
|
198
|
+
console.log(` name: ${src.getSourceName()}`);
|
199
|
+
});
|
200
|
+
/*
|
201
|
+
TableSources:
|
202
|
+
name: users
|
203
|
+
name: posts
|
204
|
+
*/
|
145
205
|
```
|
146
206
|
|
147
207
|
---
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// Entry point for rawsql-ts package
|
2
|
+
export * from './parsers/SelectQueryParser';
|
3
|
+
export * from './models/BinarySelectQuery';
|
4
|
+
export * from './models/SelectQuery';
|
5
|
+
export * from './models/ValueComponent';
|
6
|
+
export * from './models/ValuesQuery';
|
7
|
+
export * from './transformers/CTECollector';
|
8
|
+
export * from './transformers/CTENormalizer';
|
9
|
+
export * from './transformers/Formatter';
|
10
|
+
export * from './transformers/QueryConverter';
|
11
|
+
export * from './transformers/SelectValueCollector';
|
12
|
+
export * from './transformers/SelectableColumnCollector';
|
13
|
+
export * from './transformers/TableColumnResolver';
|
14
|
+
export * from './transformers/TableSourceCollector';
|
15
|
+
export * from './transformers/UpstreamSelectQueryFinder';
|
16
|
+
// Add more exports here if you want to expose additional public API
|
17
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AAErC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,oEAAoE"}
|
@@ -0,0 +1,137 @@
|
|
1
|
+
import { SourceExpression, SubQuerySource, SourceAliasExpression } from "./Clause";
|
2
|
+
import { SqlComponent } from "./SqlComponent";
|
3
|
+
import { RawString } from "./ValueComponent";
|
4
|
+
import { CTENormalizer } from "../transformers/CTENormalizer";
|
5
|
+
import { SelectQueryParser } from "../parsers/SelectQueryParser";
|
6
|
+
/**
|
7
|
+
* Represents a binary SELECT query (e.g., UNION, INTERSECT, EXCEPT).
|
8
|
+
*/
|
9
|
+
export class BinarySelectQuery extends SqlComponent {
|
10
|
+
constructor(left, operator, right) {
|
11
|
+
super();
|
12
|
+
this.left = left;
|
13
|
+
this.operator = new RawString(operator);
|
14
|
+
this.right = right;
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Appends another query to this binary query using UNION as the operator.
|
18
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
19
|
+
* and the right side is the provided query.
|
20
|
+
*
|
21
|
+
* @param query The query to append with UNION
|
22
|
+
* @returns A new BinarySelectQuery representing "(this) UNION query"
|
23
|
+
*/
|
24
|
+
union(query) {
|
25
|
+
return this.appendSelectQuery('union', query);
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Appends another query to this binary query using UNION ALL as the operator.
|
29
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
30
|
+
* and the right side is the provided query.
|
31
|
+
*
|
32
|
+
* @param query The query to append with UNION ALL
|
33
|
+
* @returns A new BinarySelectQuery representing "(this) UNION ALL query"
|
34
|
+
*/
|
35
|
+
unionAll(query) {
|
36
|
+
return this.appendSelectQuery('union all', query);
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Appends another query to this binary query using INTERSECT as the operator.
|
40
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
41
|
+
* and the right side is the provided query.
|
42
|
+
*
|
43
|
+
* @param query The query to append with INTERSECT
|
44
|
+
* @returns A new BinarySelectQuery representing "(this) INTERSECT query"
|
45
|
+
*/
|
46
|
+
intersect(query) {
|
47
|
+
return this.appendSelectQuery('intersect', query);
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Appends another query to this binary query using INTERSECT ALL as the operator.
|
51
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
52
|
+
* and the right side is the provided query.
|
53
|
+
*
|
54
|
+
* @param query The query to append with INTERSECT ALL
|
55
|
+
* @returns A new BinarySelectQuery representing "(this) INTERSECT ALL query"
|
56
|
+
*/
|
57
|
+
intersectAll(query) {
|
58
|
+
return this.appendSelectQuery('intersect all', query);
|
59
|
+
}
|
60
|
+
/**
|
61
|
+
* Appends another query to this binary query using EXCEPT as the operator.
|
62
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
63
|
+
* and the right side is the provided query.
|
64
|
+
*
|
65
|
+
* @param query The query to append with EXCEPT
|
66
|
+
* @returns A new BinarySelectQuery representing "(this) EXCEPT query"
|
67
|
+
*/
|
68
|
+
except(query) {
|
69
|
+
return this.appendSelectQuery('except', query);
|
70
|
+
}
|
71
|
+
/**
|
72
|
+
* Appends another query to this binary query using EXCEPT ALL as the operator.
|
73
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
74
|
+
* and the right side is the provided query.
|
75
|
+
*
|
76
|
+
* @param query The query to append with EXCEPT ALL
|
77
|
+
* @returns A new BinarySelectQuery representing "(this) EXCEPT ALL query"
|
78
|
+
*/
|
79
|
+
exceptAll(query) {
|
80
|
+
return this.appendSelectQuery('except all', query);
|
81
|
+
}
|
82
|
+
/**
|
83
|
+
* Appends another query to this binary query using the specified operator.
|
84
|
+
* This creates a new BinarySelectQuery where the left side is this binary query
|
85
|
+
* and the right side is the provided query.
|
86
|
+
*
|
87
|
+
* @param operator SQL operator to use (e.g. 'union', 'union all', 'intersect', 'except')
|
88
|
+
* @param query The query to append with the specified operator
|
89
|
+
* @returns A new BinarySelectQuery representing "(this) [operator] query"
|
90
|
+
*/
|
91
|
+
appendSelectQuery(operator, query) {
|
92
|
+
this.left = new BinarySelectQuery(this.left, this.operator.value, this.right);
|
93
|
+
this.operator = new RawString(operator);
|
94
|
+
this.right = query;
|
95
|
+
// const normalizer = new CTENormalizer();
|
96
|
+
// normalizer.normalize(this);
|
97
|
+
CTENormalizer.normalize(this);
|
98
|
+
return this;
|
99
|
+
}
|
100
|
+
/**
|
101
|
+
* Appends another query to this binary query using UNION as the operator, accepting a raw SQL string.
|
102
|
+
* This method parses the SQL string and appends the resulting query using UNION.
|
103
|
+
* @param sql The SQL string to parse and union
|
104
|
+
* @returns A new BinarySelectQuery representing "(this) UNION (parsed query)"
|
105
|
+
*/
|
106
|
+
unionRaw(sql) {
|
107
|
+
const parsedQuery = SelectQueryParser.parse(sql);
|
108
|
+
return this.union(parsedQuery);
|
109
|
+
}
|
110
|
+
unionAllRaw(sql) {
|
111
|
+
const parsedQuery = SelectQueryParser.parse(sql);
|
112
|
+
return this.unionAll(parsedQuery);
|
113
|
+
}
|
114
|
+
intersectRaw(sql) {
|
115
|
+
const parsedQuery = SelectQueryParser.parse(sql);
|
116
|
+
return this.intersect(parsedQuery);
|
117
|
+
}
|
118
|
+
intersectAllRaw(sql) {
|
119
|
+
const parsedQuery = SelectQueryParser.parse(sql);
|
120
|
+
return this.intersectAll(parsedQuery);
|
121
|
+
}
|
122
|
+
exceptRaw(sql) {
|
123
|
+
const parsedQuery = SelectQueryParser.parse(sql);
|
124
|
+
return this.except(parsedQuery);
|
125
|
+
}
|
126
|
+
exceptAllRaw(sql) {
|
127
|
+
const parsedQuery = SelectQueryParser.parse(sql);
|
128
|
+
return this.exceptAll(parsedQuery);
|
129
|
+
}
|
130
|
+
// Returns a SourceExpression wrapping this query as a subquery source.
|
131
|
+
// Optionally takes an alias name (default: "subq")
|
132
|
+
toSource(alias = "subq") {
|
133
|
+
return new SourceExpression(new SubQuerySource(this), new SourceAliasExpression(alias, null));
|
134
|
+
}
|
135
|
+
}
|
136
|
+
BinarySelectQuery.kind = Symbol("BinarySelectQuery");
|
137
|
+
//# sourceMappingURL=BinarySelectQuery.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"BinarySelectQuery.js","sourceRoot":"","sources":["../../../src/models/BinarySelectQuery.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,289 @@
|
|
1
|
+
import { SqlComponent } from "./SqlComponent";
|
2
|
+
import { IdentifierString, RawString } from "./ValueComponent";
|
3
|
+
export class SelectItem extends SqlComponent {
|
4
|
+
constructor(value, name) {
|
5
|
+
super();
|
6
|
+
this.value = value;
|
7
|
+
this.identifier = new IdentifierString(name);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
SelectItem.kind = Symbol("SelectItem");
|
11
|
+
export class SelectClause extends SqlComponent {
|
12
|
+
constructor(items, distinct = null) {
|
13
|
+
super();
|
14
|
+
this.items = items;
|
15
|
+
this.distinct = distinct;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
SelectClause.kind = Symbol("SelectClause");
|
19
|
+
export class Distinct extends SqlComponent {
|
20
|
+
constructor() {
|
21
|
+
super();
|
22
|
+
}
|
23
|
+
}
|
24
|
+
Distinct.kind = Symbol("Distinct");
|
25
|
+
export class DistinctOn extends SqlComponent {
|
26
|
+
constructor(value) {
|
27
|
+
super();
|
28
|
+
this.value = value;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
DistinctOn.kind = Symbol("DistinctOn");
|
32
|
+
export class WhereClause extends SqlComponent {
|
33
|
+
constructor(condition) {
|
34
|
+
super();
|
35
|
+
this.condition = condition;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
WhereClause.kind = Symbol("WhereClause");
|
39
|
+
export class PartitionByClause extends SqlComponent {
|
40
|
+
constructor(value) {
|
41
|
+
super();
|
42
|
+
this.value = value;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
PartitionByClause.kind = Symbol("PartitionByClause");
|
46
|
+
export class WindowFrameClause extends SqlComponent {
|
47
|
+
constructor(name, expression) {
|
48
|
+
super();
|
49
|
+
this.name = new IdentifierString(name);
|
50
|
+
this.expression = expression;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
WindowFrameClause.kind = Symbol("WindowFrameClause");
|
54
|
+
export var SortDirection;
|
55
|
+
(function (SortDirection) {
|
56
|
+
SortDirection["Ascending"] = "asc";
|
57
|
+
SortDirection["Descending"] = "desc";
|
58
|
+
})(SortDirection || (SortDirection = {}));
|
59
|
+
export var NullsSortDirection;
|
60
|
+
(function (NullsSortDirection) {
|
61
|
+
NullsSortDirection["First"] = "first";
|
62
|
+
NullsSortDirection["Last"] = "last";
|
63
|
+
})(NullsSortDirection || (NullsSortDirection = {}));
|
64
|
+
export class OrderByClause extends SqlComponent {
|
65
|
+
constructor(items) {
|
66
|
+
super();
|
67
|
+
this.order = items;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
OrderByClause.kind = Symbol("OrderByClause");
|
71
|
+
export class OrderByItem extends SqlComponent {
|
72
|
+
constructor(expression, sortDirection, nullsPosition) {
|
73
|
+
super();
|
74
|
+
this.value = expression;
|
75
|
+
this.sortDirection = sortDirection === null ? SortDirection.Ascending : sortDirection;
|
76
|
+
this.nullsPosition = nullsPosition;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
OrderByItem.kind = Symbol("OrderByItem");
|
80
|
+
export class GroupByClause extends SqlComponent {
|
81
|
+
constructor(expression) {
|
82
|
+
super();
|
83
|
+
this.grouping = expression;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
GroupByClause.kind = Symbol("GroupByClause");
|
87
|
+
export class HavingClause extends SqlComponent {
|
88
|
+
constructor(condition) {
|
89
|
+
super();
|
90
|
+
this.condition = condition;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
HavingClause.kind = Symbol("HavingClause");
|
94
|
+
export class TableSource extends SqlComponent {
|
95
|
+
constructor(namespaces, table) {
|
96
|
+
super();
|
97
|
+
this.namespaces = namespaces !== null ? namespaces.map((namespace) => new IdentifierString(namespace)) : null;
|
98
|
+
;
|
99
|
+
this.table = new IdentifierString(table);
|
100
|
+
this.identifier = this.table;
|
101
|
+
}
|
102
|
+
getSourceName() {
|
103
|
+
if (this.namespaces) {
|
104
|
+
return this.namespaces.map((namespace) => namespace.name).join(".") + "." + this.table.name;
|
105
|
+
}
|
106
|
+
else {
|
107
|
+
return this.table.name;
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
TableSource.kind = Symbol("TableSource");
|
112
|
+
export class FunctionSource extends SqlComponent {
|
113
|
+
constructor(functionName, argument) {
|
114
|
+
super();
|
115
|
+
this.name = new RawString(functionName);
|
116
|
+
this.argument = argument;
|
117
|
+
}
|
118
|
+
}
|
119
|
+
FunctionSource.kind = Symbol("FunctionSource");
|
120
|
+
export class ParenSource extends SqlComponent {
|
121
|
+
constructor(source) {
|
122
|
+
super();
|
123
|
+
this.source = source;
|
124
|
+
}
|
125
|
+
}
|
126
|
+
ParenSource.kind = Symbol("ParenSource");
|
127
|
+
export class SubQuerySource extends SqlComponent {
|
128
|
+
constructor(query) {
|
129
|
+
super();
|
130
|
+
this.query = query;
|
131
|
+
}
|
132
|
+
}
|
133
|
+
SubQuerySource.kind = Symbol("SubQuerySource");
|
134
|
+
export class SourceExpression extends SqlComponent {
|
135
|
+
constructor(datasource, aliasExpression) {
|
136
|
+
super();
|
137
|
+
this.datasource = datasource;
|
138
|
+
this.aliasExpression = aliasExpression;
|
139
|
+
}
|
140
|
+
getAliasName() {
|
141
|
+
if (this.aliasExpression) {
|
142
|
+
return this.aliasExpression.table.name;
|
143
|
+
}
|
144
|
+
else if (this.datasource instanceof TableSource) {
|
145
|
+
return this.datasource.getSourceName();
|
146
|
+
}
|
147
|
+
return null;
|
148
|
+
}
|
149
|
+
}
|
150
|
+
SourceExpression.kind = Symbol("SourceExpression");
|
151
|
+
export class JoinOnClause extends SqlComponent {
|
152
|
+
constructor(condition) {
|
153
|
+
super();
|
154
|
+
this.condition = condition;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
JoinOnClause.kind = Symbol("JoinOnClause");
|
158
|
+
export class JoinUsingClause extends SqlComponent {
|
159
|
+
constructor(condition) {
|
160
|
+
super();
|
161
|
+
this.condition = condition;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
JoinUsingClause.kind = Symbol("JoinUsingClause");
|
165
|
+
export class JoinClause extends SqlComponent {
|
166
|
+
constructor(joinType, source, condition, lateral) {
|
167
|
+
super();
|
168
|
+
this.joinType = new RawString(joinType);
|
169
|
+
this.source = source;
|
170
|
+
this.condition = condition;
|
171
|
+
this.lateral = lateral;
|
172
|
+
}
|
173
|
+
getAliasSourceName() {
|
174
|
+
if (this.source.aliasExpression) {
|
175
|
+
return this.source.aliasExpression.table.name;
|
176
|
+
}
|
177
|
+
else if (this.source instanceof TableSource) {
|
178
|
+
return this.source.table.name;
|
179
|
+
}
|
180
|
+
return null;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
JoinClause.kind = Symbol("JoinItem");
|
184
|
+
export class FromClause extends SqlComponent {
|
185
|
+
constructor(source, join) {
|
186
|
+
super();
|
187
|
+
this.source = source;
|
188
|
+
this.joins = join;
|
189
|
+
}
|
190
|
+
getAliasSourceName() {
|
191
|
+
if (this.source.aliasExpression) {
|
192
|
+
return this.source.aliasExpression.table.name;
|
193
|
+
}
|
194
|
+
else if (this.source.datasource instanceof TableSource) {
|
195
|
+
return this.source.datasource.table.name;
|
196
|
+
}
|
197
|
+
return null;
|
198
|
+
}
|
199
|
+
/**
|
200
|
+
* Returns all SourceExpression objects in this FROM clause, including main source and all JOIN sources.
|
201
|
+
*/
|
202
|
+
getSources() {
|
203
|
+
const sources = [this.source];
|
204
|
+
if (this.joins) {
|
205
|
+
for (const join of this.joins) {
|
206
|
+
sources.push(join.source);
|
207
|
+
}
|
208
|
+
}
|
209
|
+
return sources;
|
210
|
+
}
|
211
|
+
}
|
212
|
+
FromClause.kind = Symbol("FromClause");
|
213
|
+
export class CommonTable extends SqlComponent {
|
214
|
+
constructor(query, aliasExpression, materialized) {
|
215
|
+
super();
|
216
|
+
this.query = query;
|
217
|
+
this.materialized = materialized;
|
218
|
+
if (typeof aliasExpression === "string") {
|
219
|
+
this.aliasExpression = new SourceAliasExpression(aliasExpression, null);
|
220
|
+
}
|
221
|
+
else {
|
222
|
+
this.aliasExpression = aliasExpression;
|
223
|
+
}
|
224
|
+
}
|
225
|
+
getAliasSourceName() {
|
226
|
+
return this.aliasExpression.table.name;
|
227
|
+
}
|
228
|
+
}
|
229
|
+
CommonTable.kind = Symbol("CommonTable");
|
230
|
+
export class WithClause extends SqlComponent {
|
231
|
+
constructor(recursive, tables) {
|
232
|
+
super();
|
233
|
+
this.recursive = recursive;
|
234
|
+
this.tables = tables;
|
235
|
+
}
|
236
|
+
}
|
237
|
+
WithClause.kind = Symbol("WithClause");
|
238
|
+
//export type RowLimitComponent = LimitOffset | FetchSpecification;
|
239
|
+
export class LimitClause extends SqlComponent {
|
240
|
+
constructor(limit, offset) {
|
241
|
+
super();
|
242
|
+
this.limit = limit;
|
243
|
+
this.offset = offset;
|
244
|
+
}
|
245
|
+
}
|
246
|
+
LimitClause.kind = Symbol("LimitClause");
|
247
|
+
export var FetchType;
|
248
|
+
(function (FetchType) {
|
249
|
+
FetchType["Next"] = "next";
|
250
|
+
FetchType["First"] = "first";
|
251
|
+
})(FetchType || (FetchType = {}));
|
252
|
+
export var FetchUnit;
|
253
|
+
(function (FetchUnit) {
|
254
|
+
FetchUnit["RowsOnly"] = "rows only";
|
255
|
+
FetchUnit["Percent"] = "percent";
|
256
|
+
FetchUnit["PercentWithTies"] = "percent with ties";
|
257
|
+
})(FetchUnit || (FetchUnit = {}));
|
258
|
+
export class FetchSpecification extends SqlComponent {
|
259
|
+
constructor(type, count, unit) {
|
260
|
+
super();
|
261
|
+
this.type = type;
|
262
|
+
this.count = count;
|
263
|
+
this.unit = unit;
|
264
|
+
}
|
265
|
+
}
|
266
|
+
FetchSpecification.kind = Symbol("FetchSpecification");
|
267
|
+
export var LockMode;
|
268
|
+
(function (LockMode) {
|
269
|
+
LockMode["Update"] = "update";
|
270
|
+
LockMode["Share"] = "share";
|
271
|
+
LockMode["KeyShare"] = "key share";
|
272
|
+
LockMode["NokeyUpdate"] = "no key update";
|
273
|
+
})(LockMode || (LockMode = {}));
|
274
|
+
export class ForClause extends SqlComponent {
|
275
|
+
constructor(lockMode) {
|
276
|
+
super();
|
277
|
+
this.lockMode = lockMode;
|
278
|
+
}
|
279
|
+
}
|
280
|
+
ForClause.kind = Symbol("ForClause");
|
281
|
+
export class SourceAliasExpression extends SqlComponent {
|
282
|
+
constructor(alias, columnAlias) {
|
283
|
+
super();
|
284
|
+
this.table = new IdentifierString(alias);
|
285
|
+
this.columns = columnAlias !== null ? columnAlias.map((alias) => new IdentifierString(alias)) : null;
|
286
|
+
}
|
287
|
+
}
|
288
|
+
SourceAliasExpression.kind = Symbol("SourceAliasExpression");
|
289
|
+
//# sourceMappingURL=Clause.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Clause.js","sourceRoot":"","sources":["../../../src/models/Clause.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { KeywordMatchResult } from "../parsers/KeywordParser";
|
2
|
+
export class KeywordTrie {
|
3
|
+
constructor(keywords) {
|
4
|
+
this.root = new Map();
|
5
|
+
// cache properties
|
6
|
+
this.hasEndProperty = false;
|
7
|
+
this.hasMoreProperties = false;
|
8
|
+
// initialize root node
|
9
|
+
for (const keyword of keywords) {
|
10
|
+
this.addKeyword(keyword);
|
11
|
+
}
|
12
|
+
// set current node to root
|
13
|
+
this.currentNode = this.root;
|
14
|
+
}
|
15
|
+
addKeyword(keyword) {
|
16
|
+
let node = this.root;
|
17
|
+
for (const word of keyword) {
|
18
|
+
if (!node.has(word)) {
|
19
|
+
node.set(word, new Map());
|
20
|
+
}
|
21
|
+
node = node.get(word);
|
22
|
+
}
|
23
|
+
node.set("__end__", true);
|
24
|
+
}
|
25
|
+
reset() {
|
26
|
+
this.currentNode = this.root;
|
27
|
+
this.hasEndProperty = false;
|
28
|
+
this.hasMoreProperties = false;
|
29
|
+
}
|
30
|
+
pushLexeme(lexeme) {
|
31
|
+
if (!this.currentNode.has(lexeme)) {
|
32
|
+
return KeywordMatchResult.NotAKeyword;
|
33
|
+
}
|
34
|
+
// move to next node
|
35
|
+
this.currentNode = this.currentNode.get(lexeme);
|
36
|
+
// Cache property checks to avoid repeated operations
|
37
|
+
this.hasEndProperty = this.currentNode.has("__end__");
|
38
|
+
this.hasMoreProperties = this.currentNode.size > (this.hasEndProperty ? 1 : 0);
|
39
|
+
if (this.hasEndProperty && !this.hasMoreProperties) {
|
40
|
+
return KeywordMatchResult.Final;
|
41
|
+
}
|
42
|
+
if (this.hasEndProperty && this.hasMoreProperties) {
|
43
|
+
return KeywordMatchResult.PartialOrFinal;
|
44
|
+
}
|
45
|
+
return KeywordMatchResult.PartialOnly;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
//# sourceMappingURL=KeywordTrie.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"KeywordTrie.js","sourceRoot":"","sources":["../../../src/models/KeywordTrie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAO,WAAW;IAQpB,YAAY,QAAoB;QAPxB,SAAI,GAAqB,IAAI,GAAG,EAAE,CAAC;QAG3C,mBAAmB;QACX,mBAAc,GAAY,KAAK,CAAC;QAChC,sBAAiB,GAAY,KAAK,CAAC;QAGvC,uBAAuB;QACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,2BAA2B;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAEO,UAAU,CAAC,OAAiB;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,MAAc;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,kBAAkB,CAAC,WAAW,CAAC;QAC1C,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhD,qDAAqD;QACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjD,OAAO,kBAAkB,CAAC,KAAK,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,OAAO,kBAAkB,CAAC,cAAc,CAAC;QAC7C,CAAC;QAED,OAAO,kBAAkB,CAAC,WAAW,CAAC;IAC1C,CAAC;CACJ"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
export var TokenType;
|
2
|
+
(function (TokenType) {
|
3
|
+
TokenType[TokenType["Literal"] = 0] = "Literal";
|
4
|
+
TokenType[TokenType["Operator"] = 1] = "Operator";
|
5
|
+
TokenType[TokenType["OpenParen"] = 2] = "OpenParen";
|
6
|
+
TokenType[TokenType["CloseParen"] = 3] = "CloseParen";
|
7
|
+
TokenType[TokenType["Comma"] = 4] = "Comma";
|
8
|
+
TokenType[TokenType["Dot"] = 5] = "Dot";
|
9
|
+
TokenType[TokenType["Identifier"] = 6] = "Identifier";
|
10
|
+
TokenType[TokenType["Command"] = 7] = "Command";
|
11
|
+
TokenType[TokenType["Parameter"] = 8] = "Parameter";
|
12
|
+
TokenType[TokenType["OpenBracket"] = 9] = "OpenBracket";
|
13
|
+
TokenType[TokenType["CloseBracket"] = 10] = "CloseBracket";
|
14
|
+
TokenType[TokenType["Function"] = 11] = "Function";
|
15
|
+
TokenType[TokenType["StringSpecifier"] = 12] = "StringSpecifier";
|
16
|
+
TokenType[TokenType["Type"] = 13] = "Type";
|
17
|
+
})(TokenType || (TokenType = {}));
|
18
|
+
//# sourceMappingURL=Lexeme.js.map
|