@@ -3835,16 +3835,17 @@ var p5100 = p5pkg['main'];
3835
3835
return (( p5bool(v_tmp) ? v_MATCH : 0));
3836
3836
});
3837
3837
p5typeglob_set("Perlito5::Grammar::Expression", "term_declarator", function (List__, p5want) {
3838
- var v_grammar;
3839
- v_grammar = (List__.p5aget(0));
3840
- var v_str;
3841
- v_str = (List__.p5aget(1));
3842
- var v_pos;
3843
- v_pos = (List__.p5aget(2));
3844
- var v_MATCH;
3845
- v_MATCH = ((new p5HashRef({'str' : v_str, 'from' : v_pos, 'to' : v_pos})));
3846
- var v_tmp;
3847
- v_tmp = (p5context([p5context([p5and(p5and(p5and(p5and(p5and(p5context([(function () {
3838
+ try {
3839
+ var v_grammar;
3840
+ v_grammar = (List__.p5aget(0));
3841
+ var v_str;
3842
+ v_str = (List__.p5aget(1));
3843
+ var v_pos;
3844
+ v_pos = (List__.p5aget(2));
3845
+ var v_MATCH;
3846
+ v_MATCH = ((new p5HashRef({'str' : v_str, 'from' : v_pos, 'to' : v_pos})));
3847
+ var v_tmp;
3848
+ v_tmp = (p5context([p5context([p5and(p5and(p5and(p5and(p5and(p5context([(function () {
3848
3849
var v_m2;
3849
3850
v_m2 = (p5call(v_grammar, "declarator", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
3850
3851
if ( p5bool(v_m2) ) {
@@ -3870,16 +3871,44 @@ var p5100 = p5pkg['main'];
3870
3871
return (p5context([0], p5want));
3871
3872
}
3872
3873
})()], 0), function () { return p5context([(function () {
3873
- var v_m2;
3874
- v_m2 = (p5call(p5pkg["Perlito5::Grammar"], "opt_type", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
3875
- if ( p5bool(v_m2) ) {
3876
- (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
3877
- (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.opt_type', (v_m2));
3878
- return (p5context([1], p5want));
3879
- }
3880
- else {
3881
- return (p5context([0], p5want));
3882
- }
3874
+ var v_pos1;
3875
+ v_pos1 = ((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to'));
3876
+ return (p5or(p5context([(function () {
3877
+ return (p5and(p5context([(function () {
3878
+ var v_m2;
3879
+ v_m2 = (p5call(p5pkg["Perlito5::Grammar::Block"], "named_sub", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
3880
+ if ( p5bool(v_m2) ) {
3881
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
3882
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar::Block.named_sub', (v_m2));
3883
+ return (p5context([1], p5want));
3884
+ }
3885
+ else {
3886
+ return (p5context([0], p5want));
3887
+ }
3888
+ })()], 0), function () { return p5context([(function () {
3889
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('str', (v_str));
3890
+ var v_sub;
3891
+ v_sub = ((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget_hash('Perlito5::Grammar::Block.named_sub')._hash_.p5hget('capture'));
3892
+ (v_sub || (v_sub = new p5HashRef({})))._hash_.p5hset('decl', (p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('declarator')), 0)));
3893
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('capture', ((new p5ArrayRef(['term', v_sub]))));
3894
+ (function () { throw(p5context([v_MATCH], p5want)) })();
3895
+ return (p5context([1], p5want));
3896
+ })()], p5want) }));
3897
+ })()], 0), function () { return p5context([(function () {
3898
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', (v_pos1));
3899
+ return (p5context([(function () {
3900
+ var v_m2;
3901
+ v_m2 = (p5call(p5pkg["Perlito5::Grammar"], "opt_type", p5list_to_a(v_str, (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('to')), 0));
3902
+ if ( p5bool(v_m2) ) {
3903
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', ((v_m2 || (v_m2 = new p5HashRef({})))._hash_.p5hget('to')));
3904
+ (v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.opt_type', (v_m2));
3905
+ return (p5context([1], p5want));
3906
+ }
3907
+ else {
3908
+ return (p5context([0], p5want));
3909
+ }
3910
+ })()], p5want));
3911
+ })()], p5want) }));
3883
3912
})()], p5want) }));
3884
3913
})()], 0), function () { return p5context([(function () {
3885
3914
(v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('to', (v_pos1));
@@ -3931,7 +3960,16 @@ var p5100 = p5pkg['main'];
3931
3960
(v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hset('capture', ((new p5ArrayRef(p5list_to_a('term', p5call(p5pkg["Perlito5::AST::Decl"], "new", p5list_to_a('decl', v_decl, 'type', v_type, 'var', v_var, 'attributes', p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH || (v_MATCH = new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar::Attribute.opt_attribute')), 1)), 1))))));
3932
3961
return (p5context([1], p5want));
3933
3962
})()], 0) })], 0)], 0));
3934
- return (( p5bool(v_tmp) ? v_MATCH : 0));
3963
+ return (( p5bool(v_tmp) ? v_MATCH : 0));
3964
+ }
3965
+ catch(err) {
3966
+ if ( err instanceof Error ) {
3967
+ throw(err);
3968
+ }
3969
+ else {
3970
+ return(err);
3971
+ }
3972
+ }
3935
3973
});
3936
3974
p5typeglob_set("Perlito5::Grammar::Expression", "term_local", function (List__, p5want) {
3937
3975
var v_grammar;
0 commit comments