Pseudo利用一个算法/一个简单程序,然后在Pytho,JavaScript,C#,Go和Ruby中生成为惯用代码。
Pseudo实现两层翻译:它采取目标语言的语法,可以使用Y语言的本地标准库表达出X语言的标准库的方法/API。
应用实例:
geeratecodeforthesametask/algorithmidifferetlaguages(parsergeeratorsetc)
portalibrary/codebase
developcorelogicioelaguageaduseitiotherlaguagecodebases
writeacompiler/dsl
bootstrapacodebaseiaotherlaguage/geerateequivalettestsuitesidifferetlaguages
traslate/supportsomealgorithmsidifferetlaguages
traslate/supportsometext/dataprocessig/commadtoolidifferetlaguages
安装
pip istall pseudo #oly pytho 3 supported# probably you'd like to try the pytho-to-pseudo-to-js/go/etc compilerpip istall pseudo-pytho用法
你可以在Pytho中直接使用Pseudo-Pytho生成Pseudo抽象语法树。
pseudo-pytho a.py # geerates a.pseudo.yaml然后翻译这个抽象语法树
pseudo a.pseudo.yaml go # or ruby / js / csharp / py / cpp或者你也可以直接从pytho翻译成另一种语言
pseudo-pytho a.py b.rb # or c.cspseudo.geerate(pseudo_ast, laguage)为了快速实验,使用geerate_mai更容易生成
from pseudo import * # ok for a replprit(geerate_mai([ assigmet( local('a', 'It'), call(local('g'), [to_ode(0), to_ode('')], 'It'))], 'rb'))a = g(0, '')未来的Pseudo可以添加一个Lisp的DSL用于快速手动创建抽象语法树的节点,但目前它的主要目标更加有用:消耗自动生成的pseudo抽象语法树,然后将其转译为目标语言。
评论