@@ -2115,6 +2115,7 @@ var p5100 = p5pkg['main'];
2115
2115
p5make_sub("Perlito5::AST::Use", "code", function (List__, p5want) {
2116
2116
return (List__.p5aget_hash(0)._hash_.p5hget('code'));
2117
2117
});
2118
+ 1;
2118
2119
})()
2119
2120
;
2120
2121
(function () {
@@ -2172,6 +2173,8 @@ var p5100 = p5pkg['main'];
2172
2173
// use Perlito5::AST
2173
2174
;
2174
2175
// use Perlito5::Dumper
2176
+ ;
2177
+ // use strict
2175
2178
;
2176
2179
var p5127 = p5make_package("Perlito5::Javascript2");
2177
2180
p5for_lex(function () {
@@ -3384,6 +3387,8 @@ var p5100 = p5pkg['main'];
3384
3387
}, [0], false, "");
3385
3388
var p5140 = p5make_package("Perlito5::AST::Apply");
3386
3389
p5for_lex(function () {
3390
+ // no strict
3391
+ ;
3387
3392
p5make_sub("Perlito5::AST::Apply", "emit_regex_javascript2", function (List__, p5want) {
3388
3393
try {
3389
3394
var v_op;
@@ -3536,13 +3541,17 @@ var p5100 = p5pkg['main'];
3536
3541
}, 'require', function (List__, p5want) {
3537
3542
var v_self;
3538
3543
(v_self = (List__.p5aget(0)));
3544
+ var v_level;
3545
+ (v_level = (List__.p5aget(1)));
3539
3546
return (p5context([('p5pkg["Perlito5::Grammar::Use"]["require"]([' + p5str(p5pkg["Perlito5::Javascript2"].to_str(p5list_to_a((v_self || (v_self = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)), 0)) + ', ' + p5str(( p5bool((v_self || (v_self = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('bareword')) ? 1 : 0)) + '])')], p5want));
3540
3547
}, 'prefix:<$>', function (List__, p5want) {
3541
3548
var v_self;
3542
3549
(v_self = (List__.p5aget(0)));
3550
+ var v_level;
3551
+ (v_level = (List__.p5aget(1)));
3543
3552
var v_arg;
3544
3553
(v_arg = ((v_self || (v_self = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));
3545
- return (p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify([v_arg, p5pkg["Perlito5::AST::Apply"][" v_level"] , 'scalar'], 0)) + '._scalar_')], p5want));
3554
+ return (p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify([v_arg, v_level, 'scalar'], 0)) + '._scalar_')], p5want));
3546
3555
}, 'prefix:<@>', function (List__, p5want) {
3547
3556
var v_self;
3548
3557
(v_self = (List__.p5aget(0)));
@@ -3578,11 +3587,15 @@ var p5100 = p5pkg['main'];
3578
3587
}, 'circumfix:<[ ]>', function (List__, p5want) {
3579
3588
var v_self;
3580
3589
(v_self = (List__.p5aget(0)));
3590
+ var v_level;
3591
+ (v_level = (List__.p5aget(1)));
3581
3592
return (p5context([('(new p5ArrayRef(' + p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self || (v_self = new p5HashRef({})))._hash_.p5hget('arguments')), 0)) + '))')], p5want));
3582
3593
}, 'circumfix:<{ }>', function (List__, p5want) {
3583
3594
var v_self;
3584
3595
(v_self = (List__.p5aget(0)));
3585
- return (p5context([('(new p5HashRef(' + p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self || (v_self = new p5HashRef({})))._hash_.p5hget('arguments'), p5pkg["Perlito5::AST::Apply"]["v_level"], 'hash'), 0)) + '))')], p5want));
3596
+ var v_level;
3597
+ (v_level = (List__.p5aget(1)));
3598
+ return (p5context([('(new p5HashRef(' + p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self || (v_self = new p5HashRef({})))._hash_.p5hget('arguments'), v_level, 'hash'), 0)) + '))')], p5want));
3586
3599
}, 'prefix:<' + String.fromCharCode(92) + '>', function (List__, p5want) {
3587
3600
try {
3588
3601
var v_self;
@@ -3731,15 +3744,21 @@ var p5100 = p5pkg['main'];
3731
3744
}, 'infix:<..>', function (List__, p5want) {
3732
3745
var v_self;
3733
3746
(v_self = (List__.p5aget(0)));
3747
+ var v_level;
3748
+ (v_level = (List__.p5aget(1)));
3734
3749
return (p5context([('(function (a) { ' + 'for (var i=' + p5str(p5call((v_self || (v_self = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0), "emit_javascript2", [], 0)) + ', l=' + p5str(p5call((v_self || (v_self = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1), "emit_javascript2", [], 0)) + '; ' + 'i<=l; ++i)' + '{ ' + 'a.push(i) ' + '}; ' + 'return a ' + '})([])')], p5want));
3735
3750
}, 'delete', function (List__, p5want) {
3736
3751
var v_self;
3737
3752
(v_self = (List__.p5aget(0)));
3753
+ var v_level;
3754
+ (v_level = (List__.p5aget(1)));
3738
3755
return (p5context([('(delete ' + p5str(p5call((v_self || (v_self = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0), "emit_javascript2", [], 0)) + ')')], p5want));
3739
3756
}, 'scalar', function (List__, p5want) {
3740
3757
var v_self;
3741
3758
(v_self = (List__.p5aget(0)));
3742
- return (p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((v_self || (v_self = new p5HashRef({})))._hash_.p5hget('arguments'), (p5num(p5pkg["Perlito5::AST::Apply"]["v_level"]) + 1)), p5want));
3759
+ var v_level;
3760
+ (v_level = (List__.p5aget(1)));
3761
+ return (p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((v_self || (v_self = new p5HashRef({})))._hash_.p5hget('arguments'), (p5num(v_level) + 1)), p5want));
3743
3762
}, 'ternary:<? :>', function (List__, p5want) {
3744
3763
var v_self;
3745
3764
(v_self = (List__.shift()));
@@ -4395,8 +4414,10 @@ var p5100 = p5pkg['main'];
4395
4414
(v_body = (p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"], "new", p5list_to_a('block', p5call((v_self || (v_self = new p5HashRef({})))._hash_.p5hget('body'), "stmts", [], 1), 'needs_return', 0, 'create_context', 1), 0)));
4396
4415
var v_expr;
4397
4416
(v_expr = (p5call(p5pkg["Perlito5::AST::Apply"], "new", p5list_to_a('code', 'infix:<==>', 'arguments', (new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Var"], "new", ['sigil', '$', 'namespace', '', 'name', '_'], 1), v_cond)))), 0)));
4417
+ var v_label;
4418
+ (v_label = (''));
4398
4419
var v_s;
4399
- (v_s = (('if ( ' + p5str(p5pkg["Perlito5::Javascript2"].to_bool([v_expr, (p5num(v_level) + 1)], 0)) + ' ) {' + String.fromCharCode(10) + p5str(p5call(v_body, "emit_javascript2", [(p5num(v_level) + 1)], 0)) + String.fromCharCode(10) + p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level) + 1)], 0)) + 'throw(new p5_error("next", "' + p5str(p5pkg["Perlito5::AST::When"][" v_label"] ) + '"))' + p5str(p5pkg["Perlito5::Javascript2"].tab([v_level], 0)) + '}')));
4420
+ (v_s = (('if ( ' + p5str(p5pkg["Perlito5::Javascript2"].to_bool([v_expr, (p5num(v_level) + 1)], 0)) + ' ) {' + String.fromCharCode(10) + p5str(p5call(v_body, "emit_javascript2", [(p5num(v_level) + 1)], 0)) + String.fromCharCode(10) + p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level) + 1)], 0)) + 'throw(new p5_error("next", "' + p5str(v_label) + '"))' + p5str(p5pkg["Perlito5::Javascript2"].tab([v_level], 0)) + '}')));
4400
4421
return (p5context([v_s], p5want));
4401
4422
});
4402
4423
}, [0], false, "");
@@ -4511,6 +4532,8 @@ var p5100 = p5pkg['main'];
4511
4532
;
4512
4533
(function () {
4513
4534
var p5148 = p5make_package("Perlito5::Precedence");
4535
+ // use feature
4536
+ ;
4514
4537
p5make_sub("Perlito5::Precedence", "new", function (List__, p5want) {
4515
4538
var v_class;
4516
4539
(v_class = (List__.shift()));
@@ -4881,7 +4904,7 @@ var p5100 = p5pkg['main'];
4881
4904
(v_op_stack || (v_op_stack = new p5ArrayRef([])))._array_.p5unshift([v_token]);
4882
4905
}
4883
4906
else {
4884
- if ( (p5bool((p5context([( v_Operator || (v_Operator = new p5HashRef({})))._hash_.p5hget ('postfix')], 0) || (p5context([(v_Operator || (v_Operator = new p5HashRef({})))._hash_.p5hget('postfix')], 0) = new p5HashRef({})) )._hash_.p5hget(p5str((v_token || (v_token = new p5ArrayRef([])))._array_.p5aget(1)))) && p5bool(v_last_is_term)) ) {
4907
+ if ( (p5bool((v_Operator || (v_Operator = new p5HashRef({})))._hash_.p5hget_hash ('postfix')._hash_.p5hget(p5str((v_token || (v_token = new p5ArrayRef([])))._array_.p5aget(1)))) && p5bool(v_last_is_term)) ) {
4885
4908
(function () {
4886
4909
var v_pr;
4887
4910
(v_pr = ((v_Precedence || (v_Precedence = new p5HashRef({})))._hash_.p5hget(p5str((v_token || (v_token = new p5ArrayRef([])))._array_.p5aget(1)))));
@@ -4957,6 +4980,8 @@ var p5100 = p5pkg['main'];
4957
4980
;
4958
4981
(function () {
4959
4982
var p5149 = p5make_package("Perlito5::Grammar::Bareword");
4983
+ // use strict
4984
+ ;
4960
4985
p5make_sub("Perlito5::Grammar::Bareword", "term_bareword", function (List__, p5want) {
4961
4986
try {
4962
4987
var v_self;
@@ -4981,9 +5006,14 @@ var p5100 = p5pkg['main'];
4981
5006
};
4982
5007
throw(p5context([], p5want));
4983
5008
};
4984
- (v_p = ((v_m_name || (v_m_name = new p5HashRef({})))._hash_.p5hget('to')));
4985
5009
var v_name;
4986
5010
(v_name = (p5pkg["Perlito5::Match"].flat([v_m_name], 0)));
5011
+ (v_p = ((v_m_name || (v_m_name = new p5HashRef({})))._hash_.p5hget('to')));
5012
+ if ( (p5pkg["Perlito5::Grammar::Bareword"].substr([v_str, v_p, 2], 0) == '::') ) {
5013
+ (v_m_name || (v_m_name = new p5HashRef({})))._hash_.p5hset('to', ((p5num(v_p) + 2)));
5014
+ (v_m_name || (v_m_name = new p5HashRef({})))._hash_.p5hset('capture', ((new p5ArrayRef(p5list_to_a('term', p5call(p5pkg["Perlito5::AST::Var"], "new", ['sigil', '::', 'name', '', 'namespace', (p5str(v_namespace) + '::' + p5str(v_name))], 1))))));
5015
+ throw(p5context([v_m_name], p5want));
5016
+ };
4987
5017
var v_full_name;
4988
5018
(v_full_name = (v_name));
4989
5019
if ( p5bool(v_namespace) ) {
@@ -9939,6 +9969,8 @@ var p5100 = p5pkg['main'];
9939
9969
// use Perlito5::Precedence
9940
9970
;
9941
9971
// use Perlito5::Grammar
9972
+ ;
9973
+ // use strict
9942
9974
;
9943
9975
p5pkg["Perlito5::Precedence"].add_term(['no', function (List__, p5want) {
9944
9976
return (p5call(p5pkg["Perlito5::Grammar::Use"], "term_use", p5list_to_a(List__.p5aget(0), List__.p5aget(1)), p5want));
@@ -10345,11 +10377,12 @@ return r;
10345
10377
if ( (p5str(p5pkg["Perlito5::Grammar::Use"].filename_lookup([v_filename], 0)) == 'done') ) {
10346
10378
throw(p5context([], p5want));
10347
10379
};
10348
- (p5pkg["Perlito5::Grammar::Use"]["v_result"] = ((function (p5want) {
10380
+ var v_result;
10381
+ (v_result = ((function (p5want) {
10349
10382
var r;
10350
10383
p5pkg["main"]["v_@"] = "";
10351
10384
try {
10352
- r = eval(perl5_to_js(p5str(p5pkg["Perlito5::IO"].slurp(p5list_to_a(p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename))), 0)), "Perlito5::Grammar::Use", (new p5ArrayRef(p5list_to_a((new p5HashRef(p5a_to_h(p5list_to_a('$filename', (new p5HashRef({'decl' : 'my'})), '$is_bareword', (new p5HashRef({'decl' : 'my'})))))), (new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '$_', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '$a', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '$b', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '%Perlito_internal_module', (new p5HashRef({'decl' : 'my'})))))), (new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})), '$_', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})), '$a', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})), '$b', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})))))), (new p5HashRef(p5a_to_h(p5list_to_a('$@', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$AUTOLOAD', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$^O', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$_', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$a', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$b', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$|', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '%ENV', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '%INC', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@#', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@ARGV', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@INC', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@_', (new p5HashRef({'decl' : 'my'}))))))))), ""))
10385
+ r = eval(perl5_to_js(p5str(p5pkg["Perlito5::IO"].slurp(p5list_to_a(p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename))), 0)), "Perlito5::Grammar::Use", (new p5ArrayRef(p5list_to_a((new p5HashRef(p5a_to_h(p5list_to_a('$filename', (new p5HashRef({'decl' : 'my'})), '$is_bareword', (new p5HashRef({'decl' : 'my'})), '$result', (new p5HashRef({'decl' : 'my'})))))), (new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '$_', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '$a', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '$b', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5::Grammar::Use'})), '%Perlito_internal_module', (new p5HashRef({'decl' : 'my'})))))), (new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})), '$_', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})), '$a', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})), '$b', (new p5HashRef({'decl' : 'our', 'namespace' : 'Perlito5'})))))), (new p5HashRef(p5a_to_h(p5list_to_a('$@', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$AUTOLOAD', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$^O', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$_', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$a', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$b', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '$|', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '%ENV', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '%INC', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@#', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@ARGV', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@INC', (new p5HashRef({'decl' : 'our', 'namespace' : 'main'})), '@_', (new p5HashRef({'decl' : 'my'}))))))))), ""))
10353
10386
}
10354
10387
catch(err) {
10355
10388
if ( err instanceof p5_error || err instanceof Error ) {
@@ -10371,7 +10404,7 @@ return r;
10371
10404
}
10372
10405
10373
10406
else {
10374
- if ( !( p5bool(p5pkg["Perlito5::Grammar::Use"][" v_result"] )) ) {
10407
+ if ( !( p5bool(v_result)) ) {
10375
10408
(delete p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename)));
10376
10409
if ( p5bool(p5pkg["main"]["v_@"]) ) {
10377
10410
p5pkg["Perlito5::Grammar::Use"].warn([[p5pkg["main"]["v_@"]]], null);
@@ -10380,7 +10413,7 @@ return r;
10380
10413
}
10381
10414
10382
10415
else {
10383
- throw(p5context([p5pkg["Perlito5::Grammar::Use"][" v_result"] ], p5want))
10416
+ throw(p5context([v_result], p5want))
10384
10417
}
10385
10418
}
10386
10419
}
@@ -10399,6 +10432,8 @@ return r;
10399
10432
(function () {
10400
10433
var p5155 = p5make_package("Perlito5::Grammar::Block");
10401
10434
// use Perlito5::Expression
10435
+ ;
10436
+ // use strict
10402
10437
;
10403
10438
// our p5pkg["Perlito5::Grammar::Block"]["Hash_Named_block"]
10404
10439
(p5pkg["Perlito5::Grammar::Block"]["Hash_Named_block"] = {'BEGIN' : 1, 'UNITCHECK' : 1, 'CHECK' : 1, 'INIT' : 1, 'END' : 1});
@@ -10687,9 +10722,10 @@ return r;
10687
10722
else {
10688
10723
throw(p5context([], p5want));
10689
10724
};
10690
- (p5pkg["Perlito5::Grammar::Block"]["v_p"] = ((v_ws || (v_ws = new p5HashRef({})))._hash_.p5hget('to')));
10725
+ var v_p;
10726
+ (v_p = ((v_ws || (v_ws = new p5HashRef({})))._hash_.p5hget('to')));
10691
10727
var v_m_name;
10692
- (v_m_name = (p5call(p5pkg["Perlito5::Grammar"], "ident", [v_str, p5pkg["Perlito5::Grammar::Block"][" v_p"] ], 0)));
10728
+ (v_m_name = (p5call(p5pkg["Perlito5::Grammar"], "ident", [v_str, v_p], 0)));
10693
10729
if ( p5bool(v_m_name) ) {
10694
10730
null;
10695
10731
}
@@ -10699,9 +10735,9 @@ return r;
10699
10735
var v_block_name;
10700
10736
(v_block_name = (p5pkg["Perlito5::Match"].flat([v_m_name], 0)));
10701
10737
if ( (p5pkg["Perlito5::Grammar::Block"]["Hash_Named_block"]).hasOwnProperty(v_block_name) ) {
10702
- throw(p5call(p5pkg["Perlito5::Grammar::Block"], "term_block", [v_str, p5pkg["Perlito5::Grammar::Block"][" v_p"] ], p5want));
10738
+ throw(p5call(p5pkg["Perlito5::Grammar::Block"], "term_block", [v_str, v_p], p5want));
10703
10739
};
10704
- return (p5call(p5pkg["Perlito5::Grammar::Block"], "named_sub_def", [v_str, p5pkg["Perlito5::Grammar::Block"][" v_p"] ], p5want));
10740
+ return (p5call(p5pkg["Perlito5::Grammar::Block"], "named_sub_def", [v_str, v_p], p5want));
10705
10741
}
10706
10742
catch(err) {
10707
10743
if ( err instanceof Error ) {
0 commit comments