@iotize/tap-scripts
Version:
IoTize Tap scripts
73 lines • 5.51 kB
JavaScript
;
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