使用 Roslyn 进行源码分析时,我们会对很多不同种类的语法节点进行分析。如果能够一次性了解到各种不同种类的语法节点,并明白其含义和结构,那么在源码分析的过程中将会更加得心应手。 本文将介绍 Roslyn 中各种不同的语法节点、每个节点的含义,以及这些节点之间的关系和语法树结构。 本文内容 基本概 ...
分类:
其他好文 时间:
2019-08-25 12:24:48
阅读次数:
139
前言 在之前完成了词法分析之后,得到了Token流,那么接下来就是实现语法分析器来输入Token流得到抽象语法树 (Abstract Syntax Tree,AST) 。但是在完成这个语法分析器不像词法分析器,直接手撸就好了,还是需要一些前置的知识。 这些前置知识在之前的博文都有提起过 "之前的博文 ...
分类:
其他好文 时间:
2019-08-17 10:54:33
阅读次数:
114
1.log4cxx 日志 2.protobuf 数据交互(类似json 3.boost.asio 网络库 4.boost.python 脚本支持 5.语法树 + c++处理excel资源 ...
分类:
其他好文 时间:
2019-07-26 11:59:45
阅读次数:
136
<!doctype html> 编译原理 编译原理概述 1、编译概念: 从高级语言->目标代码的过程(汇编语言or机器码) 2、编译器的结构: 分析部分/前端(front end)->与源语言相关 词法分析>>词法单元流 语法分析>>语法分析树parse tree 语义分析>>语法树 中间代码生成> ...
分类:
其他好文 时间:
2019-07-23 22:33:35
阅读次数:
155
1.概述 PHP(本文所述案例PHP版本均为7.1.3)作为一门动态脚本语言,其在zend虚拟机执行过程为:读入脚本程序字符串,经由词法分析器将其转换为单词符号,接着语法分析器从中发现语法结构后生成抽象语法树,再经静态编译器生成opcode,最后经解释器模拟机器指令来执行每一条opcode。 在上述 ...
分类:
Web程序 时间:
2019-07-23 13:39:54
阅读次数:
119
1.postcss PostCSS 的主要功能只有两个:第一个就是前面提到的把 CSS 解析成 JavaScript 可以操作的 抽象语法树结构(Abstract Syntax Tree,AST),第二个就是调用插件来处理 AST 并得到结果。 PostCSS 一般不单独使用,而是与已有的构建工具进 ...
分类:
Web程序 时间:
2019-07-05 12:28:35
阅读次数:
179
背景 TypeScript是一个非常棒的JavaScript代码静态代码分析器,它在底层JavaScript语言之上提供了一些额外的语法。 在后台,它使用一个解析器将源代码转换成一种称为抽象语法树(AST)的数据格式。然后,插件使用这种数据格式来创建名为lint规则的断言,该断言围绕着代码的外观或行 ...
分类:
编程语言 时间:
2019-07-02 16:09:30
阅读次数:
238
没办法了,开坑吧,接下来的几篇会讲述JavaScript字符串源码在v8中转换成AST(抽象语法树)的过程。 JS代码在V8的解析只有简单的几步,其中第一步就是将源字符串转换为抽象语法树,非常类似于vue中将html转换为VNODE的过程。该过程涉及的类并不多,均位于/src/parsing文件夹中 ...
分类:
其他好文 时间:
2019-07-01 14:30:21
阅读次数:
314
在遍历html语法树中用到了深度优先遍历和广度优先遍历,就自己用js实现了下 测试 广度优先 bodydivdivdivspanspanspanspanspanspan 深度优先bodydivspanspandivspanspandivspanspan ...
分类:
Web程序 时间:
2019-06-08 11:55:41
阅读次数:
168
TiDB是google F1的开源实现; TiDB实现了基于mvcc的乐观锁,在线表结构变更,基于时间戳的数据线性一致性,等等; 为了可靠性,TiDB和Oracle一样,维护了百万级别的自动化测试用例,跑在k8s搭建的集群之上; TiDB里面用到的算法,都会写测试程序验证,以证明算法的正确性; 自 ...
分类:
数据库 时间:
2019-06-01 20:01:33
阅读次数:
180