cvsuser     03/03/04 07:45:36

  Modified:    languages/imcc imcc.l
               languages/imcc/t/syn bsr.t
  Log:
  .include for PIR code too
  
  Revision  Changes    Path
  1.32      +1 -1      parrot/languages/imcc/imcc.l
  
  Index: imcc.l
  ===================================================================
  RCS file: /cvs/public/parrot/languages/imcc/imcc.l,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -w -r1.31 -r1.32
  --- imcc.l    22 Feb 2003 15:12:25 -0000      1.31
  +++ imcc.l    4 Mar 2003 15:45:34 -0000       1.32
  @@ -214,7 +214,7 @@
        return MACRO;
       }
   
  -<emit>".include" {
  +<*>".include" {
           int c;
   
        c = yylex(valp, interp);
  
  
  
  1.4       +60 -1     parrot/languages/imcc/t/syn/bsr.t
  
  Index: bsr.t
  ===================================================================
  RCS file: /cvs/public/parrot/languages/imcc/t/syn/bsr.t,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -w -r1.3 -r1.4
  --- bsr.t     18 Feb 2003 12:39:28 -0000      1.3
  +++ bsr.t     4 Mar 2003 15:45:36 -0000       1.4
  @@ -1,6 +1,6 @@
   #!perl
   use strict;
  -use TestCompiler tests => 3;
  +use TestCompiler tests => 4;
   use Test::More qw(skip);
   
   ##############################
  @@ -107,3 +107,62 @@
   r = 30
   s = -10
   OUT
  +
  +##############################
  +my $file = '_test.inc';
  +open F, ">$file";
  +print F <<'EOF';
  +.sub _foo            # sub foo(int a, int b)
  +   saveall
  +   .param int a
  +   .param int b
  +   print "a = "
  +   print a
  +   print "\n"
  +   print "b = "
  +   print b
  +   print "\n"
  +   .local int pl
  +   .local int mi
  +   pl = a + b
  +   mi = a - b
  +   .return pl                # return (pl, mi)
  +   .return mi
  +   restoreall
  +   ret
  +.end
  +EOF
  +
  +output_is(<<'CODE', <<'OUT', "subroutine in external file");
  +.sub _main
  +   .local int x
  +   x = 10
  +   .const int y = 20
  +
  +   .arg y    # save args in reversed order
  +   .arg x
  +   call _foo #(r, s) = _foo(x,y)
  +   .local int r
  +   .local int s
  +   .result s # restore results in reversed order
  +   .result r
  +
  +   print "r = "
  +   print r
  +   print "\n"
  +   print "s = "
  +   print s
  +   print "\n"
  +   end
  +.end
  +.include "_test.inc"
  +CODE
  +a = 10
  +b = 20
  +r = 30
  +s = -10
  +OUT
  +
  +END {
  +  unlink $file;
  +}
  
  
  

Reply via email to