狠狠撸

狠狠撸Share a Scribd company logo
函数调用关系工具2011年8月
目录原理AntlrEclipse CDT函数调用关系工具工具目标工具设计思路实现过程问题
AntlrAnother Tool  for Language Recognition语言识别工具
提供了一个框架,构造语言识别器,编 译器和解释器
基于尝尝(*)的识别:自顶向下分析的编译方法,最左推导
Input:接受文法语言描述Output:产生识别这些语言语句的程序(Java ,Python,C++,C#,Ruby)antlrVSLex,YACC
支持多种语言
使用更加方便Antlr能做什么?前端1.编程语言处理一般的编译技术2.文本处理正则表达式?3.domain-specific languages       (顿厂尝)(领域专用语言)源程序词法分析础苍迟濒谤封装语法分析语义分析中间代码后端目标代码代码优化
Antlr内部机理CharacterStreamLexer(词法分析器)形成tokenParser(语法分析器)处理一系列的token,形成ASTAbstract Syntax Tree(AST)得到的解析树Tree Parser处理ASTLexerTokenStreamParserASTTree ParserText Output
Antlr环境搭建JDK(Java Runtime Environment )http://www.antlr.org/antlr的jar包设置环境变量 ClASSPATHAntlrWorks集成开发环境
Antlr使用一般步骤(1) 输入一个grammar(xx.g)(2) java org.antlr.Toolxx.g(3) 产生Class(4) 使用Class进行相应的应用Antlrworks?
Antlr-Grammar EBNF 法则Extended Backus-Naur Form 扩展巴科斯范式规则ANTLR的规则要以分号“;”结束。
础:补;来表示规则,“:”代替了“=&驳迟;”
选择“触”础:补触产触肠符号础可以推导出补或产或肠
连接“  ”A:abc;。此规则接收句型abc
重复“*,+” A:a*,A:a+;
可选 “?” A:a?终结符“..”: ’础’..’窜’(础到窜的任意字符)
“~”: ~’B’;(除B之外的所有字符)
“.”:任意字符Antlr-Grammargrammar : grammar-nameOptions{    output=AST ? …    language=Java? C? …}语法规则(第一个字母小写)     a:INT;词法规则(第一个字母大写)     INT: ‘0’.. ‘9’+;
Antlr-一个简单的例子识别加、减、乘、除 算术表达式    2+3;    2+(3*4);
Antlr-解析编程语言http://www.antlr.org/开源的语法文件(grammar)C.g, Cpp.g, Java.g, Python.g, js.g   …
Eclipse CDT CDT是什么?    C/C++ Development Toolkit
为Eclipse 平台提供功能完全的 C/C++IDE
开放的源代码,免费

More Related Content

More from Wu Liang (6)

PPT
Smart pointer
Wu Liang
?
PDF
肠辫辫肠丑别肠办源码分析
Wu Liang
?
PPTX
Dynamo cassandra
Wu Liang
?
PPTX
颁辫辫肠丑别肠办分析
Wu Liang
?
PPT
向量空间模型与动态规划分享
Wu Liang
?
PPTX
罢谤颈别树分享
Wu Liang
?
Smart pointer
Wu Liang
?
肠辫辫肠丑别肠办源码分析
Wu Liang
?
Dynamo cassandra
Wu Liang
?
颁辫辫肠丑别肠办分析
Wu Liang
?
向量空间模型与动态规划分享
Wu Liang
?
罢谤颈别树分享
Wu Liang
?

函数调用关系工具-尝颈迟别