mochiscript 0.4.0.pre14 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mochiscript/core.rb +16 -9
- data/lib/mochiscript.rb +1 -1
- metadata +5 -5
data/lib/mochiscript/core.rb
CHANGED
@@ -252,6 +252,10 @@ var TOKENS = [
|
|
252
252
|
|
253
253
|
[ "STATIC", "static\\b" ],
|
254
254
|
[ "MODULE", "module\\b", 'ModuleParser' ],
|
255
|
+
|
256
|
+
[ "EXPORT", "export\\s+class\\b", 'ClassParser' ],
|
257
|
+
[ "PUBLIC", "public\\s+class\\b", 'ClassParser' ],
|
258
|
+
|
255
259
|
[ "CLASS", "class\\b", 'ClassParser' ],
|
256
260
|
[ "FUNCTION", "function\\b" ],
|
257
261
|
[ "INCLUDE", "include\\b" ],
|
@@ -453,7 +457,7 @@ JS2.Class.extend('RootParser', function(KLASS, OO){
|
|
453
457
|
OO.addMember("toString",function () {
|
454
458
|
var ret = [];
|
455
459
|
for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
|
456
|
-
ret.push(ele.toString());
|
460
|
+
ret.push(ele === undefined ? '' : ele.toString());
|
457
461
|
}
|
458
462
|
return ret.join("");
|
459
463
|
});
|
@@ -468,6 +472,11 @@ JS2.Class.extend('RootParser', function(KLASS, OO){
|
|
468
472
|
var ret = [ space + (this._TYPE || 'NODE') ];
|
469
473
|
var generic = [];
|
470
474
|
for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
|
475
|
+
if (ele === undefined) {
|
476
|
+
ret.push(space + " UNDEFINED!");
|
477
|
+
continue;
|
478
|
+
}
|
479
|
+
|
471
480
|
if (ele.pp) {
|
472
481
|
if (generic.length) {
|
473
482
|
ret.push(space + " TOKENS:" + JSON.stringify(generic.join('')));
|
@@ -511,24 +520,22 @@ var RootParser = $c.RootParser;
|
|
511
520
|
RootParser.extend('ClassParser', function(KLASS, OO){
|
512
521
|
// private closure
|
513
522
|
|
514
|
-
var REGEX = Tokens.regex("
|
515
|
-
var EXTENDS = Tokens.regex("
|
523
|
+
var REGEX = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><LCURLY>");
|
524
|
+
var EXTENDS = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><EXTENDS><CLASSNAME><LCURLY>");
|
516
525
|
|
517
526
|
|
518
527
|
OO.addMember("parse",function (tokens) {
|
519
528
|
var m = tokens.match(REGEX) || tokens.match(EXTENDS);
|
520
|
-
var name = m[
|
521
|
-
var extending = m[
|
529
|
+
var name = m[4];
|
530
|
+
var extending = m[6] || "$m.Class";
|
522
531
|
|
523
532
|
tokens.consume(m[0].length-1);
|
524
533
|
|
525
534
|
var content = new $c.ClassContentParser();
|
526
535
|
content.parse(tokens);
|
527
536
|
|
528
|
-
var
|
529
|
-
var
|
530
|
-
var isExports = ($m.PLATFORM == 'node' && behind == 'export') ? "\nmodule.exports." + name + '=' + name + ';' : '';
|
531
|
-
|
537
|
+
var isPublic = ($m.PLATFORM == 'node' && m[2] == 'public') ? "\nexports." + name + '=' + name + ';' : '';
|
538
|
+
var isExports = ($m.PLATFORM == 'node' && m[1] == 'export') ? "\nmodule.exports." + name + '=' + name + ';' : '';
|
532
539
|
|
533
540
|
this.out = [ "var ", name, " = " + extending + ".extend(function(KLASS, OO)", content, ");", isPublic, isExports ];
|
534
541
|
});
|
data/lib/mochiscript.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mochiscript
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 0.4.0
|
4
|
+
prerelease:
|
5
|
+
version: 0.4.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jeff Su
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-11-
|
13
|
+
date: 2011-11-02 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: therubyracer
|
@@ -69,9 +69,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
70
|
none: false
|
71
71
|
requirements:
|
72
|
-
- - "
|
72
|
+
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
74
|
+
version: "0"
|
75
75
|
requirements: []
|
76
76
|
|
77
77
|
rubyforge_project: mochiscript
|