@open-rap/compiler 0.0.0-stage → 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.
Files changed (227) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -2
  3. package/dist/agent/server.d.ts +35 -0
  4. package/dist/agent/server.js +408 -0
  5. package/dist/agent/server.js.map +1 -0
  6. package/dist/authoring/abapgit.d.ts +38 -0
  7. package/dist/authoring/abapgit.js +242 -0
  8. package/dist/authoring/abapgit.js.map +1 -0
  9. package/dist/authoring/catalog.d.ts +48 -0
  10. package/dist/authoring/catalog.js +117 -0
  11. package/dist/authoring/catalog.js.map +1 -0
  12. package/dist/authoring/floorplan.d.ts +28 -0
  13. package/dist/authoring/floorplan.js +31 -0
  14. package/dist/authoring/floorplan.js.map +1 -0
  15. package/dist/authoring/generate.d.ts +57 -0
  16. package/dist/authoring/generate.js +630 -0
  17. package/dist/authoring/generate.js.map +1 -0
  18. package/dist/authoring/mcp.d.ts +15 -0
  19. package/dist/authoring/mcp.js +52 -0
  20. package/dist/authoring/mcp.js.map +1 -0
  21. package/dist/authoring/new.d.ts +35 -0
  22. package/dist/authoring/new.js +389 -0
  23. package/dist/authoring/new.js.map +1 -0
  24. package/dist/bdef/ast.d.ts +249 -0
  25. package/dist/bdef/ast.js +3 -0
  26. package/dist/bdef/ast.js.map +1 -0
  27. package/dist/bdef/lexer.d.ts +105 -0
  28. package/dist/bdef/lexer.js +148 -0
  29. package/dist/bdef/lexer.js.map +1 -0
  30. package/dist/bdef/parser.d.ts +22 -0
  31. package/dist/bdef/parser.js +1012 -0
  32. package/dist/bdef/parser.js.map +1 -0
  33. package/dist/build.d.ts +26 -0
  34. package/dist/build.js +62 -0
  35. package/dist/build.js.map +1 -0
  36. package/dist/cds/adapter.d.ts +91 -0
  37. package/dist/cds/adapter.js +381 -0
  38. package/dist/cds/adapter.js.map +1 -0
  39. package/dist/cds/expression-ast.d.ts +65 -0
  40. package/dist/cds/expression-ast.js +330 -0
  41. package/dist/cds/expression-ast.js.map +1 -0
  42. package/dist/cli.d.ts +9 -0
  43. package/dist/cli.js +485 -0
  44. package/dist/cli.js.map +1 -0
  45. package/dist/dcl/parser.d.ts +59 -0
  46. package/dist/dcl/parser.js +338 -0
  47. package/dist/dcl/parser.js.map +1 -0
  48. package/dist/ddic/catalog.d.ts +17 -0
  49. package/dist/ddic/catalog.js +211 -0
  50. package/dist/ddic/catalog.js.map +1 -0
  51. package/dist/ddic/cds-types.d.ts +47 -0
  52. package/dist/ddic/cds-types.js +131 -0
  53. package/dist/ddic/cds-types.js.map +1 -0
  54. package/dist/ddic/table-source.d.ts +70 -0
  55. package/dist/ddic/table-source.js +500 -0
  56. package/dist/ddic/table-source.js.map +1 -0
  57. package/dist/ddic/xml.d.ts +65 -0
  58. package/dist/ddic/xml.js +201 -0
  59. package/dist/ddic/xml.js.map +1 -0
  60. package/dist/dev.d.ts +128 -0
  61. package/dist/dev.js +434 -0
  62. package/dist/dev.js.map +1 -0
  63. package/dist/diagnostics.d.ts +33 -0
  64. package/dist/diagnostics.js +53 -0
  65. package/dist/diagnostics.js.map +1 -0
  66. package/dist/gen/abap/derived-types.d.ts +26 -0
  67. package/dist/gen/abap/derived-types.js +323 -0
  68. package/dist/gen/abap/derived-types.js.map +1 -0
  69. package/dist/gen/abap/eml.d.ts +118 -0
  70. package/dist/gen/abap/eml.js +362 -0
  71. package/dist/gen/abap/eml.js.map +1 -0
  72. package/dist/gen/abap/enums.d.ts +13 -0
  73. package/dist/gen/abap/enums.js +74 -0
  74. package/dist/gen/abap/enums.js.map +1 -0
  75. package/dist/gen/abap/framework-http.d.ts +14 -0
  76. package/dist/gen/abap/framework-http.js +1049 -0
  77. package/dist/gen/abap/framework-http.js.map +1 -0
  78. package/dist/gen/abap/framework-query.d.ts +14 -0
  79. package/dist/gen/abap/framework-query.js +225 -0
  80. package/dist/gen/abap/framework-query.js.map +1 -0
  81. package/dist/gen/abap/framework-utils.d.ts +29 -0
  82. package/dist/gen/abap/framework-utils.js +3707 -0
  83. package/dist/gen/abap/framework-utils.js.map +1 -0
  84. package/dist/gen/abap/framework.d.ts +12 -0
  85. package/dist/gen/abap/framework.js +480 -0
  86. package/dist/gen/abap/framework.js.map +1 -0
  87. package/dist/gen/abap/generate.d.ts +40 -0
  88. package/dist/gen/abap/generate.js +238 -0
  89. package/dist/gen/abap/generate.js.map +1 -0
  90. package/dist/gen/abap/rewrite.d.ts +82 -0
  91. package/dist/gen/abap/rewrite.js +957 -0
  92. package/dist/gen/abap/rewrite.js.map +1 -0
  93. package/dist/gen/abap/shadow.d.ts +25 -0
  94. package/dist/gen/abap/shadow.js +175 -0
  95. package/dist/gen/abap/shadow.js.map +1 -0
  96. package/dist/gen/abap/tokens.d.ts +33 -0
  97. package/dist/gen/abap/tokens.js +87 -0
  98. package/dist/gen/abap/tokens.js.map +1 -0
  99. package/dist/gen/app/index.d.ts +25 -0
  100. package/dist/gen/app/index.js +322 -0
  101. package/dist/gen/app/index.js.map +1 -0
  102. package/dist/gen/csdl.d.ts +11 -0
  103. package/dist/gen/csdl.js +562 -0
  104. package/dist/gen/csdl.js.map +1 -0
  105. package/dist/gen/deploy.d.ts +12 -0
  106. package/dist/gen/deploy.js +53 -0
  107. package/dist/gen/deploy.js.map +1 -0
  108. package/dist/gen/docs/index.d.ts +35 -0
  109. package/dist/gen/docs/index.js +267 -0
  110. package/dist/gen/docs/index.js.map +1 -0
  111. package/dist/gen/docs/markdown.d.ts +23 -0
  112. package/dist/gen/docs/markdown.js +187 -0
  113. package/dist/gen/docs/markdown.js.map +1 -0
  114. package/dist/gen/docs/site.d.ts +17 -0
  115. package/dist/gen/docs/site.js +106 -0
  116. package/dist/gen/docs/site.js.map +1 -0
  117. package/dist/gen/keycloak.d.ts +21 -0
  118. package/dist/gen/keycloak.js +90 -0
  119. package/dist/gen/keycloak.js.map +1 -0
  120. package/dist/gen/launchpad/index.d.ts +48 -0
  121. package/dist/gen/launchpad/index.js +302 -0
  122. package/dist/gen/launchpad/index.js.map +1 -0
  123. package/dist/gen/launchpad/ui.d.ts +14 -0
  124. package/dist/gen/launchpad/ui.js +350 -0
  125. package/dist/gen/launchpad/ui.js.map +1 -0
  126. package/dist/gen/mcp.d.ts +23 -0
  127. package/dist/gen/mcp.js +244 -0
  128. package/dist/gen/mcp.js.map +1 -0
  129. package/dist/gen/sql-expressions.d.ts +12 -0
  130. package/dist/gen/sql-expressions.js +136 -0
  131. package/dist/gen/sql-expressions.js.map +1 -0
  132. package/dist/gen/sql.d.ts +38 -0
  133. package/dist/gen/sql.js +612 -0
  134. package/dist/gen/sql.js.map +1 -0
  135. package/dist/gen/ui/index.d.ts +7 -0
  136. package/dist/gen/ui/index.js +27 -0
  137. package/dist/gen/ui/index.js.map +1 -0
  138. package/dist/gen/ui/layout.d.ts +230 -0
  139. package/dist/gen/ui/layout.js +511 -0
  140. package/dist/gen/ui/layout.js.map +1 -0
  141. package/dist/gen/ui/static.d.ts +55 -0
  142. package/dist/gen/ui/static.js +2901 -0
  143. package/dist/gen/ui/static.js.map +1 -0
  144. package/dist/gen/ui/views.d.ts +10 -0
  145. package/dist/gen/ui/views.js +511 -0
  146. package/dist/gen/ui/views.js.map +1 -0
  147. package/dist/gen/vendor.d.ts +23 -0
  148. package/dist/gen/vendor.js +68 -0
  149. package/dist/gen/vendor.js.map +1 -0
  150. package/dist/gen/xml.d.ts +9 -0
  151. package/dist/gen/xml.js +42 -0
  152. package/dist/gen/xml.js.map +1 -0
  153. package/dist/index.d.ts +20 -0
  154. package/dist/index.js +20 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/input/project.d.ts +50 -0
  157. package/dist/input/project.js +128 -0
  158. package/dist/input/project.js.map +1 -0
  159. package/dist/ir/access-controls.d.ts +11 -0
  160. package/dist/ir/access-controls.js +148 -0
  161. package/dist/ir/access-controls.js.map +1 -0
  162. package/dist/ir/authorizations.d.ts +25 -0
  163. package/dist/ir/authorizations.js +178 -0
  164. package/dist/ir/authorizations.js.map +1 -0
  165. package/dist/ir/behaviors.d.ts +16 -0
  166. package/dist/ir/behaviors.js +548 -0
  167. package/dist/ir/behaviors.js.map +1 -0
  168. package/dist/ir/builder.d.ts +20 -0
  169. package/dist/ir/builder.js +505 -0
  170. package/dist/ir/builder.js.map +1 -0
  171. package/dist/ir/config.d.ts +25 -0
  172. package/dist/ir/config.js +130 -0
  173. package/dist/ir/config.js.map +1 -0
  174. package/dist/ir/dictionary.d.ts +54 -0
  175. package/dist/ir/dictionary.js +328 -0
  176. package/dist/ir/dictionary.js.map +1 -0
  177. package/dist/ir/entities.d.ts +58 -0
  178. package/dist/ir/entities.js +676 -0
  179. package/dist/ir/entities.js.map +1 -0
  180. package/dist/ir/expressions.d.ts +33 -0
  181. package/dist/ir/expressions.js +327 -0
  182. package/dist/ir/expressions.js.map +1 -0
  183. package/dist/ir/handlers.d.ts +63 -0
  184. package/dist/ir/handlers.js +398 -0
  185. package/dist/ir/handlers.js.map +1 -0
  186. package/dist/ir/number-ranges.d.ts +24 -0
  187. package/dist/ir/number-ranges.js +74 -0
  188. package/dist/ir/number-ranges.js.map +1 -0
  189. package/dist/ir/seed.d.ts +23 -0
  190. package/dist/ir/seed.js +78 -0
  191. package/dist/ir/seed.js.map +1 -0
  192. package/dist/ir/service.d.ts +21 -0
  193. package/dist/ir/service.js +96 -0
  194. package/dist/ir/service.js.map +1 -0
  195. package/dist/launchpad/config.d.ts +47 -0
  196. package/dist/launchpad/config.js +321 -0
  197. package/dist/launchpad/config.js.map +1 -0
  198. package/dist/launchpad/workspace.d.ts +48 -0
  199. package/dist/launchpad/workspace.js +166 -0
  200. package/dist/launchpad/workspace.js.map +1 -0
  201. package/dist/srvd/parser.d.ts +36 -0
  202. package/dist/srvd/parser.js +193 -0
  203. package/dist/srvd/parser.js.map +1 -0
  204. package/dist/standard/data.d.ts +18 -0
  205. package/dist/standard/data.js +534 -0
  206. package/dist/standard/data.js.map +1 -0
  207. package/dist/standard/index.d.ts +36 -0
  208. package/dist/standard/index.js +507 -0
  209. package/dist/standard/index.js.map +1 -0
  210. package/dist/version.d.ts +2 -0
  211. package/dist/version.js +4 -0
  212. package/dist/version.js.map +1 -0
  213. package/docs/AGENTS.md +79 -0
  214. package/docs/ANNOTATIONS.md +76 -0
  215. package/docs/DECISIONS.md +1526 -0
  216. package/docs/DEPLOYMENT.md +113 -0
  217. package/docs/DIAGNOSTICS.md +116 -0
  218. package/docs/FEATURES.md +287 -0
  219. package/docs/GUIDE.md +560 -0
  220. package/docs/KNOWN_GAPS.md +216 -0
  221. package/docs/MCP.md +84 -0
  222. package/docs/PLAN.md +690 -0
  223. package/docs/README.md +148 -0
  224. package/docs/REMOTE_APIS.md +121 -0
  225. package/docs/ROADMAP.md +35 -0
  226. package/docs/UTILITIES.md +95 -0
  227. package/package.json +49 -3
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Expressions of the select list of a view entity (D67): the flat node lists of abaplint
3
+ * (CDSArithmetics, CDSCondition) parsed into an untyped tree. The IR resolves its paths and types.
4
+ */
5
+ import * as abaplint from "@abaplint/core";
6
+ const E = abaplint.ExpressionsCDS;
7
+ export const isCondition = (x) => x.kind === "compare" || x.kind === "isNull" || x.kind === "and" || x.kind === "or" || x.kind === "not";
8
+ /** An unsupported construct: its message names it. */
9
+ export class CdsExpressionError extends Error {
10
+ }
11
+ const isExpression = (n) => n instanceof abaplint.Nodes.ExpressionNode;
12
+ const isToken = (n) => n instanceof abaplint.Nodes.TokenNode;
13
+ const text = (n) => n.getFirstToken().getStr();
14
+ const compact = (n) => n
15
+ .concatTokens()
16
+ .replace(/\s+/g, " ")
17
+ .trim();
18
+ /** Parses the value of an element of the select list. Throws a CdsExpressionError. */
19
+ export function parseCdsExpression(node) {
20
+ return operand(node);
21
+ }
22
+ function operand(node) {
23
+ const statement = node.get();
24
+ if (statement instanceof E.CDSPrefixedName) {
25
+ const path = node.findAllExpressions(E.CDSName).map((n) => n.concatTokens());
26
+ const single = path.length === 1 ? (path[0] ?? "") : "";
27
+ // integers inside function inputs are parsed as names
28
+ if (/^\d+$/.test(single)) {
29
+ return { kind: "literal", value: Number(single), text: single };
30
+ }
31
+ if (/^null$/i.test(single)) {
32
+ return { kind: "literal", value: null, text: "null" };
33
+ }
34
+ if (node.findFirstExpression(E.CDSParameters) !== undefined || compact(node).includes("[")) {
35
+ throw new CdsExpressionError(`path with parameters or filter (${compact(node)})`);
36
+ }
37
+ return { kind: "path", path };
38
+ }
39
+ if (statement instanceof E.CDSInteger) {
40
+ const raw = node
41
+ .getAllTokens()
42
+ .map((t) => t.getStr())
43
+ .join("");
44
+ return { kind: "literal", value: Number(raw), text: raw };
45
+ }
46
+ if (statement instanceof E.CDSString) {
47
+ return stringLiteral(node);
48
+ }
49
+ if (statement instanceof E.CDSArithmetics || statement instanceof E.CDSArithParen || statement instanceof E.CDSFunctionInput) {
50
+ return new ItemParser(flatten(node), compact(node)).arithmeticOnly();
51
+ }
52
+ if (statement instanceof E.CDSCase) {
53
+ return caseExpression(node);
54
+ }
55
+ if (statement instanceof E.CDSCast) {
56
+ return cast(node);
57
+ }
58
+ if (statement instanceof E.CDSFunction) {
59
+ return functionCall(node);
60
+ }
61
+ if (statement instanceof E.CDSAggregate) {
62
+ throw new CdsExpressionError(`aggregate functions (${compact(node)})`);
63
+ }
64
+ throw new CdsExpressionError(`${statement.constructor.name.replace(/^CDS/, "")} (${compact(node)})`);
65
+ }
66
+ function stringLiteral(node) {
67
+ const tokens = node.getAllTokens().map((t) => t.getStr());
68
+ const quoted = tokens[tokens.length - 1] ?? "''";
69
+ const value = quoted.startsWith("'") ? quoted.slice(1, -1).replace(/''/g, "'") : quoted;
70
+ const prefix = tokens.slice(0, -1).join("");
71
+ const raw = tokens.join("");
72
+ return prefix === "" ? { kind: "literal", value, text: raw } : { kind: "literal", value, typed: prefix.toLowerCase(), text: raw };
73
+ }
74
+ /** Arithmetics and conditions are flat in abaplint: their nested arithmetics/conditions too. */
75
+ function flatten(node) {
76
+ const items = [];
77
+ for (const child of node.getChildren()) {
78
+ if (isToken(child)) {
79
+ items.push({ token: text(child).toLowerCase() });
80
+ }
81
+ else if (isExpression(child)) {
82
+ const statement = child.get();
83
+ if (statement instanceof E.CDSArithmetics || statement instanceof E.CDSArithParen || statement instanceof E.CDSCondition) {
84
+ items.push(...flatten(child));
85
+ }
86
+ else {
87
+ items.push({ node: child });
88
+ }
89
+ }
90
+ }
91
+ return items;
92
+ }
93
+ function caseExpression(node) {
94
+ const children = node.getChildren();
95
+ const result = { kind: "case", branches: [] };
96
+ let pendingWhen;
97
+ let state = "start";
98
+ for (const child of children) {
99
+ if (isToken(child)) {
100
+ const keyword = text(child).toLowerCase();
101
+ if (keyword === "when" || keyword === "then" || keyword === "else") {
102
+ state = keyword;
103
+ }
104
+ continue;
105
+ }
106
+ if (!isExpression(child)) {
107
+ continue;
108
+ }
109
+ if (state === "start") {
110
+ result.operand = operand(child);
111
+ }
112
+ else if (state === "when") {
113
+ pendingWhen = child.get() instanceof E.CDSCondition ? new ItemParser(flatten(child), compact(child)).conditionOnly() : operand(child);
114
+ }
115
+ else if (state === "then") {
116
+ if (pendingWhen === undefined) {
117
+ throw new CdsExpressionError(`CASE without WHEN (${compact(node)})`);
118
+ }
119
+ result.branches.push({ when: pendingWhen, then: operand(child) });
120
+ pendingWhen = undefined;
121
+ }
122
+ else {
123
+ result.else = operand(child);
124
+ }
125
+ }
126
+ if (result.branches.length === 0) {
127
+ throw new CdsExpressionError(`CASE without WHEN (${compact(node)})`);
128
+ }
129
+ if (result.operand === undefined && result.branches.some((b) => !isCondition(b.when))) {
130
+ throw new CdsExpressionError(`CASE WHEN without condition (${compact(node)})`);
131
+ }
132
+ return result;
133
+ }
134
+ function cast(node) {
135
+ const typeNode = node.findDirectExpression(E.CDSType);
136
+ const value = node.getChildren().find((c) => isExpression(c) && !(c.get() instanceof E.CDSType));
137
+ if (typeNode === undefined || value === undefined) {
138
+ throw new CdsExpressionError(`CAST (${compact(node)})`);
139
+ }
140
+ return { kind: "cast", operand: operand(value), type: typeNode.concatTokens().replace(/\s+/g, "") };
141
+ }
142
+ function functionCall(node) {
143
+ const name = text(node).toLowerCase();
144
+ const args = node.findDirectExpressions(E.CDSFunctionInput).map((input) => {
145
+ const items = flatten(input);
146
+ return new ItemParser(items, compact(input)).arithmeticOnly();
147
+ });
148
+ return { kind: "function", name, args };
149
+ }
150
+ /** Precedence parser over a flat list of items. */
151
+ class ItemParser {
152
+ items;
153
+ source;
154
+ index = 0;
155
+ constructor(items, source) {
156
+ this.items = items;
157
+ this.source = source;
158
+ }
159
+ arithmeticOnly() {
160
+ const result = this.arithmetic();
161
+ this.end();
162
+ return result;
163
+ }
164
+ conditionOnly() {
165
+ const result = this.or();
166
+ this.end();
167
+ return result;
168
+ }
169
+ end() {
170
+ if (this.index < this.items.length) {
171
+ throw this.error();
172
+ }
173
+ }
174
+ error() {
175
+ return new CdsExpressionError(`expression (${this.source})`);
176
+ }
177
+ peek(offset = 0) {
178
+ const item = this.items[this.index + offset];
179
+ return item !== undefined && "token" in item ? item.token : undefined;
180
+ }
181
+ accept(token) {
182
+ if (this.peek() === token) {
183
+ this.index++;
184
+ return true;
185
+ }
186
+ return false;
187
+ }
188
+ expect(token) {
189
+ if (!this.accept(token)) {
190
+ throw this.error();
191
+ }
192
+ }
193
+ arithmetic() {
194
+ let left = this.term();
195
+ for (;;) {
196
+ const operator = this.peek();
197
+ if (operator !== "+" && operator !== "-") {
198
+ return left;
199
+ }
200
+ this.index++;
201
+ left = { kind: "arithmetic", operator, left, right: this.term() };
202
+ }
203
+ }
204
+ term() {
205
+ let left = this.unary();
206
+ for (;;) {
207
+ const operator = this.peek();
208
+ if (operator !== "*" && operator !== "/") {
209
+ return left;
210
+ }
211
+ this.index++;
212
+ left = { kind: "arithmetic", operator, left, right: this.unary() };
213
+ }
214
+ }
215
+ unary() {
216
+ if (this.accept("-")) {
217
+ const operand = this.unary();
218
+ return operand.kind === "literal" && typeof operand.value === "number"
219
+ ? { ...operand, value: -operand.value, text: `-${operand.text}` }
220
+ : { kind: "negate", operand };
221
+ }
222
+ if (this.accept("+")) {
223
+ return this.unary();
224
+ }
225
+ if (this.accept("(")) {
226
+ const inner = this.arithmetic();
227
+ this.expect(")");
228
+ return inner;
229
+ }
230
+ const item = this.items[this.index];
231
+ if (item === undefined || !("node" in item)) {
232
+ throw this.error();
233
+ }
234
+ this.index++;
235
+ return operand(item.node);
236
+ }
237
+ or() {
238
+ let left = this.and();
239
+ while (this.accept("or")) {
240
+ left = { kind: "or", left, right: this.and() };
241
+ }
242
+ return left;
243
+ }
244
+ and() {
245
+ let left = this.not();
246
+ while (this.accept("and")) {
247
+ left = { kind: "and", left, right: this.not() };
248
+ }
249
+ return left;
250
+ }
251
+ not() {
252
+ if (this.accept("not")) {
253
+ return { kind: "not", operand: this.not() };
254
+ }
255
+ if (this.peek() === "(" && this.groupsCondition()) {
256
+ this.index++;
257
+ const inner = this.or();
258
+ this.expect(")");
259
+ return inner;
260
+ }
261
+ return this.predicate();
262
+ }
263
+ /** `(` opens a condition when its content holds a comparison or a logical operator. */
264
+ groupsCondition() {
265
+ let depth = 0;
266
+ for (let i = this.index; i < this.items.length; i++) {
267
+ const item = this.items[i];
268
+ const token = item !== undefined && "token" in item ? item.token : undefined;
269
+ if (token === "(") {
270
+ depth++;
271
+ }
272
+ else if (token === ")") {
273
+ depth--;
274
+ if (depth === 0) {
275
+ return false;
276
+ }
277
+ }
278
+ else if (token !== undefined && ["=", "<", ">", "<>", "<=", ">=", "!=", "is", "like", "and", "or", "not", "between"].includes(token)) {
279
+ return true;
280
+ }
281
+ }
282
+ return false;
283
+ }
284
+ predicate() {
285
+ const left = this.arithmetic();
286
+ if (this.accept("is")) {
287
+ const negated = this.accept("not");
288
+ this.expect("null");
289
+ return { kind: "isNull", operand: left, negated };
290
+ }
291
+ if (this.peek() === "not" && this.peek(1) === "like") {
292
+ this.index += 2;
293
+ return { kind: "not", operand: { kind: "compare", operator: "like", left, right: this.arithmetic() } };
294
+ }
295
+ if (this.accept("like")) {
296
+ return { kind: "compare", operator: "like", left, right: this.arithmetic() };
297
+ }
298
+ if (this.peek() === "between") {
299
+ throw new CdsExpressionError(`BETWEEN (${this.source})`);
300
+ }
301
+ let operator;
302
+ if (this.accept("=")) {
303
+ operator = "=";
304
+ }
305
+ else if (this.accept("<>") || this.accept("!=")) {
306
+ operator = "<>";
307
+ }
308
+ else if (this.accept("<=")) {
309
+ operator = "<=";
310
+ }
311
+ else if (this.accept(">=")) {
312
+ operator = ">=";
313
+ }
314
+ else if (this.accept("<")) {
315
+ operator = this.accept(">") ? "<>" : this.accept("=") ? "<=" : "<";
316
+ }
317
+ else if (this.accept(">")) {
318
+ operator = this.accept("=") ? ">=" : ">";
319
+ }
320
+ else if (this.accept("!")) {
321
+ this.expect("=");
322
+ operator = "<>";
323
+ }
324
+ else {
325
+ throw this.error();
326
+ }
327
+ return { kind: "compare", operator, left, right: this.arithmetic() };
328
+ }
329
+ }
330
+ //# sourceMappingURL=expression-ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-ast.js","sourceRoot":"","sources":["../../src/cds/expression-ast.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /** rapt: command line of the RAP → Node.js compiler. */
3
+ export declare function main(argv: string[]): Promise<number>;
4
+ /**
5
+ * Whether `script` (process.argv[1]) is the module at `moduleUrl`: compares the real paths, so
6
+ * that relative paths, symbolic links (npm bin) and Windows paths (backslashes, drive letter case,
7
+ * 8.3 short names) are recognized.
8
+ */
9
+ export declare function isEntryPoint(moduleUrl: string, script: string | undefined, realpath?: (p: string) => string): boolean;