随着高德地图技术团队的扩张和业务的复杂化,越来越碎片化的代码以及代码之间复杂的依赖关系带来诸多维护性问题。 ...
分类:
移动开发 时间:
2019-12-09 11:39:52
阅读次数:
101
到目前为止,Scala 环境下至少存在6种 Json 解析的类库,这里面不包括 Java 语言实现的 Json 类库。所有这些库都有一个非常相似的抽象语法树(AST)。而 json4s 项目旨在提供一个单一的 AST 树供其他 Scala 类库来使用。 json4s 的使用非常的简单,它可以将类直接 ...
分类:
Web程序 时间:
2019-11-27 23:24:50
阅读次数:
115
在javascript世界中,你可以认为抽象语法树(AST)是最底层。 再往下,就是关于转换和编译的“黑魔法”领域了。 现在,我们拆解一个简单的add函数 首先,我们拿到的这个语法块,是一个FunctionDeclaration(函数定义)对象。 用力拆开,它成了三块: 一个id,就是它的名字,即a ...
分类:
编程语言 时间:
2019-11-26 11:52:40
阅读次数:
62
背景 我们的小程序项目的构建是与web项目保持一致的,完全使用webpack的生态来构建,没有使用小程序自带的构建功能,那么就需要我们配置代码转换的babel插件如 、`Proxy async/await onError` 生命周期只能捕获同步错误,而完全不采用小程序自带构建工具的情况下,开发模式下 ...
分类:
微信 时间:
2019-09-03 11:31:00
阅读次数:
168
前言 在之前完成了词法分析之后,得到了Token流,那么接下来就是实现语法分析器来输入Token流得到抽象语法树 (Abstract Syntax Tree,AST) 。但是在完成这个语法分析器不像词法分析器,直接手撸就好了,还是需要一些前置的知识。 这些前置知识在之前的博文都有提起过 "之前的博文 ...
分类:
其他好文 时间:
2019-08-17 10:54:33
阅读次数:
114
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
TiDB是google F1的开源实现; TiDB实现了基于mvcc的乐观锁,在线表结构变更,基于时间戳的数据线性一致性,等等; 为了可靠性,TiDB和Oracle一样,维护了百万级别的自动化测试用例,跑在k8s搭建的集群之上; TiDB里面用到的算法,都会写测试程序验证,以证明算法的正确性; 自 ...
分类:
数据库 时间:
2019-06-01 20:01:33
阅读次数:
180