Changeset 6535 for lib/Inline/Pugs.pm

Show
Ignore:
Timestamp:
08/28/05 19:21:32 (3 years ago)
Author:
autrijus
Message:

* port Inline::Pugs to use the PIL-Run runtime. So far this works:

use Inline Pugs => q{

sub intone { say "Hello, $_!" }

};
intone('World');

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lib/Inline/Pugs.pm

    r5532 r6535  
    22 
    33use strict; 
    4 use vars qw<$VERSION @ISA>; 
    5 use constant MAGIC => 
    6     'my$Z= =$*IN;while 1{$_=perl eval eval=$*IN;print$Z;say$!//$_;print$Z;flush$*OUT}'; 
    7 use constant COOKIE => rand(); 
    8 use Perl6::Pugs; 
    9 use IPC::Open2; 
     4use File::Basename; 
     5use constant LIBDIRS => qw< 
     6    PIL-Run 
     7    Perl6-Value 
     8    Perl6-Container 
     9    Perl6-MetaModel 
     10>; 
     11use lib (map { 
     12    dirname(__FILE__) . "/../../perl5/$_/lib", 
     13} LIBDIRS); 
    1014use Data::Dumper; 
     15use vars qw< @ISA $VERSION >; 
    1116 
    1217@ISA     = 'Inline'; 
     
    7681        *{"$pkg\::$sym"} = sub { 
    7782            local $Data::Dumper::Terse = 1; 
    78             my @args = map { $self->quote_pugs(Dumper($_)).'.eval' } @_; 
     83            my @args = map { Dumper($_) } @_; 
    7984            $self->eval_pugs( 
    8085                "$sym(".join(',', @args).")" 
     
    8388    } 
    8489} 
     90 
     91sub init_pugs { 
     92    use PIL::Run::MainX; 
     93    use PIL::Run::EvalX; 
     94    use PIL::Run::ApiX; 
     95} 
     96 
     97sub eval_pugs { 
     98    my $self = shift; 
     99    p6_eval($_[0]); 
     100} 
     101 
     102=begin comment 
    85103 
    86104sub init_pugs { 
     
    102120    return eval $out; 
    103121} 
     122 
     123=cut 
    104124 
    105125sub quote_pugs {