UNPKG

@iotize/tap-scripts

Version:

IoTize Tap scripts

73 lines 5.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GrammarHelper = exports.MyErrorListener = void 0; const ANTLRInputStream_1 = require("antlr4ts/ANTLRInputStream"); const CommonTokenStream_1 = require("antlr4ts/CommonTokenStream"); const IoTizeTestLexer_1 = require("./antlr4/IoTizeTestLexer"); const IoTizeTestParser_1 = require("./antlr4/IoTizeTestParser"); const errors_1 = require("./errors"); const instruction_list_visitor_1 = require("./instruction-list-visitor"); const logger_1 = require("./logger"); class MyErrorListener { syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e) { (0, logger_1.debug)(`ERROR => ${msg}`); } } exports.MyErrorListener = MyErrorListener; class GrammarHelper { constructor() { } static createParser(input) { const lexer = GrammarHelper.getLexer(input); let tokens = new CommonTokenStream_1.CommonTokenStream(lexer); let parser = new IoTizeTestParser_1.IoTizeTestParser(tokens); parser.buildParseTree = true; return parser; } static createTree(input) { let parser = GrammarHelper.createParser(input); let tree = parser.prog(); if (parser.numberOfSyntaxErrors > 0) { throw errors_1.ScriptError.syntaxError(parser); } return tree; } static toProgInstructions(content) { let tree = GrammarHelper.createTree(content); let visitor = GrammarHelper.getVisitor(); return visitor.visit(tree); } static getLexer(input) { let lexer = new IoTizeTestLexer_1.IoTizeTestLexer(GrammarHelper.toStream(input)); // lexer.removeErrorListeners(); // lexer.addErrorListener(new StopErrorListener()) return lexer; } static getVisitor() { let visitor = new instruction_list_visitor_1.InstructionListVisitor(); return visitor; } static toTokenStream(lexer) { let tokens = new CommonTokenStream_1.CommonTokenStream(lexer); return tokens; } static toStream(input) { let chars = new ANTLRInputStream_1.ANTLRInputStream(input); return chars; } // /** // * Only available in node.js environment // * @param filepath // */ // public static createFromFile(filepath: string) { // var fs = require('fs'); // var content = fs.readFileSync(filepath).toString(); // return this.createTree(content); // } static toLwm2mRequest(content) { const tree = GrammarHelper.createParser(content).lwm2mInstruction(); const visitor = GrammarHelper.getVisitor(); return visitor.visitLwm2mInstruction(tree).getCommand(); } } exports.GrammarHelper = GrammarHelper; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhbW1hci1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2dyYW1tYXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGdFQUE2RDtBQUM3RCxrRUFBK0Q7QUFJL0QsOERBQTJEO0FBQzNELGdFQUFtRztBQUVuRyxxQ0FBdUM7QUFDdkMseUVBQW9FO0FBQ3BFLHFDQUFpQztBQUdqQyxNQUFhLGVBQWU7SUFDeEIsV0FBVyxDQUNQLFVBQThCLEVBQzlCLGVBQThCLEVBQzlCLElBQVksRUFDWixrQkFBMEIsRUFDMUIsR0FBVyxFQUNYLENBQW1DO1FBRW5DLElBQUEsY0FBSyxFQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUFYRCwwQ0FXQztBQUVELE1BQWEsYUFBYTtJQUN0QixnQkFBZ0IsQ0FBQztJQUVWLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBYTtRQUNwQyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksTUFBTSxHQUFHLElBQUkscUNBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQ2xDLElBQUksTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpCLElBQUksTUFBTSxDQUFDLG9CQUFvQixHQUFHLENBQUMsRUFBRTtZQUNqQyxNQUFNLG9CQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFlO1FBQzVDLElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFhO1FBQ2hDLElBQUksS0FBSyxHQUFHLElBQUksaUNBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0QsZ0NBQWdDO1FBQ2hDLGtEQUFrRDtRQUNsRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVU7UUFDcEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxpREFBc0IsRUFBRSxDQUFDO1FBQzNDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQVU7UUFDbEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFhO1FBQ2hDLElBQUksS0FBSyxHQUFHLElBQUksbUNBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU07SUFDTiwyQ0FBMkM7SUFDM0MscUJBQXFCO0lBQ3JCLE1BQU07SUFDTixtREFBbUQ7SUFDbkQsOEJBQThCO0lBQzlCLDBEQUEwRDtJQUMxRCx1Q0FBdUM7SUFDdkMsSUFBSTtJQUVHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUN4QyxNQUFNLElBQUksR0FBNEIsYUFBYSxDQUFDLFlBQVksQ0FDNUQsT0FBTyxDQUNWLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0MsT0FBTyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUQsQ0FBQztDQUNKO0FBbEVELHNDQWtFQyJ9