Atitit. 构造ast 语法树的总结attilax oao

1. 能那更加有意义的名字来命名ast节点。。。 1

2. 如何命名表达式名称。。使用实际对象名称,而不是操作符号表达式更好 1

2.1. 参考在的ast view 一类的实现... 1

3. ast view (自是个160k的jar )
2

3.1. 多条语句ast结构 2

3.2. 变量定义 int b,c; 的ast结构 2

3.3. 方法调用meth1(a=1,b=2,c=3);  的ast结构
2

3.4. 注解的ast 3

4. 误解的问题 3

4.1. 语法书子能是个二叉树,实际上多叉树越好.. 3

4.2. 非要不个ast放到个stack黑头了..实际上不要stack牙行了...
3

4.3. Ast非要解释成个map一类的数据结构了,实际上直接ast走是个tree,能直接输出使用了...
3

4.4. Ast不一定要操作符表达式了,,,对象化名称牙越好... 3

4.5. =等号不一定是个赋值运算符, 定义变量的时候儿走马意义..实际能失去的了..
3

1. 能那更加有意义的名字来命名ast节点。。。

以前是单词流必须识别为保留字,标识符(变量),常量,操作符(运算符 )和界符五大类

实际上,参考ast view (自是个160k的jar )。。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. 如何命名表达式名称。。使用实际对象名称,而不是操作符号表达式更好

2.1. 参考在的ast view 一类的实现...

3. ast view (自是个160k的jar )

3.1. 多条语句ast结构

3.2. 变量定义 int b,c; 的ast结构

VariableDeclarationStatement [123+8]

》》TYPE      (int)

>>  FRAGMENTS (2)     (b,c)

Int   a=1;

VariableDeclarationStatement [115+8]     (Int   a=1;)

VariableDeclarationFragment [119+3]    (a=1)

NAME   ::变量名

INITIALIZER   变量值

问题?? =(等号)好像马兰。。。

3.3. 方法调用meth1(a=1,b=2,c=3);  的ast结构

MethodInvocation [136+18]

》》NAME      方法名

》》ARGUMENTS (3)  参数列表

Assignment [142+3]       ( a=1 表达式 )

》》LEFT_HAND_SIDE   参数面称

》》OPERATOR: '='

>>RIGHT_HAND_SIDE   参数值

3.4. 注解的ast

@anno1(key1="v1")

private static void meth2(int k) {

MethodDeclaration [196+100] 方法定义

》》MODIFIERS (3) / NormalAnnotation [196+17]  注解

。。//TYPE_NAME  注解名称

。。//VALUES (1)  注解值  key1="v1"

。。//VALUES/MemberValuePair [203+9]  注解值  key1="v1"

..///VALUES/MemberValuePair /NAME  注解值名称  key1

/VALUES/MemberValuePair //  VALUE   注解值的值  v1

????  等号好像马兰。。

4. 误解的问题

4.1. 语法书子能是个二叉树,实际上多叉树越好..

4.2. 非要不个ast放到个stack黑头了..实际上不要stack牙行了...

4.3. Ast非要解释成个map一类的数据结构了,实际上直接ast走是个tree,能直接输出使用了...

4.4. Ast不一定要操作符表达式了,,,对象化名称牙越好...

4.5. =等号不一定是个赋值运算符, 定义变量的时候儿走马意义..实际能失去的了..

Atitit. 构造ast 语法树的总结attilax oao的更多相关文章

  1. Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形12. ast view (自是个160k的jar )22.1. 多条语句ast结构22.2. 变量定义 int b,c; 的ast结构22.3. 方法调用meth1(a=1,b=2,c=3);  的ast结构23. 误解的问题33.1. 语法书子能是个二叉树,实际上多叉树越好..33.2. 非要不个ast放到个s

    Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 in ...

  2. Atitit. 构造ast 语法树的总结attilax v2 q0f

    Atitit. 构造ast 语法树的总结attilax v2 q0f 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 ...

  3. 教你如何用AST语法树对代码“动手脚”

    个推安卓工程师,负责公司移动端项目的架构和开发,主导移动端日志管理平台系统架构和开发工作,熟悉前后端的技术线,参与个推SDK主要业务研发工作,善于解决项目中遇到的痛点问题. 作为程序猿,每天都在写代码 ...

  4. Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python

    Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python 1.1. Sql语法树 ast 如下图锁死1 2. SQL语句解析的思路和过程3 ...

  5. atitit..sql update语法的词法分析,与语法ast构建

    atitit..sql update语法的词法分析,与语法ast构建 1. 要使用sql udpate语法的dsl ,需要写个解释器.. 1 2. 词法分析的实现 1 2.1. 扫描器的实现 SqlU ...

  6. vue 的模板编译—ast(抽象语法树) 详解与实现

    首先AST是什么? 在计算机科学中,抽象语法树(abstract syntax tree或者缩写为AST),或者语法树(syntax tree),是源代码的抽象语法结构的树状表现形式,这里特指编程语言 ...

  7. Atitit.jdk java8的语法特性详解 attilax 总结

    Atitit.jdk java8的语法特性详解 attilax 总结 1.1. 类型推断这个特别有趣的.鲜为人知的特性1 2. Lambda1 2.1. 内部迭代意味着改由Java类库来进行迭代,而不 ...

  8. AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解

    AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 javascriptvue-clicommonjswebpackast  阅读约 27 分钟 抽象语法树(AST),是一 ...

  9. 抽象语法树简介(ZZ)

    转载自: http://www.cnblogs.com/cxihu/p/5836744.html (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状 ...

随机推荐

  1. poj3126--Prime Path(广搜)

    Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11751   Accepted: 6673 Descr ...

  2. Orchard运用 - 为评论启用Gravatar头像

    在前一篇随笔中我曾分享如何为Orchard特定主题添加独立代码文件, 今儿延续如何把对应代码应用到Views上. 对此我不妨把为评论启用Gravatar头像这一例子来实现.其实很简单, 思路大概就是创 ...

  3. C#正则表达式Regex类的介绍

    一.在C#中,要使用正则表达式类,请在源文件开头处添加以下语句: using System.Text.RegularExpressions; 二.RegEx类常用的方法 1.静态Match方法 使用静 ...

  4. SQL CROSS JOIN

    最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘 ...

  5. Drupal、IoT 和开源硬件之间的交集

    导读 来认识一下Amber Matz,她是来自 Lullabot Education 旗下的Drupalize.Me的产品经理以及培训师.当她没有倒腾 Arduino.Raspberry Pi 以及电 ...

  6. 转: SVN和Git的一些用法总结

    转:http://www.codelast.com/?p=5719 转载请注明出处:http://www.codelast.com/ 以下都是比较基础的操作,高手们请绕道,不必浪费时间来看了. (A) ...

  7. (剑指Offer)面试题51:数组中重复的数字

    题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为7 ...

  8. TCP客户/服务器程序实例——回射服务器

    目录 客户/服务器程序源码 POSIX信号处理 POSIX信号语义 处理SIGCHLD信号 处理僵死进程 处理被中断的系统调用 wait和waitpid函数 wait和waitpid函数的区别 网络编 ...

  9. Selenium中定位元素的方法

    find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find ...

  10. UIScrollView 循环滚动,代码超简单

    如今非常多应用里面多多少少都用到了循环滚动,要么是图片.要么是view,或者是其它,我总结一下,写了个demo分享给大家. 先看代码之后在讲原理: 1.创建一个空的项目(这个我就不多说了). 2.加入 ...