- Timestamp:
- 07/26/08 21:48:48 (6 months ago)
- Location:
- misc/elf
- Files:
-
- 6 modified
-
elf_g (modified) (4 diffs)
-
elf_g_src/EmitSimpleP5.pm (modified) (2 diffs)
-
elf_g_src/IRx1_FromAST.pm (modified) (1 diff)
-
elf_g_src/IRx1_FromAST_create.pl (modified) (2 diffs)
-
elf_g_src/PrimitivesP5.pm (modified) (2 diffs)
-
elf_g_src/run-tests.result (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
misc/elf/elf_g
r21457 r21553 26 26 use autobox ARRAY => 'ARRAY', HASH => 'HASH', CODE => 'CODE', INTEGER => 'INTEGER', FLOAT => 'FLOAT', STRING => 'STRING', UNDEF => 'UNDEF'; use encoding 'utf8'; 27 27 28 29 # Move to the Regexp prelude once that becomes part of the prelude.30 { package BacktrackMacrosKludge;31 sub _let_gen {32 my($vars) = @_;33 my $nvars = 1+($vars =~ tr/,//);34 my $tmpvars = join(",",map{"\$__tmp${_}__"}(0..($nvars-1)));35 push(@SCRATCH::_let_stack,[$vars,$tmpvars]);36 "(do{my \$__v__ ; my($tmpvars); { local($vars)=($vars); \$__v__ = do{ ";37 }38 sub _let_end {39 my $e = shift(@SCRATCH::_let_stack) || die "LET(){ }LET pairs didnt match up";40 my($vars,$tmpvars) = @$e;41 "}; if(!FAILED(\$__v__)){ ($tmpvars)=($vars); }}; if(!FAILED(\$__v__)){ ($vars)=($tmpvars) }; \$__v__ })"42 }43 }44 28 45 29 # Workaround autobox 2.53 api change. :( … … 2026 2010 $main::irbuilder->add_constructor("dotty\:methodop", sub {my($m)=@_; 2027 2011 (do{IRx1::Call->newp($m, $::es_blackboard__expect_term_base, irbuild_ir($m->{"hash"}->{"ident"}), IRx1::Capture->newp($m, (irbuild_ir($m->{"hash"}->{"semilist"}) || [])))})}); 2012 $main::irbuilder->add_constructor("dotty\:\.\^\!", sub {my($m)=@_; 2013 (do{IRx1::Call->newp($m, $::es_blackboard__expect_term_base, ("\^\!" . irbuild_ir($m->{"hash"}->{"methodop"}->{"hash"}->{"ident"})), IRx1::Capture->newp($m, (irbuild_ir($m->{"hash"}->{"methodop"}->{"hash"}->{"semilist"}) || [])))})}); 2028 2014 $main::irbuilder->add_constructor("dotty\:postcircumfix", sub {my($m)=@_; 2029 2015 (do{my $s = ($m->match_string()); … … 2723 2709 " . $self->prelude_oo()) . $self->prelude_lexical()) . "\ 2724 2710 \ 2725 \#\ Move\ to\ the\ Regexp\ prelude\ once\ that\ becomes\ part\ of\ the\ prelude\.\2726 \{\ package\ BacktrackMacrosKludge\;\2727 \ \ sub\ _let_gen\ \{\2728 \ \ \ \ my\(\$vars\)\ \=\ \@_\;\2729 \ \ \ \ my\ \$nvars\ \=\ 1\+\(\$vars\ \=\~\ tr\/\,\/\/\)\;\2730 \ \ \ \ my\ \$tmpvars\ \=\ join\(\"\,\"\,map\{\"\\\$__tmp\$\{_\}__\"\}\(0\.\.\(\$nvars\-1\)\)\)\;\2731 \ \ \ \ push\(\@SCRATCH\:\:_let_stack\,\[\$vars\,\$tmpvars\]\)\;\2732 \ \ \ \ \"\(do\{my\ \\\$__v__\ \;\ my\(\$tmpvars\)\;\ \{\ local\(\$vars\)\=\(\$vars\)\;\ \\\$__v__\ \=\ do\{\ \"\;\2733 \ \ \}\2734 \ \ sub\ _let_end\ \{\2735 \ \ \ \ my\ \$e\ \=\ shift\(\@SCRATCH\:\:_let_stack\)\ \|\|\ die\ \"LET\(\)\{\ \}LET\ pairs\ didnt\ match\ up\"\;\2736 \ \ \ \ my\(\$vars\,\$tmpvars\)\ \=\ \@\$e\;\2737 \ \ \ \ \"\}\;\ if\(\!FAILED\(\\\$__v__\)\)\{\ \(\$tmpvars\)\=\(\$vars\)\;\ \}\}\;\ if\(\!FAILED\(\\\$__v__\)\)\{\ \(\$vars\)\=\(\$tmpvars\)\ \}\;\ \\\$__v__\ \}\)\"\2738 \ \ \}\2739 \}\2740 \2741 2711 \#\ Workaround\ autobox\ 2\.53\ api\ change\.\ \:\(\ 2742 2712 if\(\!defined\(\&autobox\:\:universal\:\:type\)\)\ \{\ … … 3679 3649 use base "Any";(do{sub perl{my $self=CORE::shift;(do{(("\{" . $self->keys()->map(sub {my($k)=@_; 3680 3650 (do{(($k->perl() . "\ \=\>\ ") . $self->{$k}->perl())})})->join("\,\ ")) . "\}")})}}) 3651 } 3652 ; 3653 3654 { package UNDEF; 3655 use base "Any";(do{sub Str{my $self=CORE::shift;(do{""})}}) 3681 3656 } 3682 3657 ; -
misc/elf/elf_g_src/EmitSimpleP5.pm
r21457 r21553 59 59 } 60 60 '~self.prelude_oo~self.prelude_lexical~' 61 62 # Move to the Regexp prelude once that becomes part of the prelude.63 { package BacktrackMacrosKludge;64 sub _let_gen {65 my($vars) = @_;66 my $nvars = 1+($vars =~ tr/,//);67 my $tmpvars = join(",",map{"\$__tmp${_}__"}(0..($nvars-1)));68 push(@SCRATCH::_let_stack,[$vars,$tmpvars]);69 "(do{my \$__v__ ; my($tmpvars); { local($vars)=($vars); \$__v__ = do{ ";70 }71 sub _let_end {72 my $e = shift(@SCRATCH::_let_stack) || die "LET(){ }LET pairs didnt match up";73 my($vars,$tmpvars) = @$e;74 "}; if(!FAILED(\$__v__)){ ($tmpvars)=($vars); }}; if(!FAILED(\$__v__)){ ($vars)=($tmpvars) }; \$__v__ })"75 }76 }77 61 78 62 # Workaround autobox 2.53 api change. :( … … 927 911 method cb__Buf ($n) { 928 912 my $s = $n.buf; 929 # $s.re_sub_g('\\(.)','$1');930 913 '"' ~ quotemeta($s) ~ '"'; 931 914 }; -
misc/elf/elf_g_src/IRx1_FromAST.pm
r21457 r21553 138 138 }); 139 139 140 $main::irbuilder.add_constructor('dotty:.^!', sub ($m) { 141 IRx1::Call.newp($m,$+blackboard::expect_term_base,'^!'~irbuild_ir($m.{'hash'}{'methodop'}.{'hash'}{'ident'}),IRx1::Capture.newp($m,irbuild_ir($m.{'hash'}{'methodop'}.{'hash'}{'semilist'})||[])); 142 }); 143 140 144 $main::irbuilder.add_constructor('dotty:postcircumfix', sub ($m) { 141 145 my $s = ($m.match_string); -
misc/elf/elf_g_src/IRx1_FromAST_create.pl
r21457 r21553 76 76 dotty:methodop 77 77 Call.newp($+blackboard::expect_term_base,$m<ident>,Capture.newp($m<semilist>||[])) 78 79 dotty:.^! 80 Call.newp($+blackboard::expect_term_base,'^!'~$m<methodop><ident>,Capture.newp($m<methodop><semilist>||[])) # XXX ^! should be expanded. 78 81 79 82 dotty:postcircumfix … … 629 632 my %seen; 630 633 for my $para (@paragraphs) { 631 $para =~ /^( [\w:]+)\n(.*)/s or die "bug";634 $para =~ /^(\w+(?::[\S]+)?)\n(.*)/s or die "bug\n$para"; 632 635 my($name,$body)=($1,$2); 633 636 die "Saw an AST handler for '$name' twice!\n" if $seen{$name}++; -
misc/elf/elf_g_src/PrimitivesP5.pm
r20879 r21553 37 37 } 38 38 39 class UNDEF { 40 method Str() { "" } 41 } 42 39 43 class Regexp { method Str () { ''~self } } 40 44 … … 67 71 multi prefix:<-> (Num $a) is p5 {'(0-$a)'} 68 72 69 multi prefix:<++> (Num $a ) is p5 {'++ $a'}70 multi prefix:<--> (Num $a ) is p5 {'-- $a'}73 multi prefix:<++> (Num $a is rw) is p5 {'++ $a'} 74 multi prefix:<--> (Num $a is rw) is p5 {'-- $a'} 71 75 72 76 73 multi postfix:<++> (Num $a ) is p5 {'$a ++'}74 multi postfix:<--> (Num $a ) is p5 {'$a --'}77 multi postfix:<++> (Num $a is rw) is p5 {'$a ++'} 78 multi postfix:<--> (Num $a is rw) is p5 {'$a --'} 75 79 multi postfix:<i> (Num $a) { $a } ;# Need to implement Complex. 76 80 -
misc/elf/elf_g_src/run-tests.result
r21445 r21553 1 pugs t/ svn revision: 21 4441 pugs t/ svn revision: 21550 2 2 - 80% 10 8 2 ../../../t/01-sanity/01-tap.t 3 3 ok 4 ../../../t/01-sanity/02-counter.t … … 186 186 X 0% 10 0 ../../../t/examples/golf.t 187 187 X 0% 17 0 ../../../t/general/atoms.t 188 -C 0% 15 0 15 ../../../t/general/basic.t189 188 -C 0% 4 0 4 ../../../t/general/config.t 190 189 -d 0% 4 0 4 ../../../t/junction/abc.t … … 220 219 - 0% 2 0 2 ../../../t/oo/can.t 221 220 -d 0% 5 0 5 ../../../t/oo/class/anonymous.t 222 - 0% 2 0 2 ../../../t/oo/class/declaration-order.t223 221 - 0% 1 0 1 ../../../t/oo/class_inclusion_with_inherited_class.t 224 222 - 0% 1 0 1 ../../../t/oo/class_inheritance_become_infinite_loop.t … … 231 229 - 33% 6 2 0 4! ../../../t/oo/destruction.t 232 230 X 0% 3 0 ../../../t/oo/global_destruction.t 233 X 0% 32 0 ../../../t/oo/inheritance.t234 231 -d 0% 2 0 2 ../../../t/oo/instantiation.t 235 232 -C 0% 17 0 17 ../../../t/oo/magical_vars.t … … 251 248 -C 0% 18 0 18 ../../../t/oo/proxy.t 252 249 - 7% 14 1 0 13! ../../../t/oo/roles/anonymous.t 253 -C 0% 22 0 22 ../../../t/oo/roles/basic.t254 250 -C 0% 10 0 10 ../../../t/oo/roles/conflicts.t 255 251 - 66% 3 2 1 ../../../t/oo/roles/instantiation.t … … 365 361 - 0% 4 0 2 2! ../../../t/regex/rx_perl5_g.t 366 362 X 0% 2 0 ../../../t/regex/rx_perl5_match.t 367 -d 0% 1 0 1 ../../../t/regex/smartparse.t368 363 X 0% 7 0 ../../../t/regex/s_perl5.t 369 364 X 0% 5 0 ../../../t/regex/variable_interpolation.t … … 392 387 -C 0% 18 0 18 ../../../t/spec/S02-builtin_data_types/capture.t 393 388 -d 0% 4 0 4 ../../../t/spec/S02-builtin_data_types/catch_type_cast_mismatch.t 389 -C 0% 10 0 10 ../../../t/spec/S02-builtin_data_types/compact.t 394 390 -C 0% 30 0 30 ../../../t/spec/S02-builtin_data_types/enum.t 395 391 -d 0% 34 0 34 ../../../t/spec/S02-builtin_data_types/flattening.t 396 392 -d 0% 32 0 32 ../../../t/spec/S02-builtin_data_types/hash_ref.t 397 X 0% 58 0../../../t/spec/S02-builtin_data_types/hash.t393 -C 0% 58 0 58 ../../../t/spec/S02-builtin_data_types/hash.t 398 394 -C 0% 8 0 8 ../../../t/spec/S02-builtin_data_types/infinity.t 399 395 -C 0% ? 0 ? ../../../t/spec/S02-builtin_data_types/int-uint.t … … 406 402 -C 0% 47 0 47 ../../../t/spec/S02-builtin_data_types/num.t 407 403 X 0% 97 0 ../../../t/spec/S02-builtin_data_types/pair.t 408 X 0% 870 ../../../t/spec/S02-builtin_data_types/range.t404 X 0% 79 0 ../../../t/spec/S02-builtin_data_types/range.t 409 405 - 0% 8 0 2 6! ../../../t/spec/S02-builtin_data_types/subscripts_and_context.t 410 406 - 7% 13 1 2 10! ../../../t/spec/S02-builtin_data_types/subtypes.t … … 431 427 -C 0% 6 0 6 ../../../t/spec/S02-polymorphic_types/subset-range.t 432 428 -d 0% 8 0 8 ../../../t/spec/S02-whitespace_and_comments/minimal-whitespace.t 429 -d 0% 1 0 1 ../../../t/spec/S02-whitespace_and_comments/one-pass-parsing.t 433 430 X 0% 52 0 ../../../t/spec/S02-whitespace_and_comments/unicode-whitespace.t 434 431 X 0% 76 0 ../../../t/spec/S02-whitespace_and_comments/unspace.t … … 447 444 - 31% 35 11 24 ../../../t/spec/S03-operators/numeric-context.t 448 445 -C 0% 5 0 5 ../../../t/spec/S03-operators/p5arrow.t 449 -d 0% 51 0 51../../../t/spec/S03-operators/range.t446 -d 0% 72 0 72 ../../../t/spec/S03-operators/range.t 450 447 X 0% 49 0 ../../../t/spec/S03-operators/reduce-le1arg.t 451 448 X 0% 52 0 ../../../t/spec/S03-operators/reduce-metaop.t … … 475 472 -C 0% 21 0 21 ../../../t/spec/S05-alternation/longest-alternative.t 476 473 -C 0% 10 0 10 ../../../t/spec/S05-alternation/sequential.t 474 ok 13 ../../../t/spec/S05-metasyntax/changed.t 475 -C 0% 11 0 11 ../../../t/spec/S05-metasyntax/regex.t 476 - 16% 6 1 5 ../../../t/spec/S05-metasyntax/unknown.t 477 477 -C 0% 4 0 4 ../../../t/spec/S05-modifier/continue.t 478 478 ok 10 ../../../t/spec/S05-modifier/ignoreaccent.t … … 492 492 -C 0% 3 0 3 ../../../t/spec/S06-signature/positional-placeholders.t 493 493 -C 0% 6 0 6 ../../../t/spec/S06-signature/slurpy-placeholders.t 494 ok 3 ../../../t/spec/S06-traits/is-copy.t 495 -C 0% 6 0 6 ../../../t/spec/S06-traits/is-rw.t 494 496 -C 0% 38 0 38 ../../../t/spec/S09-autovivification/autovivification.t 495 497 -C 0% 24 0 24 ../../../t/spec/S09-subscript_slice/slice.t … … 506 508 X 0% 9 0 ../../../t/spec/S12-class/attributes.t 507 509 -C 0% 21 0 21 ../../../t/spec/S12-class/basic.t 510 - 50% 2 1 1 ../../../t/spec/S12-class/declaration-order.t 508 511 ok 5 ../../../t/spec/S12-class/inheritance-class-methods.t 512 -C 0% 32 0 32 ../../../t/spec/S12-class/inheritance.t 509 513 X 0% 2 0 ../../../t/spec/S12-class/instantiate.t 510 514 ok 4 ../../../t/spec/S12-class/is_also_instead.t … … 524 528 X 0% 10 0 ../../../t/spec/S12-methods/what.t 525 529 X 0% 4 0 ../../../t/spec/S12-role/attributes.t 530 -C 0% 18 0 18 ../../../t/spec/S12-role/basic.t 526 531 ok 8 ../../../t/spec/S12-role/composition.t 527 532 -d 0% 11 0 11 ../../../t/spec/S12-role/mixin.t … … 562 567 -d 0% 33 0 33 ../../../t/spec/S29-array/splice.t 563 568 - 1% 53 1 0 52! ../../../t/spec/S29-array/unshift.t 564 X 0% 6 0../../../t/spec/S29-container/cat.t565 X 0% 8 0../../../t/spec/S29-container/roundrobin.t569 -d 0% 6 0 6 ../../../t/spec/S29-container/cat.t 570 -d 0% 8 0 8 ../../../t/spec/S29-container/roundrobin.t 566 571 -d 0% 9 0 9 ../../../t/spec/S29-container/zip.t 567 572 - 40% 10 4 6 ../../../t/spec/S29-context/die_arg_preservation.t … … 612 617 X 0% ? 0 ../../../t/spec/S29-os/system-with-spaces.t 613 618 - 52% 21 11 0 10! ../../../t/spec/S29-scalar/defined.t 614 X 0% 74 0../../../t/spec/S29-scalar/undef.t619 -C 0% 74 0 74 ../../../t/spec/S29-scalar/undef.t 615 620 -C 0% 7 0 7 ../../../t/spec/S29-str/append.t 616 621 -C 0% 11 0 11 ../../../t/spec/S29-str/capitalize.t … … 719 724 - 80% 5 4 1 ../../../t/var/contextual.t 720 725 - 0% 4 0 1 3! ../../../t/var/default_scalar.t 721 ok 3 ../../../t/var/is_copy.t722 726 -C 0% 9 0 9 ../../../t/var/is_readonly.t 723 X 0% 6 0 ../../../t/var/is_rw.t724 727 -C 0% 15 0 15 ../../../t/var/lazy.t 725 728 - 9% 11 1 4 6! ../../../t/var/let.t … … 803 806 -d 0% 1 0 1 ../../../v6/v6-KindaPerl6/t/kp6/41-attr-hash-keys.t 804 807 -C 0% 1 0 1 ../../../v6/v6-KindaPerl6/t/kp6/42-single-rule-grammar.t 805 - d 0% 1 0 1../../../v6/v6-KindaPerl6/t/kp6/43-class-constructor-with-params.t808 - 0% 1 0 0 1! ../../../v6/v6-KindaPerl6/t/kp6/43-class-constructor-with-params.t 806 809 ok 4 ../../../v6/v6-KindaPerl6/t/kp6/44-map.t 807 810 ok 4 ../../../v6/v6-KindaPerl6/t/kp6/45-for.t … … 850 853 ok 1 ../../../v6/v6-KindaPerl6/t/kp6/math/02-inf.t 851 854 852 Files: 8 49. 623 parsed 73%. 367 run 43%. 85ok 10%.853 Tests: 169 53+. 637 ok <3.75%, 16316+ not.855 Files: 852. 632 parsed 74%. 371 run 43%. 86 ok 10%. 856 Tests: 16987+. 652 ok <3.83%, 16335+ not.
