快速业务通道

一个简单的语言的语法(三):做些小调整,并将生成目标换到CSharp2 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
e ) programReturn.Tree; // Generate DOT diagram if -dot option is given if ( generateDot ) { var dotgen = new DOTTreeGenerator( ); var astDot = dotgen.ToDOT( ast ); Console.WriteLine( astDot ); } else { Console.WriteLine( ast.ToStringTree( ) ); } } }

一个简单的语言的语法(三):做些小调整,并将生成目标换到CSharp2(5)

时间:2011-10-07 javaeye RednaxelaFX

因为使用了DOTTreeGenerator,编译时记得在引用Antlr3.Runtime.dll之外,还需要引用 Antlr3.Utility.dll与StringTemplate.dll。

继续使用前两篇用过的Jerry代码为例子:

C代码

// line comment
// declare variables with/without initializers
int i = 1, j;
int x = i + 2 * 3 - 4 / ( 6 - - 7 );
int array[2][3] = {
  { 0, 1, 2 },
  { 3, 4, 6 }
};

/*
  block comment
*/

while (i < 10) i = i + 1;
while (!x > 0 && i < 10) {
  x = x - 1;
  if (i < 5) break;
  else read i;
}

write x - j;

通过上面的程序,可以得到这样的AST:

上面的程序生成的是.dot文件(输出到标准输出流上)。使用Graphviz的dot,将这个文件以

Java代码

dot JerrySample.dot -Tpng -o JerrySample.png

这样的命令来转换,就能得到PNG图像。

本篇就到这里。下一篇看看遍历AST用的基本tree grammar。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号