Front page | perl.cvs.parrot |
Postings from January 2009
[svn:parrot] r36024 - in trunk/languages/pipp: src/common src/pct t/php
From:
bernhard
Date:
January 26, 2009 05:03
Subject:
[svn:parrot] r36024 - in trunk/languages/pipp: src/common src/pct t/php
Message ID:
20090126130308.31D68CB9AE@x12.develooper.com
Author: bernhard
Date: Mon Jan 26 05:03:07 2009
New Revision: 36024
Modified:
trunk/languages/pipp/src/common/builtins.pir
trunk/languages/pipp/src/pct/actions.pm
trunk/languages/pipp/src/pct/grammar.pg
trunk/languages/pipp/t/php/hello.t
Log:
[Pipp] Add support for 'print'
Modified: trunk/languages/pipp/src/common/builtins.pir
==============================================================================
--- trunk/languages/pipp/src/common/builtins.pir (original)
+++ trunk/languages/pipp/src/common/builtins.pir Mon Jan 26 05:03:07 2009
@@ -25,8 +25,6 @@
.return (1)
.end
-# steal builtins from Perl6
-# TODO: put that into php_builtins.pir
.sub 'echo'
.param pmc list :slurpy
@@ -42,6 +40,14 @@
.RETURN_NULL()
.end
+.sub 'print'
+ .param pmc arg
+
+ print arg
+
+ .RETURN_LONG(1)
+.end
+
## autoincrement
.sub 'postfix:++'
.param pmc a
Modified: trunk/languages/pipp/src/pct/actions.pm
==============================================================================
--- trunk/languages/pipp/src/pct/actions.pm (original)
+++ trunk/languages/pipp/src/pct/actions.pm Mon Jan 26 05:03:07 2009
@@ -167,6 +167,15 @@
make $past;
}
+method print_statement($/) {
+ make PAST::Op.new(
+ :pasttype('call'),
+ :name('print'),
+ :node($/),
+ $( $<expression> )
+ );
+}
+
method expression_statement($/) {
make $( $<expression> );
}
Modified: trunk/languages/pipp/src/pct/grammar.pg
==============================================================================
--- trunk/languages/pipp/src/pct/grammar.pg (original)
+++ trunk/languages/pipp/src/pct/grammar.pg Mon Jan 26 05:03:07 2009
@@ -129,6 +129,7 @@
| <return_statement> {*} #= return_statement
| <require_once_statement> {*} #= require_once_statement
| <echo_statement> {*} #= echo_statement
+ | <print_statement> {*} #= print_statement
| <expression_statement> {*} #= expression_statement
| <constant_definition> {*} #= constant_definition
| <global_declaration> {*} #= global_declaration
@@ -174,6 +175,11 @@
{*}
}
+token print_statement {
+ 'print' <.ws_char> <expression> <.statement_delimiter>
+ {*}
+}
+
rule expression_statement {
<expression> <.statement_delimiter>
{*}
Modified: trunk/languages/pipp/t/php/hello.t
==============================================================================
--- trunk/languages/pipp/t/php/hello.t (original)
+++ trunk/languages/pipp/t/php/hello.t Mon Jan 26 05:03:07 2009
@@ -196,7 +196,7 @@
Hello, World!
OUT
-language_output_is( 'Pipp', <<'CODE', <<'OUT', 'print with one arg', todo => 'no print yet' );
+language_output_is( 'Pipp', <<'CODE', <<'OUT', 'print with one arg' );
<?php
print "Hello, World!\n";
?>
-
[svn:parrot] r36024 - in trunk/languages/pipp: src/common src/pct t/php
by bernhard