[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