Как получить абстрактное синтаксическое дерево (AST) из парсера JISON?

Итак, я создал синтаксический анализатор через JISON:

// mygenerator.js
var Parser = require("jison").Parser;

// a grammar in JSON
var grammar = {
    "lex": {
        "rules": [
           ["\\s+", "/* skip whitespace */"],
           ["[a-f0-9]+", "return 'HEX';"]
        ]
    },

    "bnf": {
        "hex_strings" :[ "hex_strings HEX",
                         "HEX" ]
    }
};

// `grammar` can also be a string that uses jison's grammar format
var parser = new Parser(grammar);

// generate source, ready to be written to disk
var parserSource = parser.generate();

// you can also use the parser directly from memory

// returns true
parser.parse("adfe34bc e82a");

// throws lexical error
parser.parse("adfe34bc zxg");

У меня вопрос, как мне получить AST сейчас? Я вижу, что могу запустить синтаксический анализатор для ввода, но он просто возвращает истину, если работает, или не работает, если нет.

Для записи я использую JISON: http: // zaach .github.com / jison / docs /

15
задан Tim Landscheidt 8 February 2012 в 22:45
поделиться