Atitit 常见数据结构之编程语言源文件与编译文件 目录 1.1. 通过反射api得到结构1 1.2. 通过源码ast信息1 2. 常见语言1 2.1. Php ast 解析1 2.2.

Atitit 常见数据结构之编程语言源文件与编译文件

目录

1.1. 通过反射api得到结构 1

1.2. 通过源码ast信息 1

2. 常见语言 1

2.1. Php ast 解析 1

2.2. js ast 1

2.3. c# Python 2

2.4. Java class jar 2

2.5. Exe dll PE(Portable Executable)格式,可移植可执行 2

2.6. Sql 2

2.7. Html xml json 2

    1. 通过反射api得到结构
    2. 通过源码ast信息
  1. 常见语言
    1. Php ast 解析

PHP-Parser的项目主页是https://github.com/nikic/PHP-Parser。可以对多版本的PHP进行完美解析,生成一颗抽象语法树。

对于词法分析,PHP有个内置函数token_get_all()可以用来获取TOKENS,作为语法分析的输入,这个开源项目也是用的token_get_all()生成的token流。

    1. js ast

通过 UglifyJS 解析出 JavaScript 的 AST ( jstransform 也能做到这点)就能直接定位到我们需要改动的位置。...

    1. c# Python
    2. Java class jar

AST

解析JAVA的文件模型,JAVA的语法树可以理解为java文件的dom模型,dom4j解析xml文件也会有一套自己的模型。AST和编译原理有关

Javaparser也可以

    1. Exe dll PE(Portable Executable)格式可移植可执行

简化PE文件格式

DOS MZ Header

PE Header

Section Table

Section 1

Section 2

...

Section n

    1. Sql

Atitit sql文件的数据结构与解析

    1. Html xml json

PE格式_百度百科.html

使用JDT.AST解析java源码 - ermei - 博客园.html