首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在xtext中查看解析树/节点模型/AST

在xtext中查看解析树/节点模型/AST
EN

Stack Overflow用户
提问于 2012-12-04 18:49:29
回答 3查看 2.6K关注 0票数 5

我正在使用xtext为特定的语言生成一个编辑器。当为我的新语言使用编辑器时,它具有所有可爱的xtext特性,如代码完成和着色等。我想要做的是在编辑器中可视化文本的结构。

我知道xtext有一个内部的AST和一个解析树(我知道他们叫它‘节点模型’)--有什么方法可以可视化这个树吗?

EN

回答 3

Stack Overflow用户

发布于 2016-02-01 01:21:17

在xtend中有一个简单的解决方案(基于EObject.toString()默认完成的内省):

代码语言:javascript
复制
def static String dump(EObject mod_, String indent) {
    var res = indent + mod_.toString.replaceFirst ('.*[.]impl[.](.*)Impl[^(]*', '$1 ')

    for (a :mod_.eCrossReferences)
        res += ' ->' + a.toString().replaceFirst ('.*[.]impl[.](.*)Impl[^(]*', '$1 ')
    res += "\n"
    for (f :mod_.eContents) {
        res += f.dump (indent+"    ")
    }
    return res
}

转储(someEObject,'')等调用的输出将返回:

代码语言:javascript
复制
ExpressionModel 
Variable (name: i)
    Plus 
        IntConst (value: 1)
        Plus 
            IntConst (value: 2)
            Plus 
                IntConst (value: 3)
Variable (name: j)
    Plus 
        VarRef  ->Variable (name: i)
        Plus 
            IntConst (value: 4)
            Plus 
                IntConst (value: 5)
票数 3
EN

Stack Overflow用户

发布于 2013-12-20 13:08:09

这可能会对你有所帮助:https://github.com/OLibutzki/xtext.tools

它提供了节点模型和语义模型(AST)的概要。

票数 2
EN

Stack Overflow用户

发布于 2012-12-05 00:21:02

您应该检查内容大纲。我已经定制了我的模型,但我认为默认的模型反映了模型的结构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13701199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档