所以开始在LuvvieScript上取得进展,然后在Twitter上开始了一些... https://twitter.com/gordonguthrie/status/389659700741943296
Anthony Ramine https://twitter.com/nokusu指出我做错了,我应该通过Core Erlang而不是Erlang AST从Erlang编译成JavaScript.这对我来说是一个引人注目但又没有吸引力的选择......推特不是讨论的正确媒介我想我会在这里写下来并得到一些建议.
LuvvieScript有三个核心要求:
这些选项中的第三个有点超出了本次辩论的范围,但前两个是核心.
有一个懒惰的结果 - 我想尽可能多地使用Erlang和Javascript语法工具(词法分析器,解析器,标记器,AST变换等等)并编写最少量的代码.
代码当前的编写方式如下:
基本上我得到一个看起来像这样的Erlang AST:
[{function,
{19,{1,9}},
atom1_fn,0,
[{clause,
{19,none},
[],
[[]],
[{match,
{20,none},
[{var,{20,{5,6}},'D'}],
[{atom,{20,{11,15}},blue}]},
{var,{21,{5,6}},'D'}]}]}]},
Run Code Online (Sandbox Code Playgroud)
然后我将其转换为Javascript JSON AST,如下所示:
{
"type": "Program",
"body": [
{
"type": "VariableDeclaration",
"declarations": [
{
"type": "VariableDeclarator",
"id": {
"type": "Identifier",
"name": "answer",
"loc": {
"start": {
"line": 2,
"column": …Run Code Online (Sandbox Code Playgroud) javascript compiler-construction erlang source-maps coreerlang