世界语言转换器:Chapi

智聪说说网
智聪说说网
智聪说说网
43262
文章
0
评论
2023-03-1204:29:24 评论 5

来吧,一起用高效(hard way)学习各种编程语言的方法,Kotlin Scala、Python、Go、Java、TypeScript、C#……

为了重构和分析开源工具 Coca 多语言支持(原来只支持) Java 语言),我开始创造新的轮子。尝试在上个月底使用 Antlr 的 Go runtime,但由于公司内部的一些项目需要类似的工具,遇到了一系列的挫折,我开始从 JVM 在语言中找到合适的选择。尝试在上个月底使用 Antlr 的 Go runtime,但由于公司内部的一些项目需要类似的工具,遇到了一系列的挫折,我开始从 JVM 在语言中找到合适的选择。

结合的影响,我在月初(2020年)结束了打苍蝇的休息时间.2.1)便启动了 Chapi 在项目开发中,语言是 Kotlin。

在过去的半个月里,我在这个项目上编写了很多代码,如下所示:

完全 TDD 的项目。只有充分的测试才能保证语法分析不出错。

Kotlin 语言。Java 是 Antlr 一等公民的框架,Kotlin 是 JVM 系,更简洁。

支持主流编程语言。已完全支持 Java 语言,支持 Python、Go、TypeScript 支持数据结构分析 Scala、C 和 C# 语言。

插件化支持。(正在实现)

JSON 输出(基于 )。

统一的代码数据结构模型。

先是重写了 Coca 在基础设施中 AST,在此基础上,提供了更通用的代码模型,并增加了不同类型语言的支持:

我在维基百科全书上看到了编程语言的分类,增加了更多的编程语言支持,试图从不同的语言中构建统一的代码数据模型。

与 Coca 不同的是,这是一个过程比结果更重要的项目。在实现过程中,逐渐成为代码/代码语法的专家。不同的编程语言有自己独特的语法,需要不断熟悉相关语法。

让我们来看看一个项目的结构:

它适用于 Java、TypeScript、Go 基于此,我们有语言 Chapi 基本数据结构:

然后,我们可以开始将不同的编程语言转换为 JSON。

有了基本模型,程序员应该做的就是我们要做的:AST 解析。我们需要编写各种编程语言 AST,幸运的是,我们已经有了 Antlr。社区也有各种各样的用途 Antlr 编程语言 AST,见 Antlr 官方维护的

https://github.com/antlr/grammars-v4/ 。

然后结合测试分析我们需要的数据:

所以,下面 Java 代码:

可转换为 JSON 对象,存储到数据库中:

国产电动牙刷:国货之光Oclean X Pro电动牙刷评价旗舰版

有了这个 Chapi 生成的 JSON 数据,我们可以:

在代码中找到坏味道

生成数据结构(class/struct)的依赖关系

可视化项目的依赖性

代码自动重构

……

除此,我们也可以:

将 A 语言领域模型转换为 B 语言(在整洁的架构条件下:实现纯编程语言,无第三方依赖)。

将设计模型转化为领域模型

实现领域模型的架构保护

……

想法有多大,Chapi 有多少可能。

Chapi 这是一个史诗项目,所以,如果你想提高你的基础知识,进入开源社区,欢迎加入 Chapi 的开发中。

在这里,你将学会:

真实世界的 Kotlin 实战

成为代码专家

熟悉一种语言和多种语言的语法树分析

TDD 手把手实战

开源项目经验

怎样?一起玩吧!一起玩吧!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。

标签:世界语言转换器:Chapi

智聪说说网
  • 本文由 发表于 2023-03-1204:29:24
  • 转载请务必保留本文链接:https://www.zhicongwang.com/109834.html