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. 【Groovy】编译时元编程 ( 利用注解进行 AST 语法树转换 | 定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 | AST 转换接口实现 )

    文章目录 一.利用注解进行 AST 语法树转换 1.定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 2.AST 转换接口实现 3.定义 Groovy ...

  2. 【Groovy】编译时元编程 ( 方法拦截时用到的 AST 语法树节点 MethodNode 节点 | MethodNode 节点分析 | MethodNode 节点中的BlockStatement)

    文章目录 一.方法拦截时用到的 AST 语法树节点 MethodNode 节点 二.MethodNode 节点分析 三.MethodNode 节点中的 BlockStatement 集合 一.方法拦截 ...

  3. 【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )

    文章目录 一.AST 语法树分析 一.AST 语法树分析 在上一篇博客 [Groovy]编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) ...

  4. 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )

    文章目录 一.编译时元编程引入 二.声明需要编译时处理的类 三.分析 Groovy 类的 AST 语法树 一.编译时元编程引入 在之前的 " [Groovy]MOP 元对象协议与元编程 &q ...

  5. 什么是php的ast结构,什么是AST?Vue源码中AST语法树的解析

    这篇文章给大家介绍的内容是关于什么是AST?Vue源码中AST语法树的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 什么是AST AST是指抽象语法树(abstract syn ...

  6. python-js逆向之AST语法树初学(一)

    这两天看了什么是控制流平坦化,又研究了下ast语法数,如何把混淆乱序后的代码恢复之前的样子. 知识点:1.js包为 recast 2.Recast除了parse/print/builder以外, 还有 ...

  7. 关于css 的AST 语法树的理解

    css 处理插件大致分为压缩css和给css添加浏览器兼容前缀. cssmin 可以压缩css,大致原理是将使用正则将css 中的注释和空格删除. px2rem 插件是将css 中的px 转换为 re ...

  8. Vue源码解析之AST语法树(三)

    parse解析完之后,将生成的ast返回到baseCompile,接下来就是调用optimize方法对ast进行优化. var createCompiler = createCompilerCreat ...

  9. AST语法结构树初学者完整教程

    AST语法结构树初学者完整教程 编写你的第一个 Babel 插件 不太喜欢上来就讲大道理,先来个小栗子,做个简单而又实用的功能,做完后,理论你就理解一大半了. 我们需要antd里面的一个组件Butto ...

  10. AST抽象语法树的基本思想

    AST抽象语法树的基本思想 前言 AST概述 AST结构 AST解析 转换 生成 前言 在阅读java ORM框架spring data jpa的源码时,发现Hibernate(spring data ...

最新文章

  1. 官宣!邢波出任全球首个AI大学校长,MBZUAI明年1月迎来首批新生
  2. mysql 设置表空间位置_如何修改表空间数据文件路径
  3. HTTP相关知识 - 1
  4. JPA的泛型DAO设计及使用
  5. UDP、广播、多播与IGMP(七)
  6. hdc mfc 画扇形图_MFC画图总结-DIB图形绘制
  7. python3.7代码_python3.7idle如何测试源代码
  8. @程序员,你真得了解每天打交道的字节吗?
  9. 【图】max51开发板top页
  10. 使用计算机软件,计算机使用软件
  11. c语言中1和0什么意思啊,精讲LOOKUP公式中1和0的含义,这1500字的详细解析值得收藏一份...
  12. python opencv 画黑白棋盘
  13. 支持随时随地一键开会,华为云会议场景适用性更强!
  14. php请求纯文本,php – 使用纯文本回退发送HTML简报
  15. java沉浸状态栏代码,Ionic实现沉浸式状态栏,状态栏与APP融为一体
  16. CentOS安装Redis教程
  17. osg学习(二十八)有关kml和kmz
  18. excel 透视表 vba_使用Excel VBA删除数据透视表计算字段
  19. 2016第二十二届全国青少年信息学奥林匹克联赛初赛
  20. Win7/Win10移动用户文件夹(C:\Users)移到非系统盘(如D:)

热门文章

  1. java ajax 返回乱码,解决使用$.ajax的时候得到返回乱码
  2. SQL Server查询所有的表名、字段名、注释
  3. 深入理解原型和原型链
  4. Windows Server 2016-抢占FSMO角色
  5. 战神CPU计算机硬件组装
  6. 【知云】第十期:如何保障云上游戏安全?云盾+高防IP筑起云上安全高墙
  7. 管理分支:git branch
  8. 将html导出到excel或word
  9. Excel与SqlServer的导入导出问题总结
  10. Go语言中的单引号、双引号、反引号