Changeset 22543 for v6

Show
Ignore:
Timestamp:
10/08/08 20:38:38 (6 weeks ago)
Author:
ruoso
Message:

[smop] signature for postcircumfix:<( )> is now :($capture) instead of :(|$capture). All tests pass, ritest works, now lets move to multi sub! :)

Location:
v6/smop
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • v6/smop/src/s1p_code.sm0p

    r22512 r22543  
    139139    $void = $lexical_outer_container."STORE"($outer); 
    140140 
    141     # for method postcircumfix:<( )> ($capture) {...} instead of the specced method postcircumfix:<( )> (|$capture) {...} 
    142     #my $actualcapture = $capture."positional"(0); 
    143     #$void = $signature."BIND"($actualcapture,$lexical); 
    144  
    145     $void = $signature."BIND"($capture,$lexical); 
     141    my $actualcapture = $capture."positional"(0); 
     142    $void = $signature."BIND"($actualcapture,$lexical); 
    146143 
    147144    my $frame_proto = ¢SMOP__Mold__Frame; 
  • v6/smop/src/s1p_grep.sm0p

    r22512 r22543  
    3030    ret = smop_lowlevel_alloc(sizeof(smop_s1p_grep_iterator_struct)); 
    3131    ret->RI = (SMOP__ResponderInterface*)SMOP__S1P__grep; 
    32     ((smop_s1p_grep_iterator_struct*)ret)->code = SMOP__NATIVE__capture_positional(interpreter,capture,0); 
    33     ((smop_s1p_grep_iterator_struct*)ret)->input_iterator = SMOP__NATIVE__capture_positional(interpreter,capture,1); 
     32    SMOP__Object* actualcapture = SMOP__NATIVE__capture_positional(interpreter,capture,0); 
     33    ((smop_s1p_grep_iterator_struct*)ret)->code = SMOP__NATIVE__capture_positional(interpreter,actualcapture,0); 
     34    ((smop_s1p_grep_iterator_struct*)ret)->input_iterator = SMOP__NATIVE__capture_positional(interpreter,actualcapture,1); 
     35    SMOP_RELEASE(interpreter,actualcapture); 
    3436 
    3537  } else if (identifier == SMOP__ID__FETCH) { 
     
    125127    iteration: 
    126128    my $item = $next_item."FETCH"(); 
    127     my $result = $code."postcircumfix:( )"($item); 
     129    my $capture = ¢SMOP__S1P__Capturize."capturize"($item); 
     130    my $result = $code."postcircumfix:( )"($capture); 
    128131    my $bool = $result."bool"(); 
    129132    if $bool { goto in } else { goto fetch_item }; 
  • v6/smop/src/s1p_map.sm0p

    r22512 r22543  
    3030    ret = smop_lowlevel_alloc(sizeof(smop_s1p_map_iterator_struct)); 
    3131    ret->RI = (SMOP__ResponderInterface*)SMOP__S1P__map; 
    32     ((smop_s1p_map_iterator_struct*)ret)->code = SMOP__NATIVE__capture_positional(interpreter,capture,0); 
    33     ((smop_s1p_map_iterator_struct*)ret)->input_iterator = SMOP__NATIVE__capture_positional(interpreter,capture,1); 
     32    SMOP__Object* actualcapture = SMOP__NATIVE__capture_positional(interpreter,capture,0); 
     33    ((smop_s1p_map_iterator_struct*)ret)->code = SMOP__NATIVE__capture_positional(interpreter,actualcapture,0); 
     34    ((smop_s1p_map_iterator_struct*)ret)->input_iterator = SMOP__NATIVE__capture_positional(interpreter,actualcapture,1); 
     35    SMOP_RELEASE(interpreter,actualcapture); 
    3436 
    3537  } else if (identifier == SMOP__ID__Void) { 
     
    120122    iteration: 
    121123    my $item = $next_item."FETCH"(); 
    122     my $result = $code."postcircumfix:( )"($item); 
     124    my $capture = ¢SMOP__S1P__Capturize."capturize"($item); 
     125    my $result = $code."postcircumfix:( )"($capture); 
    123126    my $void = $back."setr"($result); 
    124127    $void = $interpreter."goto"($back); 
  • v6/smop/src/s1p_ritest.c

    r22540 r22543  
    2323  SMOP_RELEASE(interpreter, val); 
    2424  SMOP_RELEASE(interpreter, ri); 
     25  SMOP_RELEASE(interpreter, capture); 
    2526  return ret; 
    2627} 
  • v6/smop/test/21_code.m0ld

    r22251 r22543  
    3333})); 
    3434 
    35 $void = $code1."postcircumfix:( )"("ok 1\n"); 
    36 $void = $code1."postcircumfix:( )"("ok 2\n"); 
    37 $void = $code1."postcircumfix:( )"(); 
     35my $capture = ¢SMOP__S1P__Capturize."capturize"("ok 1\n"); 
     36$void = $code1."postcircumfix:( )"($capture); 
     37$capture = ¢SMOP__S1P__Capturize."capturize"("ok 2\n"); 
     38$void = $code1."postcircumfix:( )"($capture); 
     39$capture = ¢SMOP__S1P__Capturize."capturize"(); 
     40$void = $code1."postcircumfix:( )"($capture); 
  • v6/smop/test/30_array_map.m0ld

    r22287 r22543  
    4848my $iteritem = $iterator."FETCH"(); 
    4949 
    50 my $otheriterator = ¢SMOP__S1P__map."postcircumfix:( )"($code1, $iteritem); 
     50my $capture = ¢SMOP__S1P__Capturize."capturize"($code1, $iteritem); 
     51my $otheriterator = ¢SMOP__S1P__map."postcircumfix:( )"($capture); 
    5152 
    5253$void = $out."print"("ok 1 - map is lazy\n"); 
  • v6/smop/test/35_array_grep.m0ld

    r22299 r22543  
    8787my $iteritem = $iterator."FETCH"(); 
    8888 
    89 my $grepiterator = ¢SMOP__S1P__grep."postcircumfix:( )"($grep_code, $iteritem); 
     89my $capture = ¢SMOP__S1P__Capturize."capturize"($grep_code, $iteritem); 
     90my $grepiterator = ¢SMOP__S1P__grep."postcircumfix:( )"($capture); 
    9091my $grepitem = $grepiterator."FETCH"(); 
    9192 
    92 my $mapiterator = ¢SMOP__S1P__map."postcircumfix:( )"($map_code, $grepitem); 
     93$capture = ¢SMOP__S1P__Capturize."capturize"($map_code, $grepitem); 
     94my $mapiterator = ¢SMOP__S1P__map."postcircumfix:( )"($capture); 
    9395 
    9496$void = $out."print"("ok 1 - map and grep are lazy\n"); 
  • v6/smop/test/38_ritest.m0ld

    r22540 r22543  
    88$void = $out."print"("1..3\n"); 
    99 
    10 my $test = ¢SMOP__S1P__ritest."postcircumfix:( )"(1, ¢SMOP__NATIVE__int); 
     10my $capture = ¢SMOP__S1P__Capturize."capturize"(1, ¢SMOP__NATIVE__int); 
     11my $test = ¢SMOP__S1P__ritest."postcircumfix:( )"($capture); 
    1112my $bool = $test."bool"(); 
    1213 
     
    2122 
    2223nexttest: 
    23 $test = ¢SMOP__S1P__ritest."postcircumfix:( )"("test", ¢SMOP__NATIVE__int); 
     24$capture = ¢SMOP__S1P__Capturize."capturize"("test", ¢SMOP__NATIVE__int); 
     25$test = ¢SMOP__S1P__ritest."postcircumfix:( )"($capture); 
    2426$bool = $test."bool"(); 
    2527