技术解析

使用高阶函数构造自己的校验器
0
2021-08-31 21:30:36
idczone

Github 传送门

之前看了轮子哥的文章 使用高阶函数开发语法分析器,便想用 js 重新实现一下,就有了这个轮子。

她是什么

有一点 combinator 的感觉,提供了几个函数可以让你解析用 BNF 描述规则的东西。

她能做什么

  • tokenizer
  • AST 虽然简陋了点也算是吧(
  • calculator 四则运算是每个 parser 的必经之路
  • rfc1738 校验器 按照 rfc 来构建校验器,妈妈再也不用担心我写的 validator 被人怼啦
  • json 解析器 实现了 JSON.parse 比较拙劣,性能和原生方法差 300 倍 ( node10,node8 下通常是 500 倍)

她有哪些特点

短小(指代码

核心实现 150 行,还包括了许多辅助函数和类型

测试覆盖全面

-----------|----------|----------|----------|----------|-------------------|
File       |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
-----------|----------|----------|----------|----------|-------------------|
All files  |      100 |      100 |      100 |      100 |                   |
 parser.ts |      100 |      100 |      100 |      100 |                   |
-----------|----------|----------|----------|----------|-------------------|

她有哪些问题

有的文件使用了 ts,但实际数据的类型不是那个样子的(笑

如何食用

package.json


高阶领主表示你很聪明,赞赏了你。

春节期间还在努力学习练习,乃我辈楷模,佩服!

春节只补充了测试(

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服