Skip to content

Commit 0569d5c

Browse files
committed
Now using the code generator in elixir-estree
1 parent 6e0b94e commit 0569d5c

27 files changed

+59
-132
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ deploy.sh
1313
priv/javascript/scratchpad.js
1414
sample/dest
1515
fprof.trace
16+
index.js

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# v0.7.0-dev
22
* Enhancements
3-
* Now using Exos and node_erlastic for communicating between Elixir and Node
3+
* Now using the JS code generator from elixir-estree for code generation, improving speed of transpilation
44

55
# v0.6.0
66
* Enhancements

lib/elixir_script.ex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
defmodule ElixirScript do
22
alias ElixirScript.Translator.JSModule
3+
alias ESTree.Tools.Builder
4+
alias ESTree.Tools.Generator
35

46
@doc """
57
Parses Elixir code string into JavaScript AST
@@ -38,7 +40,7 @@ defmodule ElixirScript do
3840
file_path = create_file_name(module)
3941

4042
program = ElixirScript.Translator.Module.create_standard_lib_imports(module.stdlibs, root) ++ module.body
41-
|> ESTree.Builder.program
43+
|> ESTree.Tools.Builder.program
4244

4345
{ file_path, program }
4446
end
@@ -53,9 +55,7 @@ defmodule ElixirScript do
5355
@spec javascript_ast_to_code(ESTree.Node.t) :: {:ok, binary} | {:error, binary}
5456
def javascript_ast_to_code(js_ast) do
5557
js_ast = prepare_js_ast(js_ast)
56-
|> Poison.encode!
57-
58-
{:ok, ElixirScript.CodeGenerator.translate(js_ast) }
58+
{:ok, Generator.generate(js_ast) }
5959
end
6060

6161
@doc """
@@ -75,9 +75,9 @@ defmodule ElixirScript do
7575
case js_ast do
7676
modules when is_list(modules) ->
7777
Enum.reduce(modules, [], fn(x, list) -> list ++ x.body end)
78-
|> ESTree.Builder.program
78+
|> Builder.program
7979
%ElixirScript.Translator.Group{body: body} ->
80-
ESTree.Builder.program(body)
80+
Builder.program(body)
8181
_ ->
8282
js_ast
8383
end

lib/elixir_script/app.ex

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/elixir_script/code_generator.ex

Lines changed: 0 additions & 12 deletions
This file was deleted.

lib/elixir_script/translator.ex

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,12 @@ defmodule ElixirScript.Translator do
139139
end
140140

141141

142-
# defp do_translate({:try, _, [ [do: do_block, rescue: clauses, after: after_block] ]}) do
143-
# Control.make_try(do_block, clauses, after_block)
144-
# end
145-
#
146-
# defp do_translate({:try, _, [ [do: do_block, rescue: clauses] ]}) do
147-
# Control.make_try(do_block, clauses)
148-
# end
149-
150-
defp do_translate({:try, _, _expressions}) do
151-
raise ElixirScript.UnsupportedError, ":try"
142+
defp do_translate({:try, _, [ [do: do_block, rescue: clauses, after: after_block] ]}) do
143+
Try.make_try(do_block, clauses, after_block)
144+
end
145+
146+
defp do_translate({:try, _, [ [do: do_block, rescue: clauses] ]}) do
147+
Try.make_try(do_block, clauses)
152148
end
153149

154150
defp do_translate({:receive, _, _expressions }) do

lib/elixir_script/translator/bitstring.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule ElixirScript.Translator.Bitstring do
2-
alias ESTree.Builder
2+
alias ESTree.Tools.Builder
33
alias ElixirScript.Translator
44

55

lib/elixir_script/translator/block.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule ElixirScript.Translator.Block do
2-
alias ESTree.Builder
2+
alias ESTree.Tools.Builder
33
alias ElixirScript.Translator
44

55
def make_block(expressions) do

lib/elixir_script/translator/case.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule ElixirScript.Translator.Case do
2-
alias ESTree.Builder
2+
alias ESTree.Tools.Builder
33
alias ElixirScript.Translator
44
alias ElixirScript.Translator.Function
55
alias ElixirScript.Translator.Utils

lib/elixir_script/translator/cond.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule ElixirScript.Translator.Cond do
2-
alias ESTree.Builder
2+
alias ESTree.Tools.Builder
33
alias ElixirScript.Translator
44
alias ElixirScript.Translator.Function
55
alias ElixirScript.Translator.Utils

0 commit comments

Comments
 (0)