mix-language 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/mix-compile +3 -14
- data/lib/javascript/base/array.js +1 -1
- data/lib/javascript/base/env.js +2 -1
- data/lib/javascript/base/eval.js +6 -7
- data/lib/javascript/base/false.js +1 -1
- data/lib/javascript/base/function.js +1 -1
- data/lib/javascript/base/null.js +1 -1
- data/lib/javascript/base/number.js +1 -1
- data/lib/javascript/base/object.js +1 -1
- data/lib/javascript/base/string.js +1 -1
- data/lib/javascript/base/true.js +1 -1
- data/lib/javascript/dom/div.js +1 -1
- data/lib/javascript/dom/drag.js +1 -1
- data/lib/javascript/dom/element.js +1 -1
- data/lib/javascript/dom/event.js +1 -1
- data/lib/javascript/dom/mouse.js +1 -1
- data/lib/javascript/dom/table.js +1 -1
- data/lib/javascript/dom/td.js +1 -1
- data/lib/javascript/dom/text.js +1 -1
- data/lib/javascript/dom/tr.js +1 -1
- data/lib/ruby/compiler.rb +38 -501
- data/lib/ruby/mix.grammar +13 -13
- data/lib/ruby/mix.tab.rb +453 -464
- data/lib/ruby/new_tokenizer.rb +290 -0
- data/lib/ruby/parser.rb +71 -0
- data/lib/ruby/precompiler.rb +106 -0
- data/lib/ruby/tokenizer.rb +268 -0
- data/lib/ruby/translator.rb +179 -0
- metadata +7 -2
data/bin/mix-compile
CHANGED
@@ -1,26 +1,15 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
# encoding: UTF-8
|
3
3
|
#
|
4
|
-
# Copyright © 2011 Jesse Sielaff
|
4
|
+
# Copyright © 2011-2012 Jesse Sielaff
|
5
5
|
#
|
6
6
|
require_relative '../lib/ruby/compiler.rb'
|
7
7
|
|
8
8
|
Encoding.default_external = "UTF-8"
|
9
9
|
|
10
|
-
unless
|
10
|
+
unless filename = ARGV[0]
|
11
11
|
puts "usage: mix-compile [filename]"
|
12
12
|
exit
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
filename = basename + '.mix'
|
17
|
-
|
18
|
-
unless File.exists?(filename)
|
19
|
-
puts "no such file #{filename}"
|
20
|
-
exit
|
21
|
-
end
|
22
|
-
|
23
|
-
compiler = MixCompiler.new(filename)
|
24
|
-
js_string = compiler.compile
|
25
|
-
|
26
|
-
File.open(basename + '.js','w') {|f| f.write(js_string) }
|
15
|
+
MixCompiler.new.compile(filename)
|
data/lib/javascript/base/env.js
CHANGED
data/lib/javascript/base/eval.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* Copyright © 2011 Jesse Sielaff
|
2
|
+
* Copyright © 2011-2012 Jesse Sielaff
|
3
3
|
*/
|
4
4
|
|
5
5
|
function evaluate (node)
|
@@ -102,10 +102,9 @@ function evaluate (node)
|
|
102
102
|
return FALSE;
|
103
103
|
|
104
104
|
case function:
|
105
|
-
var
|
106
|
-
var
|
107
|
-
var
|
108
|
-
var embedded = variables[1];
|
105
|
+
var parameters = node[1];
|
106
|
+
var embedded = node[2];
|
107
|
+
var body_statement = node[3];
|
109
108
|
var embedded_values = [];
|
110
109
|
|
111
110
|
for (var name, i = 0, l = embedded.length; i < l; ++i)
|
@@ -164,9 +163,9 @@ function evaluate (node)
|
|
164
163
|
}
|
165
164
|
|
166
165
|
case mix:
|
167
|
-
var
|
168
|
-
var name = SYMBOLS[node[2]];
|
166
|
+
var name = SYMBOLS[node[1]];
|
169
167
|
var mixin = (MIXINS[name] = MIXINS[name] || {functions: {}});
|
168
|
+
var obj = evaluate(node[2]);
|
170
169
|
|
171
170
|
copy_functions(obj, mixin);
|
172
171
|
|
data/lib/javascript/base/null.js
CHANGED
data/lib/javascript/base/true.js
CHANGED
data/lib/javascript/dom/div.js
CHANGED
data/lib/javascript/dom/drag.js
CHANGED
data/lib/javascript/dom/event.js
CHANGED
data/lib/javascript/dom/mouse.js
CHANGED
data/lib/javascript/dom/table.js
CHANGED
data/lib/javascript/dom/td.js
CHANGED
data/lib/javascript/dom/text.js
CHANGED
data/lib/javascript/dom/tr.js
CHANGED