语法制导的三地址代码生成程序_ts-creator, 一个生成代码生成器的代码生成器

简介
ts-creator 是一个由 TypeScript 代码生成 TypeScript 代码生成器的代码生成器,主要为TypeScript 插件作者,构建公司开发流程中需要用到代码生成的开发者等提供服务。
起因
笔者在前段时间写了一些 TypeScript 代码生成器,在实现的过程中,遇到了一些痒点,因此写了 ts-creator 这个工具,在此和大家分享。
传统流程
众所周知,TypeScript 提供了一系列的工厂方法,用来生成 TypeScript 代码,对于开发者来说,写一个 TypeScript 代码生成器一般会经过以下流程:
- 写出要生成的模板代码
- 查看 TypeScript 对模板生成的 AST 结构,例如 AST Explorer
- 使用 TypeScript 工厂方法,写出生成对应模板代码的生成器
- 根据自己业务需求,调整写出的生成器
在这个流程中,可能会遇到一些问题:
- 对 TypeScript 不够熟悉,找不到对应的 API
- TypeScript 本身足够复杂, 工厂方法参数众多
- 工作量大,需要手写很多代码
这些问题虽然不算绕不过去的痛点,但是确确实实的影响着开发效率。如果能更方便,更快捷的解决,是很值得尝试的。
基于 ts-creator 的流程
使用 ts-creator 来加入开发流程,可以简化以上流程为:
- 写出要生成的代码模板
- 使用 ts-creator 生成生成器
- 根据自己业务需求,调整生成出的生成器
表面上看,流程由四步减少了一步,变为三步,但实际开发中,因为可以降低对 TypeScript 了解程度的要求,所以可以有效的减少编写生成器的工作量和心智负担。
例子
ts-creator 提供了 lib, web, cli 形式的服务,接口简洁,本文中以 web 形式的 playground 为例。



未来
目前 ts-creator 已经支持大部分 TypeScript 语法,少量不支持的语法也在积极推进上游改进,未来可能会做的事情有:
- 支持模板替换
- 支持 JSDoc
其他
- 特别感谢 (字母序):AngryPowman, HairyRabbit, KagamiChan
- 项目地址:https://github.com/HearTao/ts-creator
- Playground: https://ts-creator.js.org/
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
