如何在旧版编译器中为自定义语言创建自己的旧版语言模板?

破碎机vx

我想使用Thrift作为RPC协议从自定义的专有封闭源语言调用Java-Server RPC端点。(某些类似于C的供应商特定的脚本语言)

不存在与此相关的绑定。

如何创建自己的thrift-compiler-plugins来生成特定于语言的代码?在文档上找不到任何内容。有没有类似模板语言的内容?

谢谢

詹斯

如果不存在所需目标语言的绑定,则路线图大致如下:

  • 搜索JIRA,如果没有发现相似的内容,请创建一张新票证,简要描述您的计划。

  • 在GitHub上创建Apache Thrift代码的分支尽管我们接受补丁文件,但是对于较大的更改集,尤其是GitHub分支更容易处理。

  • 实现代码生成器,通常是从现有池中选择一个与您所需的池接近代码生成器已经有很多支持的语言,并且您会找到oop,过程和功能样式。如果有疑问,请从您找到的两个或三个候选人中选择哪个,请转到下一点

  • 通过选择现有库之一作为起点,再次为该特定语言实现Thrift库由于库在实现的“深度”方面存在很大差异,因此建议仔细了解实现的内容和未实现的内容。

  • 实施标准化的Thrift跨平台测试,并确保在至少使用另一种语言运行时所有测试均成功。这样可以确保互操作性,并确保该代码不仅在与您自己交谈时(=同一种语言)有效。

  • 实现教程代码并针对其他语言进行测试。如果一切都做得好,那么最后一步相对来说比较容易。

  • 完成后,现在打开请求请求!

请注意,这4个实施步骤并不是真正的线性过程,它更像是一个迭代过程。即使从生成器发出的代码最终是可编译的,并且不会发出任何警告并且似乎在运行,但是在继续实施库和测试时,您仍然会遇到问题。这是完全正常的并且是预期的。

除此之外,最好将您的工作发布在邮件列表上,并尽早创建JIRA票证(这就是为什么我将其放在列表的顶部)。这不仅用于宣布您将要完成的工作的目的,而且对于其他可能只是在寻找这些东西的人也是一个很好的起点。运气好的话,您不仅可以得到早期的反馈(这总是一件好事),还可以为实现和/或测试提供一些支持。

评论

如果要实现现有语言的新风格,则首选方法是将其添加到现有代码生成器,库等中。要获得良好的模型,请查看nodejs实现或Python已经存在的各种选项。 。thrift --help提供了一个很好的开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

向CMake中的自定义编译器/语言添加额外的编译步骤

如何在自定义语言“上下文”中创建 Intellij 实时模板?

如何在Jekyll 3中为rouge指定自定义语言解析器别名?

用自己的语言编写编译器

如何在消费计划中为 R 语言部署 Azure Functions 自定义处理程序?

如何在C语言中的GTK3中创建自定义窗口小部件?

如何在cmake中添加对自定义android编译器的支持?

如何在Magento中为一个类别创建自定义模板?

如何从自定义语言为某些标记着色?

如何为OSX创建自定义语言

如何在ASP.NET Core(不是旧版本!)中实现自定义UserStore(或自定义身份验证)。

如何在Android项目上设置自定义Java编译器参数?

如何在BigQuery旧版SQL中使用两个不同的自定义维度

如何在 PureScript 中为 SimpleJSON 创建自定义解析器 Monad?

如何在Jackson中为通用类型创建自定义解串器?

如何在scikit-learn中为高斯过程回归器创建自定义内核?

如何在F#中为Xamarin.Forms创建自定义渲染器

如何在mvc中为文本框创建自定义html帮助器

在C ++中创建自定义地图类时,如何在模板中定义和使用比较器

在PhpStorm中创建扩展所有html语言功能的自定义语言

如何在自定义语法(Raku)中重用语言令牌

如何在Java中创建自定义迭代器?

如何在Ember中创建自定义枚举器?

如何使用自定义编译器和自定义标志构建Qt?

使用自定义比较器功能作为模板参数的编译器错误

在C语言中定义值时,编译器如何选择数据类型

将编译器参数设置为新语言插件中的字符串列表

如何在Visual Studio Code中创建自定义按键绑定以将语法突出显示更改为特定语言?

如何在UWP中为特定的SDK定义条件编译器符号