在ANTLR4中的侦听器中获取令牌类型

时间:2019-06-15 19:11:36

标签: javascript antlr4

我得到了HTML语法并创建了一个解析器。目标是JavaScript。

我的听众看起来像这样:

const HTMLParserListener = require('./antlr_output_html/HTMLParserListener').HTMLParserListener;

MyHtmlListener = function(res) {
    this.Res = res;    
    HTMLParserListener.call(this); // inherit default listener
    return this;
};


MyHtmlListener.prototype = Object.create(HTMLParserListener.prototype);
MyHtmlListener.prototype.constructor = MyHtmlListener;

// Enter a parse tree produced by HTMLParser#htmlElement.
HTMLParserListener.prototype.enterHtmlElement = function(ctx) {
            console.log("ELEMENT");
    ctx.children.forEach(child => {
                // console.log(child);
        console.log(child.getText());
        console.log();
        console.log();
    });
};

// Enter a parse tree produced by HTMLParser#htmlAttribute.
HTMLParserListener.prototype.enterHtmlAttribute = function(ctx) {
                console.log("Attribute");
    ctx.children.forEach(child => {
                // console.log(child);
        console.log(child.getText());
        console.log();
        console.log();
    });
};

exports.MyHtmlListener = MyHtmlListener;

如何在侦听器函数中获取令牌类型?

问题在于,即使将标签定义为标记(TAG_OPEN,TAG_CLOSE,...),也没有特定于打开和关闭标签的方法。

0 个答案:

没有答案