@smile-digital-health/crl 0.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 (107) hide show
  1. package/README.md +502 -0
  2. package/dist/ast/builder.d.ts +45 -0
  3. package/dist/ast/builder.js +389 -0
  4. package/dist/ast/builder.js.map +1 -0
  5. package/dist/ast/types.d.ts +223 -0
  6. package/dist/ast/types.js +73 -0
  7. package/dist/ast/types.js.map +1 -0
  8. package/dist/ast/utils.d.ts +14 -0
  9. package/dist/ast/utils.js +65 -0
  10. package/dist/ast/utils.js.map +1 -0
  11. package/dist/cli/run-ast.d.ts +1 -0
  12. package/dist/cli/run-ast.js +24 -0
  13. package/dist/cli/run-ast.js.map +1 -0
  14. package/dist/cli/run-lexer.d.ts +1 -0
  15. package/dist/cli/run-lexer.js +41 -0
  16. package/dist/cli/run-lexer.js.map +1 -0
  17. package/dist/cli/run-parser.d.ts +1 -0
  18. package/dist/cli/run-parser.js +33 -0
  19. package/dist/cli/run-parser.js.map +1 -0
  20. package/dist/cli/run-transformer-fsh-to-crl.d.ts +1 -0
  21. package/dist/cli/run-transformer-fsh-to-crl.js +20 -0
  22. package/dist/cli/run-transformer-fsh-to-crl.js.map +1 -0
  23. package/dist/cli/run-validator.d.ts +1 -0
  24. package/dist/cli/run-validator.js +37 -0
  25. package/dist/cli/run-validator.js.map +1 -0
  26. package/dist/grammar/activityTypes.d.ts +2 -0
  27. package/dist/grammar/activityTypes.js +9 -0
  28. package/dist/grammar/activityTypes.js.map +1 -0
  29. package/dist/grammar/conceptTypes.d.ts +2 -0
  30. package/dist/grammar/conceptTypes.js +9 -0
  31. package/dist/grammar/conceptTypes.js.map +1 -0
  32. package/dist/grammar/conceptValueTypes.d.ts +2 -0
  33. package/dist/grammar/conceptValueTypes.js +9 -0
  34. package/dist/grammar/conceptValueTypes.js.map +1 -0
  35. package/dist/grammar/generated/antlr/CRLLexer.d.ts +84 -0
  36. package/dist/grammar/generated/antlr/CRLLexer.js +505 -0
  37. package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -0
  38. package/dist/grammar/generated/antlr/CRLParser.d.ts +653 -0
  39. package/dist/grammar/generated/antlr/CRLParser.js +3466 -0
  40. package/dist/grammar/generated/antlr/CRLParser.js.map +1 -0
  41. package/dist/grammar/generated/antlr/CRLParserListener.d.ts +162 -0
  42. package/dist/grammar/generated/antlr/CRLParserListener.js +3 -0
  43. package/dist/grammar/generated/antlr/CRLParserListener.js.map +1 -0
  44. package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +109 -0
  45. package/dist/grammar/generated/antlr/CRLParserVisitor.js +3 -0
  46. package/dist/grammar/generated/antlr/CRLParserVisitor.js.map +1 -0
  47. package/dist/grammar/generated/types/activityTypes.json +16 -0
  48. package/dist/grammar/generated/types/conceptTypes.json +26 -0
  49. package/dist/grammar/generated/types/conceptValueTypes.json +14 -0
  50. package/dist/index.d.ts +18 -0
  51. package/dist/index.js +147 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/lexer/CRLLexerErrorListener.d.ts +16 -0
  54. package/dist/lexer/CRLLexerErrorListener.js +168 -0
  55. package/dist/lexer/CRLLexerErrorListener.js.map +1 -0
  56. package/dist/lexer/createLexer.d.ts +6 -0
  57. package/dist/lexer/createLexer.js +14 -0
  58. package/dist/lexer/createLexer.js.map +1 -0
  59. package/dist/lexer/index.d.ts +1 -0
  60. package/dist/lexer/index.js +6 -0
  61. package/dist/lexer/index.js.map +1 -0
  62. package/dist/parser/CustomParserErrorListener.d.ts +8 -0
  63. package/dist/parser/CustomParserErrorListener.js +37 -0
  64. package/dist/parser/CustomParserErrorListener.js.map +1 -0
  65. package/dist/parser/createParser.d.ts +7 -0
  66. package/dist/parser/createParser.js +17 -0
  67. package/dist/parser/createParser.js.map +1 -0
  68. package/dist/transformer/fsh-to-crl/mapping/activityDefinition.d.ts +41 -0
  69. package/dist/transformer/fsh-to-crl/mapping/activityDefinition.js +229 -0
  70. package/dist/transformer/fsh-to-crl/mapping/activityDefinition.js.map +1 -0
  71. package/dist/transformer/fsh-to-crl/mapping/concept.d.ts +1 -0
  72. package/dist/transformer/fsh-to-crl/mapping/concept.js +14 -0
  73. package/dist/transformer/fsh-to-crl/mapping/concept.js.map +1 -0
  74. package/dist/transformer/fsh-to-crl/mapping/planDefinition.d.ts +14 -0
  75. package/dist/transformer/fsh-to-crl/mapping/planDefinition.js +235 -0
  76. package/dist/transformer/fsh-to-crl/mapping/planDefinition.js.map +1 -0
  77. package/dist/transformer/fsh-to-crl/mapping/terminology.d.ts +1 -0
  78. package/dist/transformer/fsh-to-crl/mapping/terminology.js +10 -0
  79. package/dist/transformer/fsh-to-crl/mapping/terminology.js.map +1 -0
  80. package/dist/transformer/fsh-to-crl/transformer.d.ts +1 -0
  81. package/dist/transformer/fsh-to-crl/transformer.js +172 -0
  82. package/dist/transformer/fsh-to-crl/transformer.js.map +1 -0
  83. package/dist/transformer/fsh-to-crl/utils/activityDeduplication.d.ts +11 -0
  84. package/dist/transformer/fsh-to-crl/utils/activityDeduplication.js +23 -0
  85. package/dist/transformer/fsh-to-crl/utils/activityDeduplication.js.map +1 -0
  86. package/dist/transformer/fsh-to-crl/utils/fshPathFunctions.d.ts +12 -0
  87. package/dist/transformer/fsh-to-crl/utils/fshPathFunctions.js +73 -0
  88. package/dist/transformer/fsh-to-crl/utils/fshPathFunctions.js.map +1 -0
  89. package/dist/types/errors.d.ts +8 -0
  90. package/dist/types/errors.js +3 -0
  91. package/dist/types/errors.js.map +1 -0
  92. package/dist/validator/actionUniquenessValidator.d.ts +20 -0
  93. package/dist/validator/actionUniquenessValidator.js +280 -0
  94. package/dist/validator/actionUniquenessValidator.js.map +1 -0
  95. package/dist/validator/cycleDetector.d.ts +13 -0
  96. package/dist/validator/cycleDetector.js +79 -0
  97. package/dist/validator/cycleDetector.js.map +1 -0
  98. package/dist/validator/nameUniquenessValidator.d.ts +5 -0
  99. package/dist/validator/nameUniquenessValidator.js +87 -0
  100. package/dist/validator/nameUniquenessValidator.js.map +1 -0
  101. package/dist/validator/unusedDeclarationsValidator.d.ts +21 -0
  102. package/dist/validator/unusedDeclarationsValidator.js +190 -0
  103. package/dist/validator/unusedDeclarationsValidator.js.map +1 -0
  104. package/dist/validator/validator.d.ts +27 -0
  105. package/dist/validator/validator.js +30 -0
  106. package/dist/validator/validator.js.map +1 -0
  107. package/package.json +92 -0
package/dist/index.js ADDED
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tokenizeCRL = tokenizeCRL;
4
+ exports.parseCRL = parseCRL;
5
+ exports.buildCRL = buildCRL;
6
+ exports.validateCRL = validateCRL;
7
+ const builder_1 = require("./ast/builder");
8
+ const CRLLexer_1 = require("./grammar/generated/antlr/CRLLexer");
9
+ const createLexer_1 = require("./lexer/createLexer");
10
+ const createParser_1 = require("./parser/createParser");
11
+ const validator_1 = require("./validator/validator");
12
+ function tokenizeCRL(input) {
13
+ try {
14
+ const { lexer, errorListener } = (0, createLexer_1.createLexer)(input);
15
+ const tokens = [];
16
+ let token = lexer.nextToken();
17
+ while (token.type !== CRLLexer_1.CRLLexer.EOF) {
18
+ if (token.channel === 0) {
19
+ const typeName = lexer.vocabulary.getSymbolicName(token.type) ?? `Unknown (${token.type})`;
20
+ tokens.push({
21
+ line: token.line,
22
+ column: token.charPositionInLine,
23
+ type: typeName,
24
+ text: token.text ?? "",
25
+ });
26
+ }
27
+ token = lexer.nextToken();
28
+ }
29
+ const errors = errorListener.getErrors();
30
+ if (errors.length > 0) {
31
+ return { success: false, errors };
32
+ }
33
+ return { success: true, result: tokens };
34
+ }
35
+ catch (error) {
36
+ const errorObj = {
37
+ type: "Exception",
38
+ message: error instanceof Error ? error.message : String(error),
39
+ };
40
+ return { success: false, errors: [errorObj] };
41
+ }
42
+ }
43
+ function parseCRL(input) {
44
+ let lexerErrorListener, parserErrorListener;
45
+ try {
46
+ const parserSetup = (0, createParser_1.createParser)(input);
47
+ lexerErrorListener = parserSetup.lexerErrorListener;
48
+ parserErrorListener = parserSetup.parserErrorListener;
49
+ const tree = parserSetup.parser.crl();
50
+ const errors = [...lexerErrorListener.getErrors(), ...parserErrorListener.getErrors()];
51
+ if (errors.length > 0) {
52
+ return { success: false, errors };
53
+ }
54
+ return { success: true, result: tree };
55
+ }
56
+ catch (error) {
57
+ const errors = [
58
+ ...(lexerErrorListener?.getErrors() ?? []),
59
+ ...(parserErrorListener?.getErrors() ?? []),
60
+ {
61
+ type: "Exception",
62
+ message: error instanceof Error ? error.message : String(error),
63
+ },
64
+ ];
65
+ return {
66
+ success: false,
67
+ errors,
68
+ };
69
+ }
70
+ }
71
+ function buildCRL(input) {
72
+ let lexerErrorListener, parserErrorListener, builder;
73
+ try {
74
+ const parserSetup = (0, createParser_1.createParser)(input);
75
+ lexerErrorListener = parserSetup.lexerErrorListener;
76
+ parserErrorListener = parserSetup.parserErrorListener;
77
+ const tree = parserSetup.parser.crl();
78
+ builder = new builder_1.CRLAstBuilder();
79
+ const ast = builder.visit(tree);
80
+ const errors = [
81
+ ...lexerErrorListener.getErrors(),
82
+ ...parserErrorListener.getErrors(),
83
+ ...builder.getErrors(),
84
+ ];
85
+ if (errors.length > 0) {
86
+ return { success: false, errors };
87
+ }
88
+ return { success: true, result: ast };
89
+ }
90
+ catch (error) {
91
+ const errors = [
92
+ ...(lexerErrorListener?.getErrors() ?? []),
93
+ ...(parserErrorListener?.getErrors() ?? []),
94
+ ...(builder?.getErrors() ?? []),
95
+ {
96
+ type: "Exception",
97
+ message: error instanceof Error ? error.message : String(error),
98
+ },
99
+ ];
100
+ return {
101
+ success: false,
102
+ errors,
103
+ };
104
+ }
105
+ }
106
+ function validateCRL(input) {
107
+ try {
108
+ const { parser, lexerErrorListener, parserErrorListener } = (0, createParser_1.createParser)(input);
109
+ const tree = parser.crl();
110
+ const builder = new builder_1.CRLAstBuilder();
111
+ const ast = builder.visit(tree);
112
+ const errors = [...lexerErrorListener.getErrors(), ...parserErrorListener.getErrors()];
113
+ if (errors.length > 0) {
114
+ return { success: false, errors };
115
+ }
116
+ const validator = new validator_1.Validator();
117
+ const validationResult = validator.validate(ast);
118
+ if (!validationResult.isValid) {
119
+ return {
120
+ success: false,
121
+ errors: [
122
+ ...validationResult.errors.map((e) => ({
123
+ type: "Exception",
124
+ message: e.message,
125
+ })),
126
+ ...validationResult.warnings.map((w) => ({
127
+ type: "Exception",
128
+ message: w.message,
129
+ })),
130
+ ],
131
+ };
132
+ }
133
+ return { success: true, result: ast };
134
+ }
135
+ catch (error) {
136
+ return {
137
+ success: false,
138
+ errors: [
139
+ {
140
+ type: "Exception",
141
+ message: error instanceof Error ? error.message : String(error),
142
+ },
143
+ ],
144
+ };
145
+ }
146
+ }
147
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ANTLRErrorListener, RecognitionException, Recognizer } from "antlr4ts";
2
+ import { ATNSimulator } from "antlr4ts/atn/ATNSimulator";
3
+ import { CRLError } from "../types/errors";
4
+ export declare class CRLLexerErrorListener implements ANTLRErrorListener<number> {
5
+ ERROR_TOKEN_TYPE: number;
6
+ private readonly errors;
7
+ private readonly validActivityTypes;
8
+ private readonly validConceptTypes;
9
+ private readonly validConceptValueTypes;
10
+ private parseErrorText;
11
+ private parseQuotedString;
12
+ private getSpecificMessage;
13
+ syntaxError<T extends number>(recognizer: Recognizer<T, ATNSimulator>, offendingSymbol: T | undefined, line: number, charPositionInLine: number, msg: string, _e: RecognitionException | undefined): void;
14
+ getErrors(): CRLError[];
15
+ reportCustomError(line: number, column: number, message: string, details?: unknown): void;
16
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CRLLexerErrorListener = void 0;
7
+ const antlr4ts_1 = require("antlr4ts");
8
+ const CRLLexer_1 = require("../grammar/generated/antlr/CRLLexer");
9
+ const activityTypes_json_1 = __importDefault(require("../grammar/generated/types/activityTypes.json"));
10
+ const conceptTypes_json_1 = __importDefault(require("../grammar/generated/types/conceptTypes.json"));
11
+ const conceptValueTypes_json_1 = __importDefault(require("../grammar/generated/types/conceptValueTypes.json"));
12
+ class CRLLexerErrorListener {
13
+ constructor() {
14
+ this.ERROR_TOKEN_TYPE = 27;
15
+ this.errors = [];
16
+ this.validActivityTypes = activityTypes_json_1.default;
17
+ this.validConceptTypes = conceptTypes_json_1.default;
18
+ this.validConceptValueTypes = conceptValueTypes_json_1.default;
19
+ }
20
+ parseErrorText(input) {
21
+ let errorText = "";
22
+ let currentIndex = input.index;
23
+ while (currentIndex < input.size) {
24
+ const char = input.LA(1);
25
+ if (char === -1 || char === 10 || char === 13)
26
+ break;
27
+ if (char === 32 || char === 9) {
28
+ if (errorText.length > 0)
29
+ break;
30
+ }
31
+ else {
32
+ errorText += String.fromCharCode(char);
33
+ }
34
+ currentIndex++;
35
+ input.consume();
36
+ }
37
+ return errorText;
38
+ }
39
+ parseQuotedString(input, errorText) {
40
+ let currentIndex = input.index;
41
+ let result = errorText;
42
+ const isQuotedString = errorText.startsWith('"') || errorText.startsWith("'");
43
+ if (isQuotedString) {
44
+ while (currentIndex < input.size && !result.endsWith('"') && !result.endsWith("'")) {
45
+ const char = input.LA(1);
46
+ if (char === -1 || char === 10 || char === 13)
47
+ break;
48
+ result += String.fromCharCode(char);
49
+ currentIndex++;
50
+ input.consume();
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+ getSpecificMessage(errorText, _msg) {
56
+ if (!this.validActivityTypes) {
57
+ const errorMsg = [
58
+ "activityTypes is undefined. This usually means the JSON file was not found or not imported correctly.",
59
+ "Check: src/grammar/activityTypes.json exists and is valid.",
60
+ "If using a build output, ensure activityTypes.json is copied to the output directory (e.g., dist/grammar/activityTypes.json).",
61
+ "If using ts-node or a bundler, ensure resolveJsonModule is enabled and your runtime supports JSON imports.",
62
+ "If the file is missing, re-run the code generation step (e.g., npm run generate) or check your build scripts.",
63
+ ].join("\n");
64
+ console.error(errorMsg);
65
+ throw new Error(errorMsg);
66
+ }
67
+ if (!this.validConceptTypes) {
68
+ const errorMsg = [
69
+ "validConceptTypes is undefined. This usually means the conceptTypes array was not initialized.",
70
+ "Check: src/grammar/conceptTypes.json exists and is valid.",
71
+ "If using a build output, ensure conceptTypes.json is copied to the output directory (e.g., dist/grammar/conceptTypes.json).",
72
+ "If using ts-node or a bundler, ensure resolveJsonModule is enabled and your runtime supports JSON imports.",
73
+ "If the file is missing, re-run the code generation step (e.g., npm run generate) or check your build scripts.",
74
+ ].join("\n");
75
+ console.error(errorMsg);
76
+ throw new Error(errorMsg);
77
+ }
78
+ if (!this.validConceptValueTypes) {
79
+ const errorMsg = [
80
+ "validConceptValueTypes is undefined. This usually means the conceptValueTypes array was not initialized.",
81
+ "Check: src/grammar/conceptValueTypes.json exists and is valid.",
82
+ "If using a build output, ensure conceptValueTypes.json is copied to the output directory (e.g., dist/grammar/conceptValueTypes.json).",
83
+ "If using ts-node or a bundler, ensure resolveJsonModule is enabled and your runtime supports JSON imports.",
84
+ "If the file is missing, re-run the code generation step (e.g., npm run generate) or check your build scripts.",
85
+ ].join("\n");
86
+ console.error(errorMsg);
87
+ throw new Error(errorMsg);
88
+ }
89
+ if (this.validActivityTypes.some((type) => errorText.startsWith(type))) {
90
+ return `Invalid character in activity type: ${errorText}`;
91
+ }
92
+ if (this.validConceptTypes.some((type) => errorText.startsWith(type))) {
93
+ return `Invalid character in concept type: ${errorText}`;
94
+ }
95
+ if (this.validConceptValueTypes.some((type) => errorText.startsWith(type))) {
96
+ return `Invalid character in concept value type: ${errorText}`;
97
+ }
98
+ return `Invalid token: ${errorText}`;
99
+ }
100
+ syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, _e) {
101
+ const input = recognizer.inputStream;
102
+ const startIndex = input.index;
103
+ let errorText = this.parseErrorText(input);
104
+ errorText = this.parseQuotedString(input, errorText);
105
+ const specificMessage = this.getSpecificMessage(errorText, msg);
106
+ let offendingDetails = { text: "unknown" };
107
+ if (offendingSymbol && typeof offendingSymbol.text === "string") {
108
+ const token = offendingSymbol;
109
+ offendingDetails = {
110
+ text: token.text,
111
+ type: token.type,
112
+ line: token.line,
113
+ charPositionInLine: token.charPositionInLine,
114
+ startIndex: token.startIndex,
115
+ stopIndex: token.stopIndex,
116
+ tokenIndex: token.tokenIndex,
117
+ };
118
+ }
119
+ else if (offendingSymbol !== undefined) {
120
+ offendingDetails = { text: String(offendingSymbol) };
121
+ }
122
+ const error = {
123
+ type: "LexicalError",
124
+ line,
125
+ column: charPositionInLine,
126
+ message: specificMessage,
127
+ details: {
128
+ message: msg,
129
+ offendingSymbol: offendingDetails,
130
+ },
131
+ };
132
+ console.error(JSON.stringify(error, null, 2));
133
+ this.errors.push(error);
134
+ if (recognizer instanceof CRLLexer_1.CRLLexer) {
135
+ const errorToken = {
136
+ type: this.ERROR_TOKEN_TYPE,
137
+ text: JSON.stringify(error),
138
+ channel: antlr4ts_1.Token.DEFAULT_CHANNEL,
139
+ startIndex,
140
+ stopIndex: input.index - 1,
141
+ line,
142
+ charPositionInLine,
143
+ tokenIndex: -1,
144
+ tokenSource: recognizer,
145
+ inputStream: input,
146
+ };
147
+ recognizer.emit(errorToken);
148
+ return;
149
+ }
150
+ throw new Error(JSON.stringify(error));
151
+ }
152
+ getErrors() {
153
+ return this.errors;
154
+ }
155
+ reportCustomError(line, column, message, details) {
156
+ const error = {
157
+ type: "LexicalError",
158
+ line,
159
+ column,
160
+ message,
161
+ details,
162
+ };
163
+ console.error(JSON.stringify(error, null, 2));
164
+ this.errors.push(error);
165
+ }
166
+ }
167
+ exports.CRLLexerErrorListener = CRLLexerErrorListener;
168
+ //# sourceMappingURL=CRLLexerErrorListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CRLLexerErrorListener.js","sourceRoot":"","sources":["../../src/lexer/CRLLexerErrorListener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CRLLexer } from "../grammar/generated/antlr/CRLLexer";
2
+ import { CRLLexerErrorListener } from "./CRLLexerErrorListener";
3
+ export declare function createLexer(input: string): {
4
+ lexer: CRLLexer;
5
+ errorListener: CRLLexerErrorListener;
6
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLexer = createLexer;
4
+ const antlr4ts_1 = require("antlr4ts");
5
+ const CRLLexer_1 = require("../grammar/generated/antlr/CRLLexer");
6
+ const CRLLexerErrorListener_1 = require("./CRLLexerErrorListener");
7
+ function createLexer(input) {
8
+ const lexerErrorListener = new CRLLexerErrorListener_1.CRLLexerErrorListener();
9
+ const lexer = new CRLLexer_1.CRLLexer(antlr4ts_1.CharStreams.fromString(input));
10
+ lexer.removeErrorListeners();
11
+ lexer.addErrorListener(lexerErrorListener);
12
+ return { lexer, errorListener: lexerErrorListener };
13
+ }
14
+ //# sourceMappingURL=createLexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLexer.js","sourceRoot":"","sources":["../../src/lexer/createLexer.ts"],"names":[],"mappings":";;AAMA,kCASC;AAfD,uCAAuC;AAEvC,kEAA+D;AAE/D,mEAAgE;AAEhE,SAAgB,WAAW,CAAC,KAAa;IAIvC,MAAM,kBAAkB,GAAG,IAAI,6CAAqB,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,sBAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC7B,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1 @@
1
+ export { CRLLexer } from "../grammar/generated/antlr/CRLLexer";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CRLLexer = void 0;
4
+ var CRLLexer_1 = require("../grammar/generated/antlr/CRLLexer");
5
+ Object.defineProperty(exports, "CRLLexer", { enumerable: true, get: function () { return CRLLexer_1.CRLLexer; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":";;;AAMA,gEAA+D;AAAtD,oGAAA,QAAQ,OAAA"}
@@ -0,0 +1,8 @@
1
+ import { ANTLRErrorListener, RecognitionException, Recognizer, Token } from "antlr4ts";
2
+ import { ATNSimulator } from "antlr4ts/atn/ATNSimulator";
3
+ import { CRLError } from "../types/errors";
4
+ export declare class CustomParserErrorListener implements ANTLRErrorListener<Token> {
5
+ private readonly errors;
6
+ syntaxError(_recognizer: Recognizer<Token, ATNSimulator>, offendingSymbol: Token | undefined, line: number, charPositionInLine: number, msg: string, _e: RecognitionException | undefined): void;
7
+ getErrors(): CRLError[];
8
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomParserErrorListener = void 0;
4
+ class CustomParserErrorListener {
5
+ constructor() {
6
+ this.errors = [];
7
+ }
8
+ syntaxError(_recognizer, offendingSymbol, line, charPositionInLine, msg, _e) {
9
+ const offendingDetails = offendingSymbol
10
+ ? {
11
+ text: offendingSymbol.text,
12
+ type: offendingSymbol.type,
13
+ line: offendingSymbol.line,
14
+ charPositionInLine: offendingSymbol.charPositionInLine,
15
+ startIndex: offendingSymbol.startIndex,
16
+ stopIndex: offendingSymbol.stopIndex,
17
+ tokenIndex: offendingSymbol.tokenIndex,
18
+ }
19
+ : { text: "unknown" };
20
+ const error = {
21
+ type: "ParserError",
22
+ line,
23
+ column: charPositionInLine,
24
+ message: `Syntax error: ${msg}`,
25
+ details: {
26
+ offendingSymbol: offendingDetails,
27
+ },
28
+ };
29
+ console.error(JSON.stringify(error, null, 2));
30
+ this.errors.push(error);
31
+ }
32
+ getErrors() {
33
+ return this.errors;
34
+ }
35
+ }
36
+ exports.CustomParserErrorListener = CustomParserErrorListener;
37
+ //# sourceMappingURL=CustomParserErrorListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomParserErrorListener.js","sourceRoot":"","sources":["../../src/parser/CustomParserErrorListener.ts"],"names":[],"mappings":";;;AAKA,MAAa,yBAAyB;IAAtC;QACmB,WAAM,GAAe,EAAE,CAAC;IAsC3C,CAAC;IApCC,WAAW,CACT,WAA4C,EAC5C,eAAkC,EAClC,IAAY,EACZ,kBAA0B,EAC1B,GAAW,EACX,EAAoC;QAEpC,MAAM,gBAAgB,GAAG,eAAe;YACtC,CAAC,CAAC;gBACE,IAAI,EAAE,eAAe,CAAC,IAAI;gBAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;gBAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;gBAC1B,kBAAkB,EAAE,eAAe,CAAC,kBAAkB;gBACtD,UAAU,EAAE,eAAe,CAAC,UAAU;gBACtC,SAAS,EAAE,eAAe,CAAC,SAAS;gBACpC,UAAU,EAAE,eAAe,CAAC,UAAU;aACvC;YACH,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAExB,MAAM,KAAK,GAAa;YACtB,IAAI,EAAE,aAAa;YACnB,IAAI;YACJ,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,iBAAiB,GAAG,EAAE;YAC/B,OAAO,EAAE;gBACP,eAAe,EAAE,gBAAgB;aAClC;SACF,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAvCD,8DAuCC"}
@@ -0,0 +1,7 @@
1
+ import { CRLParser } from "../grammar/generated/antlr/CRLParser";
2
+ import { CustomParserErrorListener } from "./CustomParserErrorListener";
3
+ export declare function createParser(input: string): {
4
+ parser: CRLParser;
5
+ parserErrorListener: CustomParserErrorListener;
6
+ lexerErrorListener: import("../lexer/CRLLexerErrorListener").CRLLexerErrorListener;
7
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createParser = createParser;
4
+ const antlr4ts_1 = require("antlr4ts");
5
+ const CRLParser_1 = require("../grammar/generated/antlr/CRLParser");
6
+ const createLexer_1 = require("../lexer/createLexer");
7
+ const CustomParserErrorListener_1 = require("./CustomParserErrorListener");
8
+ function createParser(input) {
9
+ const { lexer, errorListener: lexerErrorListener } = (0, createLexer_1.createLexer)(input);
10
+ const tokenStream = new antlr4ts_1.CommonTokenStream(lexer);
11
+ const parserErrorListener = new CustomParserErrorListener_1.CustomParserErrorListener();
12
+ const parser = new CRLParser_1.CRLParser(tokenStream);
13
+ parser.removeErrorListeners();
14
+ parser.addErrorListener(parserErrorListener);
15
+ return { parser, parserErrorListener, lexerErrorListener };
16
+ }
17
+ //# sourceMappingURL=createParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createParser.js","sourceRoot":"","sources":["../../src/parser/createParser.ts"],"names":[],"mappings":";;AAOA,oCAcC;AArBD,uCAA6C;AAE7C,oEAAiE;AACjE,sDAAmD;AAEnD,2EAAwE;AAExE,SAAgB,YAAY,CAAC,KAAa;IAKxC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,IAAI,4BAAiB,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,mBAAmB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,qBAAS,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC9B,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAE7C,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,41 @@
1
+ export declare const ACTIVITY_DEFINITION_URLS: string[];
2
+ interface ActivityDefRule {
3
+ path: string;
4
+ value?: unknown;
5
+ }
6
+ export interface ActivityDef {
7
+ rules?: ActivityDefRule[];
8
+ instanceOf?: string;
9
+ title?: string;
10
+ description?: string;
11
+ extension?: {
12
+ url: string;
13
+ valueMarkdown?: string;
14
+ }[];
15
+ name?: string;
16
+ }
17
+ export declare function getActivityPerformClause(activityDef: ActivityDef): {
18
+ clauseString: string;
19
+ value: string | undefined;
20
+ terminology?: {
21
+ identifier: string;
22
+ code: string;
23
+ system: string;
24
+ };
25
+ };
26
+ export declare function getNextActivityId(): string;
27
+ export declare function emitActivityBlock(node: ActivityDef, canonicalValueStr: string | undefined, allInstances: ActivityDef[], activities: {
28
+ id: string;
29
+ name: string;
30
+ value: string | undefined;
31
+ original: string;
32
+ terminology?: {
33
+ identifier: string;
34
+ code: string;
35
+ system: string;
36
+ };
37
+ }[], indent: string, hasPlanDef: boolean, doReferences: {
38
+ id: string;
39
+ placeholder: string;
40
+ }[]): string;
41
+ export {};