dsl

Posted by 夏泽民

程序转换系统,它将一种语言(你的DSL)的语法结构映射到其他语言中的语法模式。这样的工具可以在代码生成项目期间执行任意转换(树重写一般化字符串重写,这是Post系统,具有完全图灵功能),这意味着您生成的内容和生成过程的复杂程度仅由您的野心决定,而不是“代码生成器框架”属性。 Sophtisticated程序转换系统结合了各种类型的范围,流量分析和/或自定义分析器来实现转换。这并没有增加任何理论能力,但它增加了许多实际功能:大多数真实语言(甚至DSL)都有名称空间,控制和数据流,需要类型推断等。 我们的DMS软件再造工具包就是这种类型的转换系统。它已被用于分析/转换传统语言和DSL,简单和复杂的语言,以及小型,大型甚至是巨大的软件系统。 与OP关于“将AST转换为其他语言”的评论相关,这是由DMS通过编写将DSL的表面语法(在他的DSL的AST后面实现)映射到目标语言的表面语法(使用目标实现)的转换来完成的。语言AST)。然后由DMS自动绘制得到的目标语言AST,以提供目标语言的实际源代码,其对应于目标AST。
https://zhuanlan.zhihu.com/p/25696396 https://segmentfault.com/a/1190000015127116



antlr graphviz

Posted by 夏泽民

https://www.jianshu.com/p/37573261d3cf https://blog.csdn.net/marlonyao/article/details/83816299



markdown

Posted by 夏泽民

https://www.npmjs.com/package/swagger-markdown 做项目不是单纯的写完代码就结束了,还有文档,如果是接口开发,比较重要的一项就是接口文档,现在比较广泛使用的是swagger工具,在java中也提供了相应的swagger工具。虽然swagger很好用,但是在通用性上还是弱了一些,比如说记录到公司的文档工具就不是很方便。



antlr json2xml

Posted by 夏泽民

antlr(ANother Tool for Language Recognition)是一个强大的语法分析器生成工具,它可用于读取,处理,执行和翻译结构化的文本和二进制文件。目前,该工具广泛应用于学术和工业生产领域,同时也是众多语言,工具和框架的基础。 今天我们就用这个工具实现一个go语言版的json2xml转换器;



twirp RPC 的简易 JSON Api Gateway 实现

Posted by 夏泽民

https://gocn.vip/topics/10660 Twirp 是 Twichtv 2018 年开源的一套极简 RPC 框架,当时官方的介绍文章 Twirp: a sweet new RPC framework for Go。功能上比不上大名鼎鼎的 grpc,但是胜在小巧灵活,兼容 Go 原生的 http.Handler,可以与现有的任意 Router 和中间件搭配使用;同时支持 protobuf 和 json 格式传输,调试方便;另外我个人很喜欢它的 Error 实现,直观并且可扩展性还不错。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required