mix-language 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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