@reqlan/language 1.6.2 → 1.7.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 (55) hide show
  1. package/README.md +6 -0
  2. package/out/generated/ast.d.ts +3 -3
  3. package/out/generated/ast.js +1 -1
  4. package/out/generated/ast.js.map +1 -1
  5. package/out/generated/grammar.js +2 -3318
  6. package/out/generated/grammar.js.map +1 -1
  7. package/out/generated/module.d.ts +2 -2
  8. package/out/generated/module.js +2 -2
  9. package/out/generated/module.js.map +1 -1
  10. package/out/index.d.ts +3 -0
  11. package/out/index.js +3 -0
  12. package/out/index.js.map +1 -1
  13. package/out/reqlan-async-parser.d.ts +37 -0
  14. package/out/reqlan-async-parser.js +117 -0
  15. package/out/reqlan-async-parser.js.map +1 -0
  16. package/out/reqlan-completion-provider.js +1 -1
  17. package/out/reqlan-completion-provider.js.map +1 -1
  18. package/out/reqlan-document-factory.d.ts +16 -0
  19. package/out/reqlan-document-factory.js +50 -0
  20. package/out/reqlan-document-factory.js.map +1 -0
  21. package/out/reqlan-linker.js +2 -2
  22. package/out/reqlan-linker.js.map +1 -1
  23. package/out/reqlan-module.d.ts +2 -1
  24. package/out/reqlan-module.js +12 -2
  25. package/out/reqlan-module.js.map +1 -1
  26. package/out/reqlan-parse-budget.d.ts +50 -0
  27. package/out/reqlan-parse-budget.js +89 -0
  28. package/out/reqlan-parse-budget.js.map +1 -0
  29. package/out/reqlan-parse-worker.d.ts +1 -0
  30. package/out/reqlan-parse-worker.js +34 -0
  31. package/out/reqlan-parse-worker.js.map +1 -0
  32. package/out/reqlan-token-builder.js +102 -25
  33. package/out/reqlan-token-builder.js.map +1 -1
  34. package/out/reqlan-validator.d.ts +9 -1
  35. package/out/reqlan-validator.js +16 -2
  36. package/out/reqlan-validator.js.map +1 -1
  37. package/out/reqlan-workspace-manager.d.ts +11 -0
  38. package/out/reqlan-workspace-manager.js +24 -0
  39. package/out/reqlan-workspace-manager.js.map +1 -0
  40. package/package.json +1 -1
  41. package/src/generated/ast.ts +3 -3
  42. package/src/generated/grammar.ts +2 -3318
  43. package/src/generated/module.ts +2 -2
  44. package/src/index.ts +3 -0
  45. package/src/reqlan-async-parser.ts +178 -0
  46. package/src/reqlan-completion-provider.ts +1 -1
  47. package/src/reqlan-document-factory.ts +75 -0
  48. package/src/reqlan-linker.ts +4 -2
  49. package/src/reqlan-module.ts +15 -3
  50. package/src/reqlan-parse-budget.ts +155 -0
  51. package/src/reqlan-parse-worker.ts +35 -0
  52. package/src/reqlan-token-builder.ts +122 -25
  53. package/src/reqlan-validator.ts +22 -1
  54. package/src/reqlan-workspace-manager.ts +38 -0
  55. package/src/reqlan.langium +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/generated/grammar.ts"],"names":[],"mappings":"AAAA;;;gFAGgF;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,IAAI,mBAAwC,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmkG5G,CAAC,CAAC,CAAC;AAEL,IAAI,0BAA+C,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,EAAE,CAAC,0BAA0B,IAAI,CAAC,0BAA0B,GAAG,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiLjI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/generated/grammar.ts"],"names":[],"mappings":"AAAA;;;gFAGgF;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,IAAI,mBAAwC,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,w4hCAAw4hC,CAAC,CAAC,CAAC;AAEz/hC,IAAI,0BAA+C,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,EAAE,CAAC,0BAA0B,IAAI,CAAC,0BAA0B,GAAG,mBAAmB,CAAC,mrEAAmrE,CAAC,CAAC,CAAC"}
@@ -7,13 +7,13 @@ export declare const ReqlanLanguageMetaData: {
7
7
  readonly languageId: "reqlan";
8
8
  readonly fileExtensions: readonly [".rq"];
9
9
  readonly caseInsensitive: false;
10
- readonly mode: "development";
10
+ readonly mode: "production";
11
11
  };
12
12
  export declare const ReqlanCommentLanguageMetaData: {
13
13
  readonly languageId: "reqlan-comment";
14
14
  readonly fileExtensions: readonly [];
15
15
  readonly caseInsensitive: false;
16
- readonly mode: "development";
16
+ readonly mode: "production";
17
17
  };
18
18
  export declare const ReqlanGeneratedSharedModule: Module<LangiumSharedCoreServices, LangiumGeneratedSharedCoreServices>;
19
19
  export declare const ReqlanGeneratedModule: Module<LangiumCoreServices, LangiumGeneratedCoreServices>;
@@ -8,13 +8,13 @@ export const ReqlanLanguageMetaData = {
8
8
  languageId: 'reqlan',
9
9
  fileExtensions: ['.rq'],
10
10
  caseInsensitive: false,
11
- mode: 'development'
11
+ mode: 'production'
12
12
  };
13
13
  export const ReqlanCommentLanguageMetaData = {
14
14
  languageId: 'reqlan-comment',
15
15
  fileExtensions: [],
16
16
  caseInsensitive: false,
17
- mode: 'development'
17
+ mode: 'production'
18
18
  };
19
19
  export const ReqlanGeneratedSharedModule = {
20
20
  AstReflection: () => new ReqlanAstReflection()
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/generated/module.ts"],"names":[],"mappings":"AAAA;;;gFAGgF;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,aAAa;CACc,CAAC;AAEtC,MAAM,CAAC,MAAM,6BAA6B,GAAG;IACzC,UAAU,EAAE,gBAAgB;IAC5B,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,aAAa;CACc,CAAC;AAEtC,MAAM,CAAC,MAAM,2BAA2B,GAA0E;IAC9G,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA8D;IAC5F,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;IAC9B,gBAAgB,EAAE,GAAG,EAAE,CAAC,sBAAsB;IAC9C,MAAM,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAA8D;IACnG,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE;IACrC,gBAAgB,EAAE,GAAG,EAAE,CAAC,6BAA6B;IACrD,MAAM,EAAE,EAAE;CACb,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/generated/module.ts"],"names":[],"mappings":"AAAA;;;gFAGgF;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,YAAY;CACe,CAAC;AAEtC,MAAM,CAAC,MAAM,6BAA6B,GAAG;IACzC,UAAU,EAAE,gBAAgB;IAC5B,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,YAAY;CACe,CAAC;AAEtC,MAAM,CAAC,MAAM,2BAA2B,GAA0E;IAC9G,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA8D;IAC5F,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;IAC9B,gBAAgB,EAAE,GAAG,EAAE,CAAC,sBAAsB;IAC9C,MAAM,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAA8D;IACnG,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE;IACrC,gBAAgB,EAAE,GAAG,EAAE,CAAC,6BAA6B;IACrD,MAAM,EAAE,EAAE;CACb,CAAC"}
package/out/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  export * from './reqlan-module.js';
2
+ export * from './reqlan-parse-budget.js';
3
+ export { ReqlanAsyncParser, resolveParseWorkerPath } from './reqlan-async-parser.js';
4
+ export { ReqlanLangiumDocumentFactory } from './reqlan-document-factory.js';
2
5
  export * from './reqlan-validator.js';
3
6
  export * from './reqlan-comment-resolver.js';
4
7
  export * from './reqlan-ignore-error.js';
package/out/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  export * from './reqlan-module.js';
2
+ export * from './reqlan-parse-budget.js';
3
+ export { ReqlanAsyncParser, resolveParseWorkerPath } from './reqlan-async-parser.js';
4
+ export { ReqlanLangiumDocumentFactory } from './reqlan-document-factory.js';
2
5
  export * from './reqlan-validator.js';
3
6
  export * from './reqlan-comment-resolver.js';
4
7
  export * from './reqlan-ignore-error.js';
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EAGpB,MAAM,2BAA2B,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrF,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EAGpB,MAAM,2BAA2B,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrF,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { type AstNode, type LangiumCoreServices, type LangiumParser } from 'langium';
2
+ import { WorkerThreadAsyncParser } from 'langium/node';
3
+ import { CancellationToken } from 'vscode-languageserver';
4
+ import { type ParseWorkerMode, type ReqlanParseResult } from './reqlan-parse-budget.js';
5
+ export interface ReqlanAsyncParserOptions {
6
+ timeoutMs?: number;
7
+ /** Override worker script path (tests). */
8
+ workerPath?: string;
9
+ /**
10
+ * `auto` (default): sync below size threshold; worker when escalated.
11
+ * `true` / `false`: always / never use workers.
12
+ */
13
+ useWorker?: ParseWorkerMode;
14
+ /** Characters at or above which `auto` mode uses a worker. */
15
+ workerThresholdChars?: number;
16
+ /** Worker pool size (Langium default is 8; keep small for startup). */
17
+ threadCount?: number;
18
+ }
19
+ export interface ReqlanParseCallOptions {
20
+ /** Force the killable worker path for this call (sticky URI escalate, tests). */
21
+ forceWorker?: boolean;
22
+ }
23
+ export declare function resolveParseWorkerPath(explicit?: string): string;
24
+ export declare class ReqlanAsyncParser extends WorkerThreadAsyncParser {
25
+ private readonly timeoutMs;
26
+ private readonly useWorker;
27
+ private readonly workerThresholdChars;
28
+ private readonly syncParser;
29
+ constructor(services: LangiumCoreServices, options?: ReqlanAsyncParserOptions);
30
+ parse<T extends AstNode>(text: string, cancelToken: CancellationToken, callOptions?: ReqlanParseCallOptions): Promise<ReqlanParseResult<T>>;
31
+ /** Sync entry used by document factory / tests. */
32
+ parseSync<T extends AstNode>(text: string): ReqlanParseResult<T>;
33
+ private parseInWorker;
34
+ private parseOnThread;
35
+ /** Exposed for tests that need the underlying sync parser. */
36
+ get langiumParser(): LangiumParser;
37
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Per-file parse budget via Langium's worker-thread async parser.
3
+ * Happy path is in-process sync parse; workers enforce a killable wall-clock budget
4
+ * for large files, sticky timeout escalation, or explicit force.
5
+ * rq:["../../../reqlan rq/language/parser_lexer.rq".parse_budget_timeout]
6
+ */
7
+ import { existsSync } from 'node:fs';
8
+ import { dirname, join } from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import { WorkerThreadAsyncParser } from 'langium/node';
11
+ import { CancellationTokenSource } from 'vscode-languageserver';
12
+ import { createIncompleteParseResult, DEFAULT_PARSE_BUDGET_MS, DEFAULT_WORKER_PARSE_THRESHOLD_CHARS, shouldEscalateToParseWorker } from './reqlan-parse-budget.js';
13
+ function moduleDirectory() {
14
+ if (typeof __dirname === 'string') {
15
+ return __dirname;
16
+ }
17
+ // Native ESM only — hide from esbuild's empty-import-meta rewrite.
18
+ const metaUrl = (0, eval)('import.meta.url');
19
+ return dirname(fileURLToPath(metaUrl));
20
+ }
21
+ export function resolveParseWorkerPath(explicit) {
22
+ if (explicit) {
23
+ return explicit;
24
+ }
25
+ const dir = moduleDirectory();
26
+ const jsPath = join(dir, 'reqlan-parse-worker.js');
27
+ if (existsSync(jsPath)) {
28
+ return jsPath;
29
+ }
30
+ const cjsPath = join(dir, 'reqlan-parse-worker.cjs');
31
+ if (existsSync(cjsPath)) {
32
+ return cjsPath;
33
+ }
34
+ return jsPath;
35
+ }
36
+ export class ReqlanAsyncParser extends WorkerThreadAsyncParser {
37
+ constructor(services, options = {}) {
38
+ super(services, () => resolveParseWorkerPath(options.workerPath));
39
+ this.syncParser = services.parser.LangiumParser;
40
+ this.timeoutMs = options.timeoutMs ?? DEFAULT_PARSE_BUDGET_MS;
41
+ this.useWorker = options.useWorker ?? 'auto';
42
+ this.workerThresholdChars = options.workerThresholdChars ?? DEFAULT_WORKER_PARSE_THRESHOLD_CHARS;
43
+ this.threadCount = options.threadCount ?? 2;
44
+ // Fail fast after cancel so the budget is close to timeoutMs wall-clock.
45
+ this.terminationDelay = 50;
46
+ }
47
+ async parse(text, cancelToken, callOptions = {}) {
48
+ if (cancelToken.isCancellationRequested) {
49
+ return createIncompleteParseResult(this.syncParser, {
50
+ reason: 'failure',
51
+ cause: 'cancelled'
52
+ });
53
+ }
54
+ const escalate = shouldEscalateToParseWorker(text, {
55
+ useWorker: this.useWorker,
56
+ forceWorker: callOptions.forceWorker,
57
+ thresholdChars: this.workerThresholdChars
58
+ });
59
+ if (!escalate) {
60
+ return this.parseOnThread(text);
61
+ }
62
+ return this.parseInWorker(text, cancelToken);
63
+ }
64
+ /** Sync entry used by document factory / tests. */
65
+ parseSync(text) {
66
+ return this.parseOnThread(text);
67
+ }
68
+ async parseInWorker(text, cancelToken) {
69
+ const timeoutSource = new CancellationTokenSource();
70
+ const timer = setTimeout(() => timeoutSource.cancel(), this.timeoutMs);
71
+ const callerCancel = cancelToken.onCancellationRequested(() => {
72
+ timeoutSource.cancel();
73
+ });
74
+ try {
75
+ return await super.parse(text, timeoutSource.token);
76
+ }
77
+ catch (error) {
78
+ if (timeoutSource.token.isCancellationRequested) {
79
+ if (cancelToken.isCancellationRequested) {
80
+ return createIncompleteParseResult(this.syncParser, {
81
+ reason: 'failure',
82
+ cause: 'cancelled'
83
+ });
84
+ }
85
+ return createIncompleteParseResult(this.syncParser, {
86
+ reason: 'timeout',
87
+ timeoutMs: this.timeoutMs
88
+ });
89
+ }
90
+ return createIncompleteParseResult(this.syncParser, {
91
+ reason: 'failure',
92
+ cause: error instanceof Error ? error.message : String(error)
93
+ });
94
+ }
95
+ finally {
96
+ clearTimeout(timer);
97
+ callerCancel.dispose();
98
+ timeoutSource.dispose();
99
+ }
100
+ }
101
+ parseOnThread(text) {
102
+ try {
103
+ return this.syncParser.parse(text);
104
+ }
105
+ catch (error) {
106
+ return createIncompleteParseResult(this.syncParser, {
107
+ reason: 'failure',
108
+ cause: error instanceof Error ? error.message : String(error)
109
+ });
110
+ }
111
+ }
112
+ /** Exposed for tests that need the underlying sync parser. */
113
+ get langiumParser() {
114
+ return this.syncParser;
115
+ }
116
+ }
117
+ //# sourceMappingURL=reqlan-async-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-async-parser.js","sourceRoot":"","sources":["../src/reqlan-async-parser.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,7 @@ export class ReqlanCompletionProvider extends DefaultCompletionProvider {
61
61
  return [];
62
62
  }
63
63
  return model.elements
64
- .filter(element => {
64
+ .filter((element) => {
65
65
  if (refInfo.property === 'ideaset') {
66
66
  return isIdeaSet(element);
67
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-completion-provider.js","sourceRoot":"","sources":["../src/reqlan-completion-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-completion-provider.js","sourceRoot":"","sources":["../src/reqlan-completion-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Document factory that never lets a sync lex/parse throw escape into workspace init.
3
+ * Async path uses [ReqlanAsyncParser]: sync fast path by default, killable worker when escalated.
4
+ * rq:["../../../reqlan rq/language/parser_lexer.rq".parse_budget_timeout]
5
+ */
6
+ import { DefaultLangiumDocumentFactory, type AstNode, type LangiumDocument, type LangiumSharedCoreServices, type ParseResult, type ParserOptions, URI } from 'langium';
7
+ import type { CancellationToken } from 'vscode-languageserver';
8
+ export declare class ReqlanLangiumDocumentFactory extends DefaultLangiumDocumentFactory {
9
+ /** URIs that previously hit the parse budget — keep using a killable worker. */
10
+ private readonly workerEscalateUris;
11
+ constructor(services: LangiumSharedCoreServices);
12
+ protected parse<T extends AstNode>(uri: URI, text: string, options?: ParserOptions): ParseResult<T>;
13
+ protected parseAsync<T extends AstNode>(uri: URI, text: string, cancellationToken?: CancellationToken): Promise<ParseResult<T>>;
14
+ /** Test helper: expose incomplete marker after async parse. */
15
+ static isIncompleteDocument(document: LangiumDocument): boolean;
16
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Document factory that never lets a sync lex/parse throw escape into workspace init.
3
+ * Async path uses [ReqlanAsyncParser]: sync fast path by default, killable worker when escalated.
4
+ * rq:["../../../reqlan rq/language/parser_lexer.rq".parse_budget_timeout]
5
+ */
6
+ import { DefaultLangiumDocumentFactory } from 'langium';
7
+ import { CancellationToken as CancelToken } from 'vscode-languageserver';
8
+ import { ReqlanAsyncParser } from './reqlan-async-parser.js';
9
+ import { createIncompleteParseResult } from './reqlan-parse-budget.js';
10
+ export class ReqlanLangiumDocumentFactory extends DefaultLangiumDocumentFactory {
11
+ constructor(services) {
12
+ super(services);
13
+ /** URIs that previously hit the parse budget — keep using a killable worker. */
14
+ this.workerEscalateUris = new Set();
15
+ }
16
+ parse(uri, text, options) {
17
+ const services = this.serviceRegistry.getServices(uri);
18
+ try {
19
+ return services.parser.LangiumParser.parse(text, options);
20
+ }
21
+ catch (error) {
22
+ return createIncompleteParseResult(services.parser.LangiumParser, {
23
+ reason: 'failure',
24
+ cause: error instanceof Error ? error.message : String(error)
25
+ });
26
+ }
27
+ }
28
+ async parseAsync(uri, text, cancellationToken = CancelToken.None) {
29
+ const services = this.serviceRegistry.getServices(uri);
30
+ const asyncParser = services.parser.AsyncParser;
31
+ const uriKey = uri.toString();
32
+ const forceWorker = this.workerEscalateUris.has(uriKey);
33
+ const result = asyncParser instanceof ReqlanAsyncParser
34
+ ? await asyncParser.parse(text, cancellationToken, { forceWorker })
35
+ : await asyncParser.parse(text, cancellationToken);
36
+ const reqlanResult = result;
37
+ if (reqlanResult.reqlanIncomplete?.reason === 'timeout') {
38
+ this.workerEscalateUris.add(uriKey);
39
+ }
40
+ else if (!reqlanResult.reqlanIncomplete) {
41
+ this.workerEscalateUris.delete(uriKey);
42
+ }
43
+ return result;
44
+ }
45
+ /** Test helper: expose incomplete marker after async parse. */
46
+ static isIncompleteDocument(document) {
47
+ return Boolean(document.parseResult.reqlanIncomplete);
48
+ }
49
+ }
50
+ //# sourceMappingURL=reqlan-document-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-document-factory.js","sourceRoot":"","sources":["../src/reqlan-document-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACH,6BAA6B,EAOhC,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACH,2BAA2B,EAE9B,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,4BAA6B,SAAQ,6BAA6B;IAI3E,YAAY,QAAmC;QAC3C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJpB,gFAAgF;QAC/D,uBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAIxD,CAAC;IAEkB,KAAK,CACpB,GAAQ,EACR,IAAY,EACZ,OAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC;YACD,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,2BAA2B,CAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;gBACjE,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEkB,KAAK,CAAC,UAAU,CAC/B,GAAQ,EACR,IAAY,EACZ,oBAAuC,WAAW,CAAC,IAAI;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,WAAW,YAAY,iBAAiB;YACnD,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAI,IAAI,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC;YACtE,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAI,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,MAA8B,CAAC;QACpD,IAAI,YAAY,CAAC,gBAAgB,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,oBAAoB,CAAC,QAAyB;QACjD,OAAO,OAAO,CAAE,QAAQ,CAAC,WAAiC,CAAC,gBAAgB,CAAC,CAAC;IACjF,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import { AstUtils, DefaultLinker } from 'langium';
2
- import { isLocalReference, isModel, isQualifiedReference } from './generated/ast.js';
2
+ import { isIdea, isIdeaSet, isLocalReference, isModel, isOneLinerIdea, isQualifiedReference } from './generated/ast.js';
3
3
  import { isOpaqueFileReferencePath } from './reqlan-file-references.js';
4
4
  import { findNamespaceImportByAlias } from './reqlan-import-bindings.js';
5
5
  import { isResolvableImportPath } from './reqlan-imports.js';
@@ -53,7 +53,7 @@ export class ReqlanLinker extends DefaultLinker {
53
53
  return false;
54
54
  }
55
55
  const name = refInfo.reference.$refText;
56
- if (model.elements.some(element => element.name === name)) {
56
+ if (model.elements.some(element => (isIdea(element) || isOneLinerIdea(element) || isIdeaSet(element)) && element.name === name)) {
57
57
  return false;
58
58
  }
59
59
  return findNamespaceImportByAlias(model.imports, name) !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-linker.js","sourceRoot":"","sources":["../src/reqlan-linker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-linker.js","sourceRoot":"","sources":["../src/reqlan-linker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Module } from 'langium';
1
+ import { type Module, type PartialLangiumSharedCoreServices } from 'langium';
2
2
  import { type DefaultSharedModuleContext, type LangiumServices, type LangiumSharedServices, type PartialLangiumServices } from 'langium/lsp';
3
3
  import { ReqlanValidator } from './reqlan-validator.js';
4
4
  /**
@@ -19,6 +19,7 @@ export type ReqlanServices = LangiumServices & ReqlanAddedServices;
19
19
  * declared custom services. The Langium defaults can be partially specified to override only
20
20
  * selected services, while the custom services must be fully specified.
21
21
  */
22
+ export declare const ReqlanSharedModule: Module<LangiumSharedServices, PartialLangiumSharedCoreServices>;
22
23
  export declare const ReqlanModule: Module<ReqlanServices, PartialLangiumServices & ReqlanAddedServices>;
23
24
  /**
24
25
  * Create the full set of services required by Langium.
@@ -18,11 +18,20 @@ import { ReqlanSemanticTokenProvider } from './reqlan-semantic-token-provider.js
18
18
  import { ReqlanTokenBuilder } from './reqlan-token-builder.js';
19
19
  import { registerRqIgnoreErrorFiltering } from './reqlan-ignore-error.js';
20
20
  import { ReqlanValidator, registerValidationChecks } from './reqlan-validator.js';
21
+ import { ReqlanWorkspaceManager } from './reqlan-workspace-manager.js';
22
+ import { ReqlanAsyncParser } from './reqlan-async-parser.js';
23
+ import { ReqlanLangiumDocumentFactory } from './reqlan-document-factory.js';
21
24
  /**
22
25
  * Dependency injection module that overrides Langium default services and contributes the
23
26
  * declared custom services. The Langium defaults can be partially specified to override only
24
27
  * selected services, while the custom services must be fully specified.
25
28
  */
29
+ export const ReqlanSharedModule = {
30
+ workspace: {
31
+ WorkspaceManager: services => new ReqlanWorkspaceManager(services),
32
+ LangiumDocumentFactory: services => new ReqlanLangiumDocumentFactory(services)
33
+ }
34
+ };
26
35
  export const ReqlanModule = {
27
36
  validation: {
28
37
  ReqlanValidator: services => new ReqlanValidator(services)
@@ -35,7 +44,8 @@ export const ReqlanModule = {
35
44
  },
36
45
  parser: {
37
46
  GrammarConfig: createReqlanGrammarConfig,
38
- TokenBuilder: () => new ReqlanTokenBuilder()
47
+ TokenBuilder: () => new ReqlanTokenBuilder(),
48
+ AsyncParser: (services) => new ReqlanAsyncParser(services)
39
49
  },
40
50
  lsp: {
41
51
  DefinitionProvider: services => new ReqlanDefinitionProvider(services),
@@ -65,7 +75,7 @@ export const ReqlanModule = {
65
75
  * @returns An object wrapping the shared services and the language-specific services
66
76
  */
67
77
  export function createReqlanServices(context) {
68
- const shared = inject(createDefaultSharedModule(context), ReqlanGeneratedSharedModule);
78
+ const shared = inject(createDefaultSharedModule(context), ReqlanGeneratedSharedModule, ReqlanSharedModule);
69
79
  const Reqlan = inject(createDefaultModule({ shared }), ReqlanGeneratedModule, ReqlanModule);
70
80
  shared.ServiceRegistry.register(Reqlan);
71
81
  registerValidationChecks(Reqlan);
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-module.js","sourceRoot":"","sources":["../src/reqlan-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-module.js","sourceRoot":"","sources":["../src/reqlan-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Per-file parse/lex budget: if a document cannot finish within the budget,
3
+ * return an empty model plus warning + error diagnostics instead of hanging the host.
4
+ * rq:["../../../reqlan rq/language/parser_lexer.rq".parse_budget_timeout]
5
+ */
6
+ import type { AstNode, LangiumParser, ParseResult } from 'langium';
7
+ /** Default wall-clock budget for lex+parse of one file (worker-enforced). */
8
+ export declare const DEFAULT_PARSE_BUDGET_MS = 8000;
9
+ /**
10
+ * Prefer in-process sync parse below this size. Worker threads (killable budget)
11
+ * are reserved for larger inputs, hang-sentinel tests, sticky timeout escalation,
12
+ * or an explicit force.
13
+ */
14
+ export declare const DEFAULT_WORKER_PARSE_THRESHOLD_CHARS = 64000;
15
+ /** Test-only sentinel: a worker that sees this marker hangs until terminated. */
16
+ export declare const PARSE_HANG_SENTINEL = "__REQLAN_PARSE_HANG__";
17
+ export declare const PARSE_TIMEOUT_WARNING = "Parse budget exceeded for this file; semantic features may be incomplete until the file is simplified or the budget is raised.";
18
+ export declare function parseTimeoutErrorMessage(timeoutMs: number): string;
19
+ export declare function parseFailureErrorMessage(cause: string): string;
20
+ export type ParseWorkerMode = boolean | 'auto';
21
+ export interface ParseWorkerEscalationOptions {
22
+ /** `auto` (default): sync below threshold; worker for large / sentinel / force. */
23
+ useWorker?: ParseWorkerMode;
24
+ forceWorker?: boolean;
25
+ thresholdChars?: number;
26
+ }
27
+ /** Whether this parse should run in a killable worker thread. */
28
+ export declare function shouldEscalateToParseWorker(text: string, options?: ParseWorkerEscalationOptions): boolean;
29
+ /** Lexer error plus optional severity used for budget-timeout warnings. */
30
+ export type ReqlanLexerError = ParseResult['lexerErrors'][number] & {
31
+ severity?: 'warning' | 'error' | 'info' | 'hint';
32
+ };
33
+ export interface ReqlanParseResult<T extends AstNode = AstNode> extends Omit<ParseResult<T>, 'lexerErrors'> {
34
+ lexerErrors: ReqlanLexerError[];
35
+ /** Set when lex/parse did not complete successfully within budget (timeout or crash). */
36
+ reqlanIncomplete?: {
37
+ reason: 'timeout' | 'failure';
38
+ timeoutMs?: number;
39
+ cause?: string;
40
+ };
41
+ }
42
+ export declare function isReqlanIncompleteParseResult(result: ParseResult): result is ReqlanParseResult;
43
+ /**
44
+ * Empty model with a lexer warning and a parser error so the editor shows both severities.
45
+ */
46
+ export declare function createIncompleteParseResult<T extends AstNode>(parser: LangiumParser, options: {
47
+ reason: 'timeout' | 'failure';
48
+ timeoutMs?: number;
49
+ cause?: string;
50
+ }): ReqlanParseResult<T>;