UNPKG

@madie/cql-antlr-parser

Version:
111 lines 4.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const generated_1 = require("../generated"); const CqlVersionCreator_1 = __importDefault(require("./CqlVersionCreator")); const CqlIncludeCreator_1 = __importDefault(require("./CqlIncludeCreator")); const CqlCodeSystemCreator_1 = __importDefault(require("./CqlCodeSystemCreator")); const CqlCodeValueSystemCreator_1 = __importDefault(require("./CqlCodeValueSystemCreator")); const CqlCodeCreator_1 = __importDefault(require("./CqlCodeCreator")); const CqlParameterCreator_1 = __importDefault(require("./CqlParameterCreator")); const CqlContextCreator_1 = __importDefault(require("./CqlContextCreator")); const CqlExpressionDefinitionCreator_1 = __importDefault(require("./CqlExpressionDefinitionCreator")); const CqlIdentifierCreator_1 = __importDefault(require("./CqlIdentifierCreator")); const CqlRetrieveCreator_1 = __importDefault(require("./CqlRetrieveCreator")); const AntlrUtils_1 = __importDefault(require("./AntlrUtils")); class CqlAntlrListener { constructor(cqlResult, tokenStream) { this.cqlResult = cqlResult; this.bufferedTokenStream = tokenStream; } enterLibraryDefinition(ctx) { const cqlVersionCreator = new CqlVersionCreator_1.default(ctx); this.cqlResult.library = cqlVersionCreator.buildDao(); } enterUsingDefinition(ctx) { const using = new CqlVersionCreator_1.default(ctx).buildDao(); if (using) { this.cqlResult.usings.push(using); } } enterIncludeDefinition(ctx) { const cqlCode = new CqlIncludeCreator_1.default(ctx).buildDao(); if (cqlCode) { this.cqlResult.includes.push(cqlCode); } } enterCodesystemDefinition(ctx) { const cqlCodeSystem = new CqlCodeSystemCreator_1.default(ctx).buildDao(); if (cqlCodeSystem) { this.cqlResult.codeSystems.push(cqlCodeSystem); } } enterValuesetDefinition(ctx) { var _a; const cqlValueSet = new CqlCodeValueSystemCreator_1.default(ctx, (_a = this.cqlResult.usings[0]) === null || _a === void 0 ? void 0 : _a.name).buildDao(); if (cqlValueSet) { this.cqlResult.valueSets.push(cqlValueSet); } } enterCodeDefinition(ctx) { const cqlCode = new CqlCodeCreator_1.default(ctx).buildDao(); if (cqlCode) { this.cqlResult.codes.push(cqlCode); } } enterParameterDefinition(ctx) { const cqlCode = new CqlParameterCreator_1.default(ctx).buildDao(); if (cqlCode) { this.cqlResult.parameters.push(cqlCode); } } enterContextDefinition(ctx) { this.cqlResult.context = new CqlContextCreator_1.default(ctx).buildDao(); } processDefinitionWithComments(ctx, buildDao) { const expressionDefinition = buildDao(); if (expressionDefinition && ctx.start.inputStream) { const hiddenTokens = this.bufferedTokenStream.getHiddenTokensToLeft(ctx.start.tokenIndex, generated_1.cqlLexer.HIDDEN); if (hiddenTokens && hiddenTokens.length > 0) { const comment = hiddenTokens .map((token) => { var _a; return (_a = token.text) === null || _a === void 0 ? void 0 : _a.trim(); }) .filter(Boolean) .join(" "); if (comment) { expressionDefinition.start = new CqlExpressionDefinitionCreator_1.default(ctx).buildLineInfo(hiddenTokens[1]); expressionDefinition.comment = AntlrUtils_1.default.formatComment(comment); } } this.cqlResult.expressionDefinitions.push(expressionDefinition); } } enterExpressionDefinition(ctx) { this.processDefinitionWithComments(ctx, () => { return new CqlExpressionDefinitionCreator_1.default(ctx).buildDao(); }); } enterFunctionDefinition(ctx) { this.processDefinitionWithComments(ctx, () => { return new CqlExpressionDefinitionCreator_1.default(ctx).buildDao(); }); } enterAggregateClause(ctx) { const identifier = new CqlIdentifierCreator_1.default(ctx).buildDao(); if (identifier) { this.cqlResult.identifiers.push(identifier); } } enterRetrieve(ctx) { if (ctx.terminology() === undefined) { return; } const cqlRetrieve = new CqlRetrieveCreator_1.default(ctx).buildDao(); if (cqlRetrieve) { this.cqlResult.retrieves.push(cqlRetrieve); } } } exports.default = CqlAntlrListener; //# sourceMappingURL=CqlAntlrListener.js.map