Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface ANTLR';s树语法AST图形视图_User Interface_Antlr_Abstract Syntax Tree_Tree Grammar - Fatal编程技术网

User interface ANTLR';s树语法AST图形视图

User interface ANTLR';s树语法AST图形视图,user-interface,antlr,abstract-syntax-tree,tree-grammar,User Interface,Antlr,Abstract Syntax Tree,Tree Grammar,我目前正在用ANTLR和JAVA构建Javascript编译器。 我使用ANTLR的树语法生成AST。(仍然怀疑这是否比使用手动定义的抽象类生成节点的异构方法更智能,但这是另一个主题) 我的问题是,当我解析了一些输入时,比如说,var x=5;这在内部表现为:VARDECL作为根,x作为左子项,5作为右子项。 现在,我可以选择使用输出(VARDECL x 5)的toStringTree()命令打印此树-这种表示在大型程序中很难理解,所以我想知道是否有第三方工具可以将这种文本树表示作为输入,并输出

我目前正在用ANTLR和JAVA构建Javascript编译器。 我使用ANTLR的树语法生成AST。(仍然怀疑这是否比使用手动定义的抽象类生成节点的异构方法更智能,但这是另一个主题)

我的问题是,当我解析了一些输入时,比如说,var x=5;这在内部表现为:VARDECL作为根,x作为左子项,5作为右子项。 现在,我可以选择使用输出(VARDECL x 5)的toStringTree()命令打印此树-这种表示在大型程序中很难理解,所以我想知道是否有第三方工具可以将这种文本树表示作为输入,并输出一个漂亮的树的图形模型?(或者我也必须实施这一点)

问候苏恩

检查如何使用“语言”创建AST的图形树

如果您正在编写自己的JavaScript语法,请查看:有许多ECMA/JS语法可供使用

最后,您可能想看看我在哪里发布的答案,该答案显示了如何使用自定义树节点使用树语法计算语言(在本例中为表达式)。当然,您将有更多不同的节点,因为语言更复杂(赋值、函数、范围等),但您可以从该示例开始