@@ -2784,6 +2784,9 @@ var p5100 = p5pkg['main'];
2784
2784
}], null);
2785
2785
p5pkg["Perlito5::Grammar::Statement"].add_statement(['package', function (List__, p5want) {
2786
2786
return (p5call(p5pkg["Perlito5::Grammar::Statement"], "stmt_package", p5list_to_a(List__.p5aget(0), List__.p5aget(1)), p5want));
2787
+ }], null);
2788
+ p5pkg["Perlito5::Grammar::Statement"].add_statement(['format', function (List__, p5want) {
2789
+ return (p5call(p5pkg["Perlito5::Grammar::Statement"], "stmt_format", p5list_to_a(List__.p5aget(0), List__.p5aget(1)), p5want));
2787
2790
}], null);
2788
2791
p5typeglob_set("Perlito5::Grammar::Statement", "stmt_yadayada", function (List__, p5want) {
2789
2792
var v_grammar;
@@ -2802,6 +2805,78 @@ var p5100 = p5pkg['main'];
2802
2805
})()], 0) })], 0)], 0));
2803
2806
return (( p5bool(v_tmp) ? v_MATCH : 0));
2804
2807
});
2808
+ p5typeglob_set("Perlito5::Grammar::Statement", "stmt_format", function (List__, p5want) {
2809
+ var v_grammar;
2810
+ v_grammar = (List__.p5aget(0));
2811
+ var v_str;
2812
+ v_str = (List__.p5aget(1));
2813
+ var v_pos;
2814
+ v_pos = (List__.p5aget(2));
2815
+ var v_MATCH;
2816
+ v_MATCH = ((new p5HashRef({'str' : v_str, 'from' : v_pos, 'to' : v_pos})));
2817
+ var v_tmp;
2818
+ v_tmp = (p5context([p5context([p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('format' == p5pkg["Perlito5::Grammar::Statement"].substr([v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to'), 6], 0)), function () { return p5context([(v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((6 + p5num((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')))))], 0) })], 0), function () { return p5context([(function () {
2819
+ var v_m2;
2820
+ v_m2 = (p5call(p5pkg["Perlito5::Grammar::Space"], "ws", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
2821
+ if ( p5bool(v_m2) ) {
2822
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
2823
+ return (p5context([1], p5want));
2824
+ }
2825
+ else {
2826
+ return (p5context([0], p5want));
2827
+ }
2828
+ })()], 0) }), function () { return p5context([(function () {
2829
+ var v_pos1;
2830
+ v_pos1 = ((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to'));
2831
+ return (p5or(p5context([(function () {
2832
+ var v_m2;
2833
+ v_m2 = (p5call(p5pkg["Perlito5::Grammar"], "full_ident", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
2834
+ if ( p5bool(v_m2) ) {
2835
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
2836
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.full_ident', (v_m2));
2837
+ return (p5context([1], p5want));
2838
+ }
2839
+ else {
2840
+ return (p5context([0], p5want));
2841
+ }
2842
+ })()], 0), function () { return p5context([(function () {
2843
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', (v_pos1));
2844
+ return (p5context([(function () {
2845
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('str', (v_str));
2846
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.full_ident', ('STDOUT'));
2847
+ return (p5context([1], p5want));
2848
+ })()], p5want));
2849
+ })()], p5want) }));
2850
+ })()], 0) }), function () { return p5context([(function () {
2851
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('str', (v_str));
2852
+ var v_placeholder;
2853
+ v_placeholder = (p5call(p5pkg["Perlito5::AST::Apply"], "new", p5list_to_a('code', 'list:<.>', 'namespace', '', 'arguments', (new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"], "new", p5list_to_a('code', 'list:<.>', 'namespace', '', 'arguments', (new p5ArrayRef([]))), 1))))), 0));
2854
+ p5global_array("Perlito5::Grammar::String", "Here_doc").p5push(p5list_to_a((new p5ArrayRef(p5list_to_a('single_quote', (v_placeholder || (v_placeholder = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('arguments'), '.')))));
2855
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('capture', (p5call(p5pkg["Perlito5::AST::Decl"], "new", p5list_to_a('decl', 'FORMAT', 'type', null, 'var', p5call(p5pkg["Perlito5::AST::Var"], "new", p5list_to_a('name', p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.full_ident')), 1), 'namespace', '', 'sigil', 'FORMAT', 'value', v_placeholder), 1)), 0)));
2856
+ return (p5context([1], p5want));
2857
+ })()], 0) }), function () { return p5context([(function () {
2858
+ var v_m2;
2859
+ v_m2 = (p5call(p5pkg["Perlito5::Grammar::Space"], "opt_ws", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
2860
+ if ( p5bool(v_m2) ) {
2861
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
2862
+ return (p5context([1], p5want));
2863
+ }
2864
+ else {
2865
+ return (p5context([0], p5want));
2866
+ }
2867
+ })()], 0) }), function () { return p5context([p5and(('=' == p5pkg["Perlito5::Grammar::Statement"].substr([v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to'), 1], 0)), function () { return p5context([(v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((1 + p5num((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')))))], 0) })], 0) }), function () { return p5context([(function () {
2868
+ var v_m2;
2869
+ v_m2 = (p5call(p5pkg["Perlito5::Grammar::Space"], "ws", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
2870
+ if ( p5bool(v_m2) ) {
2871
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
2872
+ return (p5context([1], p5want));
2873
+ }
2874
+ else {
2875
+ return (p5context([0], p5want));
2876
+ }
2877
+ })()], 0) })], 0)], 0));
2878
+ return (( p5bool(v_tmp) ? v_MATCH : 0));
2879
+ });
2805
2880
p5typeglob_set("Perlito5::Grammar::Statement", "stmt_package", function (List__, p5want) {
2806
2881
var v_grammar;
2807
2882
v_grammar = (List__.p5aget(0));
@@ -6489,7 +6564,8 @@ return (p5call(p5pkg["Perlito5::AST::Val::Buf"], "new", ['buf', p5pkg["Perlito5:
6489
6564
};
6490
6565
return ((new p5HashRef({'str' : v_str, 'from' : v_pos, 'to' : v_p, 'capture' : v_ast})));
6491
6566
});
6492
- var List_Here_doc= [];
6567
+ if (typeof p5pkg["Perlito5::Grammar::String"]["List_Here_doc"] == "undefined" ) { p5pkg["Perlito5::Grammar::String"]["List_Here_doc"]= [];};
6568
+ p5pkg["Perlito5::Grammar::String"]["List_Here_doc"];
6493
6569
p5typeglob_set("Perlito5::Grammar::String", "here_doc_wanted", function (List__, p5want) {
6494
6570
try {
6495
6571
var v_self;
@@ -6544,7 +6620,7 @@ return (p5call(p5pkg["Perlito5::AST::Val::Buf"], "new", ['buf', p5pkg["Perlito5:
6544
6620
};
6545
6621
var v_placeholder;
6546
6622
v_placeholder = (p5call(p5pkg["Perlito5::AST::Apply"], "new", p5list_to_a('code', 'list:<.>', 'namespace', '', 'arguments', (new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"], "new", p5list_to_a('code', 'list:<.>', 'namespace', '', 'arguments', (new p5ArrayRef([]))), 1))))), 0));
6547
- List_Here_doc.p5push(p5list_to_a((new p5ArrayRef(p5list_to_a(v_type, (v_placeholder || (v_placeholder = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('arguments'), v_delimiter)))));
6623
+ p5pkg["Perlito5::Grammar::String"][" List_Here_doc"] .p5push(p5list_to_a((new p5ArrayRef(p5list_to_a(v_type, (v_placeholder || (v_placeholder = new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('arguments'), v_delimiter)))));
6548
6624
return ((new p5HashRef(p5a_to_h(p5list_to_a('str', v_str, 'from', v_pos, 'to', v_p, 'capture', (new p5ArrayRef(['term', v_placeholder])))))));
6549
6625
}
6550
6626
catch(err) {
@@ -6600,13 +6676,13 @@ return (p5call(p5pkg["Perlito5::AST::Val::Buf"], "new", ['buf', p5pkg["Perlito5:
6600
6676
v_str = (List__.p5aget(1));
6601
6677
var v_pos;
6602
6678
v_pos = (List__.p5aget(2));
6603
- if ( !( p5bool(List_Here_doc.length)) ) {
6679
+ if ( !( p5bool(p5pkg["Perlito5::Grammar::String"][" List_Here_doc"] .length)) ) {
6604
6680
throw((new p5HashRef({'str' : v_str, 'from' : v_pos, 'to' : v_pos})));
6605
6681
};
6606
6682
var v_p;
6607
6683
v_p = (v_pos);
6608
6684
var v_here;
6609
- v_here = (List_Here_doc.shift());
6685
+ v_here = (p5pkg["Perlito5::Grammar::String"][" List_Here_doc"] .shift());
6610
6686
var v_type;
6611
6687
v_type = ((v_here || (v_here = new p5ArrayRef([])))._array_.p5aget(0));
6612
6688
var v_result;
0 commit comments