Changeset 6761
- Timestamp:
- 09/06/05 01:46:05 (3 years ago)
- Location:
- perl5/Code-Perl
- Files:
-
- 21 modified
-
MANIFEST (modified) (1 diff)
-
Makefile.PL (modified) (1 diff)
-
lib/Code/Perl/Base.pm (modified) (1 diff)
-
lib/Code/Perl/Expr.pm (modified) (14 diffs)
-
lib/Code/Perl/Expr/Append.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/CallMethod.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/CallSub.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Constant.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/DerefArray.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/DerefHash.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Holder.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Infix.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/List.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Not.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Number.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Perl.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/Scalar.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/String.pm (modified) (1 diff)
-
lib/Code/Perl/Expr/SubName.pm (modified) (1 diff)
-
lib/Code/Perl/Test/Expr.pm (modified) (2 diffs)
-
t/expr.t (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
perl5/Code-Perl/MANIFEST
r5532 r6761 2 2 README 3 3 LGPL 4 MANIFEST This list of files4 MANIFEST This list of files 5 5 Makefile.PL 6 6 TODO -
perl5/Code-Perl/Makefile.PL
r5532 r6761 17 17 18 18 WriteMakefile( 19 AUTHOR => 'Fergal Daly <fergal@esatclear.ie>',20 NAME => $module,21 VERSION_FROM => $pm_file,22 INSTALLDIRS => 'perl',23 PREREQ_PM => {24 'Class::MethodMaker' => 0,25 'Test::Deep' => '0.05'26 },27 dist => {28 PREOP=> "rm -f README; pod2text -80 < $doc_file > README; cp -f README $dir-\$(VERSION); "29 }19 AUTHOR => 'Fergal Daly <fergal@esatclear.ie>', 20 NAME => $module, 21 VERSION_FROM => $pm_file, 22 INSTALLDIRS => 'perl', 23 PREREQ_PM => { 24 'Class::MethodMaker' => 0, 25 'Test::Deep' => '0.05' 26 }, 27 dist => { 28 PREOP=> "rm -f README; pod2text -80 < $doc_file > README; cp -f README $dir-\$(VERSION); " 29 } 30 30 ); -
perl5/Code-Perl/lib/Code/Perl/Base.pm
r5532 r6761 7 7 sub new 8 8 { 9 my $pkg = shift;9 my $pkg = shift; 10 10 11 my %args = @_;12 my $self = bless \%args, $pkg;11 my %args = @_; 12 my $self = bless \%args, $pkg; 13 13 14 $self->init;14 $self->init; 15 15 16 return $self;16 return $self; 17 17 } 18 18 -
perl5/Code-Perl/lib/Code/Perl/Expr.pm
r5532 r6761 23 23 24 24 our %EXPORT_TAGS = ( 25 easy => [qw( scal number string list derefh derefa calls callm boolnot perl26 append holder subname )],25 easy => [qw( scal number string list derefh derefa calls callm boolnot perl 26 append holder subname )], 27 27 ); 28 28 … … 74 74 sub number 75 75 { 76 return Code::Perl::Expr::Number->new(77 Value => shift78 );76 return Code::Perl::Expr::Number->new( 77 Value => shift 78 ); 79 79 } 80 80 … … 96 96 sub string 97 97 { 98 return Code::Perl::Expr::String->new(99 Value => shift100 );98 return Code::Perl::Expr::String->new( 99 Value => shift 100 ); 101 101 } 102 102 … … 117 117 sub scal 118 118 { 119 return Code::Perl::Expr::Scalar->new(120 Name => shift121 );119 return Code::Perl::Expr::Scalar->new( 120 Name => shift 121 ); 122 122 } 123 123 … … 138 138 sub list 139 139 { 140 return Code::Perl::Expr::List->new(141 Value => [@_]142 );140 return Code::Perl::Expr::List->new( 141 Value => [@_] 142 ); 143 143 } 144 144 … … 159 159 sub boolnot 160 160 { 161 return Code::Perl::Expr::Not->new(162 Expr => shift,163 );161 return Code::Perl::Expr::Not->new( 162 Expr => shift, 163 ); 164 164 } 165 165 … … 181 181 sub append 182 182 { 183 return Code::Perl::Expr::Append->new(184 Exprs => [@_],185 );183 return Code::Perl::Expr::Append->new( 184 Exprs => [@_], 185 ); 186 186 } 187 187 … … 208 208 sub derefh 209 209 { 210 my $hash = shift;211 my $index = shift;212 if (! ref($index))213 {214 $index = string($index);215 }216 217 return Code::Perl::Expr::DerefHash->new(218 Ref => $hash,219 Key => $index220 );210 my $hash = shift; 211 my $index = shift; 212 if (! ref($index)) 213 { 214 $index = string($index); 215 } 216 217 return Code::Perl::Expr::DerefHash->new( 218 Ref => $hash, 219 Key => $index 220 ); 221 221 } 222 222 … … 241 241 sub derefa 242 242 { 243 my $hash = shift;244 my $index = shift;245 if (! ref($index))246 {247 $index = number($index);248 }249 250 return Code::Perl::Expr::DerefArray->new(251 Ref => $hash,252 Index => $index253 );243 my $hash = shift; 244 my $index = shift; 245 if (! ref($index)) 246 { 247 $index = number($index); 248 } 249 250 return Code::Perl::Expr::DerefArray->new( 251 Ref => $hash, 252 Index => $index 253 ); 254 254 } 255 255 … … 267 267 sub subname 268 268 { 269 return Code::Perl::Expr::SubName->new(270 Value => shift,271 );269 return Code::Perl::Expr::SubName->new( 270 Value => shift, 271 ); 272 272 } 273 273 … … 295 295 sub calls 296 296 { 297 my $subname = shift;298 if (! ref($subname))299 {300 $subname = subname($subname);301 }302 303 return Code::Perl::Expr::CallSub->new(304 SubName => $subname,305 Args => list(@_)306 );297 my $subname = shift; 298 if (! ref($subname)) 299 { 300 $subname = subname($subname); 301 } 302 303 return Code::Perl::Expr::CallSub->new( 304 SubName => $subname, 305 Args => list(@_) 306 ); 307 307 } 308 308 … … 333 333 sub callm 334 334 { 335 my $object = shift;336 my $method = shift;337 if (! ref($method))338 {339 $method = subname($method);340 }341 342 return Code::Perl::Expr::CallMethod->new(343 Object => $object,344 MethodName => $method,345 Args => list(@_)346 );335 my $object = shift; 336 my $method = shift; 337 if (! ref($method)) 338 { 339 $method = subname($method); 340 } 341 342 return Code::Perl::Expr::CallMethod->new( 343 Object => $object, 344 MethodName => $method, 345 Args => list(@_) 346 ); 347 347 } 348 348 … … 364 364 sub perl 365 365 { 366 return Code::Perl::Expr::Perl->new(367 Perl => shift,368 );366 return Code::Perl::Expr::Perl->new( 367 Perl => shift, 368 ); 369 369 } 370 370 … … 399 399 sub holder 400 400 { 401 return Code::Perl::Expr::Holder->new(402 Expr => shift,403 );401 return Code::Perl::Expr::Holder->new( 402 Expr => shift, 403 ); 404 404 } 405 405 -
perl5/Code-Perl/lib/Code/Perl/Expr/Append.pm
r5532 r6761 9 9 sub init 10 10 { 11 my $self = shift;11 my $self = shift; 12 12 13 $self->setOp(".");13 $self->setOp("."); 14 14 } 15 15 16 16 sub eval 17 17 { 18 my $self = shift;18 my $self = shift; 19 19 20 my $exprs = $self->getExprs;21 return join("", map {$_->eval} @$exprs);20 my $exprs = $self->getExprs; 21 return join("", map {$_->eval} @$exprs); 22 22 } 23 23 -
perl5/Code-Perl/lib/Code/Perl/Expr/CallMethod.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Object MethodName Args )]10 get_set => [qw( -java Object MethodName Args )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 my $object = $self->getObject;18 my $methodname = $self->getMethodName->eval;19 my $args = $self->getArgs;17 my $object = $self->getObject; 18 my $methodname = $self->getMethodName->eval; 19 my $args = $self->getArgs; 20 20 21 return $object->eval->$methodname($args->eval);21 return $object->eval->$methodname($args->eval); 22 22 } 23 23 24 24 sub perl 25 25 { 26 my $self = shift;26 my $self = shift; 27 27 28 my $object = $self->getObject->perl;29 my $methodname = $self->getMethodName->perl;30 my $args = $self->getArgs->perl;28 my $object = $self->getObject->perl; 29 my $methodname = $self->getMethodName->perl; 30 my $args = $self->getArgs->perl; 31 31 32 return "($object)->$methodname($args)";32 return "($object)->$methodname($args)"; 33 33 } 34 34 -
perl5/Code-Perl/lib/Code/Perl/Expr/CallSub.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java SubName Args )]10 get_set => [qw( -java SubName Args )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 my $subname = $self->getSubName->eval;18 my $args = $self->getArgs;17 my $subname = $self->getSubName->eval; 18 my $args = $self->getArgs; 19 19 20 no strict 'refs';21 return &{$subname}($args->eval);20 no strict 'refs'; 21 return &{$subname}($args->eval); 22 22 } 23 23 24 24 sub perl 25 25 { 26 my $self = shift;26 my $self = shift; 27 27 28 my $subname = $self->getSubName;29 my $subname_perl = $subname->perl;30 my $args = $self->getArgs->perl;28 my $subname = $self->getSubName; 29 my $subname_perl = $subname->perl; 30 my $args = $self->getArgs->perl; 31 31 32 return ref($subname) eq "Code::Perl::Expr::SubName" ?33 "$subname_perl($args)" :34 "&{$subname_perl}($args)";32 return ref($subname) eq "Code::Perl::Expr::SubName" ? 33 "$subname_perl($args)" : 34 "&{$subname_perl}($args)"; 35 35 } 36 36 -
perl5/Code-Perl/lib/Code/Perl/Expr/Constant.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Value )]10 get_set => [qw( -java Value )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 return $self->getValue;17 return $self->getValue; 18 18 } 19 19 20 20 my %esc = ( 21 "\\" => "\\\\",22 "\n" => "\\n",23 "\r" => "\\r",24 '"' => '\\"',25 '$' => '\\$',26 '@' => '\\@',21 "\\" => "\\\\", 22 "\n" => "\\n", 23 "\r" => "\\r", 24 '"' => '\\"', 25 '$' => '\\$', 26 '@' => '\\@', 27 27 ); 28 28 29 29 sub getQuotedValue 30 30 { 31 my $self = shift;31 my $self = shift; 32 32 33 my $value = $self->{Value};33 my $value = $self->{Value}; 34 34 35 if (1)36 {37 $value =~ s/([\\\n\r"\$\@])/$esc{$1}/g;38 return '"'.$value.'"';39 }40 else41 {42 return '"'.quotemeta($self->{Value}).'"';43 }35 if (1) 36 { 37 $value =~ s/([\\\n\r"\$\@])/$esc{$1}/g; 38 return '"'.$value.'"'; 39 } 40 else 41 { 42 return '"'.quotemeta($self->{Value}).'"'; 43 } 44 44 } 45 45 -
perl5/Code-Perl/lib/Code/Perl/Expr/DerefArray.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Index Ref )]10 get_set => [qw( -java Index Ref )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 my $array = $self->getRef->eval;17 my $array = $self->getRef->eval; 18 18 19 return $array->[$self->getIndex->eval];19 return $array->[$self->getIndex->eval]; 20 20 } 21 21 22 22 sub perl 23 23 { 24 my $self = shift;24 my $self = shift; 25 25 26 my $array_perl = $self->getRef->perl;26 my $array_perl = $self->getRef->perl; 27 27 28 my $index = $self->getIndex->perl;29 return "($array_perl)->[$index]";28 my $index = $self->getIndex->perl; 29 return "($array_perl)->[$index]"; 30 30 } 31 31 -
perl5/Code-Perl/lib/Code/Perl/Expr/DerefHash.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Key Ref )]10 get_set => [qw( -java Key Ref )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 my $hash = $self->getRef->eval;17 my $hash = $self->getRef->eval; 18 18 19 return $hash->{$self->getKey->eval};19 return $hash->{$self->getKey->eval}; 20 20 } 21 21 22 22 sub perl 23 23 { 24 my $self = shift;24 my $self = shift; 25 25 26 my $hash_perl = $self->getRef->perl;26 my $hash_perl = $self->getRef->perl; 27 27 28 my $index = $self->getKey->perl;29 return "($hash_perl)->{$index}";28 my $index = $self->getKey->perl; 29 return "($hash_perl)->{$index}"; 30 30 } 31 31 -
perl5/Code-Perl/lib/Code/Perl/Expr/Holder.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Expr )]10 get_set => [qw( -java Expr )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 return $self->getExpr->eval;17 return $self->getExpr->eval; 18 18 } 19 19 20 20 sub perl 21 21 { 22 my $self = shift;22 my $self = shift; 23 23 24 return $self->getExpr->perl;24 return $self->getExpr->perl; 25 25 26 26 } -
perl5/Code-Perl/lib/Code/Perl/Expr/Infix.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Exprs Op )]10 get_set => [qw( -java Exprs Op )] 11 11 ); 12 12 13 13 sub perl 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 my $op = $self->getOp;18 my @exprs = map {"(".$_->perl.")"} @{$self->getExprs};17 my $op = $self->getOp; 18 my @exprs = map {"(".$_->perl.")"} @{$self->getExprs}; 19 19 20 return join(" $op ", @exprs);20 return join(" $op ", @exprs); 21 21 } 22 22 -
perl5/Code-Perl/lib/Code/Perl/Expr/List.pm
r5532 r6761 9 9 sub eval 10 10 { 11 my $self = shift;11 my $self = shift; 12 12 13 return map { $_->eval } @{$self->getValue};13 return map { $_->eval } @{$self->getValue}; 14 14 } 15 15 16 16 sub perl 17 17 { 18 my $self = shift;18 my $self = shift; 19 19 20 return join(", ", map {$_->perl} @{$self->getValue});20 return join(", ", map {$_->perl} @{$self->getValue}); 21 21 } 22 22 -
perl5/Code-Perl/lib/Code/Perl/Expr/Not.pm
r5532 r6761 8 8 9 9 use Class::MethodMaker ( 10 get_set => [qw( -java Expr )]10 get_set => [qw( -java Expr )] 11 11 ); 12 12 13 13 sub eval 14 14 { 15 my $self = shift;15 my $self = shift; 16 16 17 my $expr = $self->getExpr;17 my $expr = $self->getExpr; 18 18
