UNPKG

cql-antlr-parser

Version:
39 lines (38 loc) 1.36 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const antlr4ts_1 = require("antlr4ts"); const cqlLexer_1 = require("./generated/cqlLexer"); const cqlParser_1 = require("./generated/cqlParser"); const CqlAntlrListener_1 = __importDefault(require("./CqlAntlrListener")); const tree_1 = require("antlr4ts/tree"); class CqlAntlr { constructor(cql) { this.cql = cql; } parse() { const tree = this.buildTree(); const result = CqlAntlr.buildCqlResult(); const listener = new CqlAntlrListener_1.default(result); tree_1.ParseTreeWalker.DEFAULT.walk(listener, tree); return result; } static buildCqlResult() { const result = {}; result.includes = []; result.codeSystems = []; result.valueSets = []; result.codes = []; return result; } buildTree() { const charStream = antlr4ts_1.CharStreams.fromString(this.cql); const lexer = new cqlLexer_1.cqlLexer(charStream); const tokenStream = new antlr4ts_1.CommonTokenStream(lexer); const parser = new cqlParser_1.cqlParser(tokenStream); return parser.library(); } } exports.default = CqlAntlr;