[svn:parrot] r36208 - in trunk/languages/pipp: src/pct t/php

barney at svn.parrot.org barney at svn.parrot.org
Sat Jan 31 18:17:00 UTC 2009


Author: barney
Date: Sat Jan 31 18:16:59 2009
New Revision: 36208
URL: https://trac.parrot.org/parrot/changeset/36208

Log:
[Pipp] add support for lone semicolons

Modified:
   trunk/languages/pipp/src/pct/actions.pm
   trunk/languages/pipp/src/pct/grammar.pg
   trunk/languages/pipp/t/php/hello.t

Modified: trunk/languages/pipp/src/pct/actions.pm
==============================================================================
--- trunk/languages/pipp/src/pct/actions.pm	Sat Jan 31 18:16:38 2009	(r36207)
+++ trunk/languages/pipp/src/pct/actions.pm	Sat Jan 31 18:16:59 2009	(r36208)
@@ -793,6 +793,10 @@
     make $block;
 }
 
+method empty_statement($/) {
+    make PAST::Stmts.new( :name('empty statement') );
+}
+
 method class_definition($/, $key) {
     our @?BLOCK; # A stack of PAST::Block
     our $?CLASS; # for namespacing of constants

Modified: trunk/languages/pipp/src/pct/grammar.pg
==============================================================================
--- trunk/languages/pipp/src/pct/grammar.pg	Sat Jan 31 18:16:38 2009	(r36207)
+++ trunk/languages/pipp/src/pct/grammar.pg	Sat Jan 31 18:16:59 2009	(r36208)
@@ -142,6 +142,7 @@
     | [ <var_assign> ';' ]             {*}  #= var_assign
     | <function_definition>            {*}  #= function_definition
     | <class_definition>               {*}  #= class_definition
+    | <empty_statement>                {*}  #= empty_statement
 }
 
 rule statement_list {
@@ -154,6 +155,10 @@
     | $
 }
 
+rule empty_statement {
+    ';' {*}
+}
+
 rule namespace_definition {
     'namespace' <namespace_name>?  {*}       #= open
     '{' <statement_list> '}'       {*}       #= close

Modified: trunk/languages/pipp/t/php/hello.t
==============================================================================
--- trunk/languages/pipp/t/php/hello.t	Sat Jan 31 18:16:38 2009	(r36207)
+++ trunk/languages/pipp/t/php/hello.t	Sat Jan 31 18:16:59 2009	(r36208)
@@ -20,7 +20,7 @@
 use FindBin;
 use lib "$FindBin::Bin/../../../../lib", "$FindBin::Bin/../../lib";
 
-use Parrot::Test tests => 19;
+use Parrot::Test tests => 20;
 
 my $h = "Hello, World!\n";
 
@@ -178,3 +178,15 @@
 ?>
 CODE
 
+language_output_is( 'Pipp', <<'CODE', $h, 'empty statements' );
+<?php
+;
+;;
+;;;;;;
+print "Hello, World!\n";
+;
+;;
+;;;;;;
+?>
+CODE
+


More information about the parrot-commits mailing list