<?php require_once dirname(__FILE__) . "/permutation.php"; // Writes to: regression_tests/blocks/incorrect/non_matching_block_*.in $blocksStart = alt("", "{foreach \$array as \$bar}", "{while \$_false}", "{delimiter}", "{if \$foo}", "{elseif \$foo}", "{else}", "{switch \$foo}", "{case 5}", "{default}"); $blocksEnd = alt("", "{/foreach}", "{/while}", "{/delimiter}", "{/if}", "{/switch}", "{/case}", "{/default}"); $blocksStart1 = clone $blocksStart; $blocksEnd1 = clone $blocksEnd; $blocksStartEnd = perm($blocksStart1, "\n {\$foo}\n", $blocksEnd1, "\n"); $blocksStart2 = clone $blocksStart; $blocksEnd2 = clone $blocksEnd; $blocksStartEnd2 = perm($blocksStart2, "\n {\$foo}\n", $blocksEnd2, "\n"); $blocksNested = alt(perm("{foreach \$array as \$bar}\n", altI(' ', $blocksStartEnd2), "{/foreach}\n")); $alt = alt($blocksStartEnd, $blocksNested); $list = perm($alt); $dir = dirname(__FILE__) . "/../regression_tests/blocks/incorrect/"; $a = app("", $argv, $dir); $i = 1; $top = "{var \$foo = 1, \$_false = false, \$array = array( 1, 2 )}\n"; if (!$a->outputToFile) { echo $top; } $inCount = 0; $outCount = 0; do { $num = sprintf("%04d", $i); $str = $list->generate(); $inFile = $dir . "/non_matching_block_" . $num . ".in"; $outFile = $dir . "/non_matching_block_" . $num . ".out"; $useEntry = false; // Check for valid entries.
<?php require_once dirname(__FILE__) . "/permutation.php"; // Writes to: regression_tests/if/correct/if_nested.in $ws = alt("", " \t", "\n"); $comment = alt("/*c*/", "//c\n"); $wsComment = alt(clone $ws, clone $comment, clone $ws); $comments = alt(clone $ws, clone $comment); $empty = alt(''); $if = perm("{if \$_foo}", "\n {\$_foo}\n", "{/if}\n"); $ifElse = perm("{if \$_false}", "\n {\$_foo}\n", "{else}", "\n {\$_bar}\n", "{/if}\n"); $ifElseIf = perm("{if \$_false}", "\n {\$_foo}\n", "{elseif \$_true}", "\n {\$_bar}\n", "{/if}\n"); $ifElseIfElse = perm("{if \$_false}", "\n {\$_foo}\n", "{elseif \$_true}", "\n {\$_bar}\n", "{else}", "\n {\$_false}\n", "{/if}\n"); $ifElseIfElse2 = perm("{if \$_false}", "\n {\$_foo}\n", "{elseif \$_true}", "\n {\$_bar}\n", "{elseif \$_false}", "\n {\$_bar}\n", "{else}", "\n {\$_false}\n", "{/if}\n"); $ifNested = perm("{if \$_foo}\n", altI('--->', clone $empty, clone $if, clone $ifElse, clone $ifElseIf, clone $ifElseIfElse, clone $ifElseIfElse2), "{/if}\n"); $ifNested2 = perm("{if \$_foo}\n", altI('===>', clone $if, clone $ifElse, clone $ifElseIf, clone $ifElseIfElse, clone $ifElseIfElse2, clone $ifNested), "{/if}"); $list = perm(clone $if, clone $ifElse, clone $ifElseIf, clone $ifElseIfElse, clone $ifElseIfElse2, clone $ifNested2); $a = app("if/correct/if_nested.in", $argv); $a->output("{var \$_foo = \"foo\",\n \$_bar = \"bar\",\n \$_false = false,\n \$_true = true}\n"); do { $str = $list->generate(); $a->output($str . "\n"); } while ($list->increase());
<?php require_once dirname(__FILE__) . "/permutation.php"; // Writes to: regression_tests/switch/correct/switch_nested.in $ws = alt("", " \t", "\n"); $comment = alt("/*c*/", "//c\n"); $wsComment = alt(clone $ws, clone $comment, clone $ws); $comments = alt(clone $ws, clone $comment); $empty = alt(''); function makeCase($nums) { if (!is_array($nums)) { $nums = array($nums); } $list = array(); return alt("{case " . implode(",", $nums) . "}\n {\"{case " . var_export(implode(",", $nums), true) . "}\"}\n{/case}\n"); } $switch = perm("{switch \$_num_1}\n", "{/switch}\n"); $switch1 = perm("{switch \$_num_1}\n", alt(makeCase('1'), makeCase(array('1', '2'))), "{/switch}\n"); $switch2 = perm("{switch \$_num_2}\n", alt(makeCase('1'), makeCase(array('1', '3'))), alt(makeCase('2'), makeCase(array('2', '3'))), "{/switch}\n"); $switchDef = perm("{switch \$_num_4}\n", alt(makeCase('1'), makeCase(array('1', '3'))), alt(makeCase('2'), makeCase(array('2', '3'))), "{default}\n {\"{default}\"}\n{/default}\n", "{/switch}\n"); $switchDef2 = perm("{switch \$_num_3}\n", "{default}\n {\"{default}\"}\n{/default}\n", "{/switch}\n"); $switchNested = perm("{switch \$_num_1}\n", "{case '1'}\n", altI(' ', clone $switch, clone $switch1, clone $switch2, clone $switchDef, clone $switchDef2), "{/case}\n", "{default}\n {\"{default}\"}\n{/default}\n", "{/switch}\n"); $list = perm(alt(clone $switch, clone $switch1, clone $switch2, clone $switchDef, clone $switchDef2, clone $switchNested)); $a = app("switch/correct/switch_nested.in", $argv); $a->output("{var \$_num_1 = 1, \$_num_2 = 2, \$_num_3 = 3, \$_num_4 = 4}\n"); do { $str = $list->generate(); $a->output($str . "\n"); } while ($list->increase());
<?php require_once dirname(__FILE__) . "/permutation.php"; // Writes to: regression_tests/if/correct/if_else_elseif_nested.in $ws = alt("", " \t", "\n"); $comment = alt("/*c*/", "//c\n"); $wsComment = alt(clone $ws, clone $comment, clone $ws); $comments = alt(clone $ws, clone $comment); $empty = alt(''); $if = perm("if(%cnt%)\n{if \$_true}", "\n ok(%cnt%)\n", "{/if}/if(%cnt%)\n"); $if2 = perm("if(%cnt%)\n{if \$_false}", "\n fail(%cnt%)\n", "{/if}ok(%cnt%)\n/if(%cnt%)\n"); $ifElse = perm("if(%cnt%)\n{if \$_true}", "\n ok(%cnt%)\n", "{else}", "\n fail(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifElse2 = perm("if(%cnt%)\n{if \$_false}", "\n fail(%cnt%)\n", "{else}", "\n ok(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifElseIf = perm("if(%cnt%)\n{if \$_true}", "\n ok(%cnt%)\n", "{elseif \$_false}", "\n fail(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifElseIf2 = perm("if(%cnt%)\n{if \$_false}", "\n fail(%cnt%)\n", "{elseif \$_true}", "\n ok(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifElseIf3 = perm("if(%cnt%)\n{if \$_false}", "\n fail(%cnt%)\n", "{elseif \$_false}", "\n fail(%cnt%)\n", "{/if}ok(%cnt%)\n/if(%cnt%)\n"); $ifElseIfElse = perm("if(%cnt%)\n{if \$_true}", "\n ok(%cnt%)\n", "{elseif \$_false}", "\n fail(%cnt%)\n", "{else}", "\n fail(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifElseIfElse2 = perm("if(%cnt%)\n{if \$_false}", "\n fail(%cnt%)\n", "{elseif \$_true}", "\n ok(%cnt%)\n", "{else}", "\n fail(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifElseIfElse3 = perm("if(%cnt%)\n{if \$_false}", "\n fail(%cnt%)\n", "{elseif \$_false}", "\n fail(%cnt%)\n", "{else}", "\n ok(%cnt%)\n", "{/if}/if(%cnt%)\n"); $ifNested = perm("if(%cnt%)\n{if \$_true}\n", altI(' ', clone $if, clone $ifElse, clone $ifElseIf, clone $ifElseIfElse, clone $ifElseIfElse2), "{/if}/if(%cnt%)\n"); $ifNested2 = perm("{if \$_true}\n", alt('===>', clone $if, clone $ifElse, clone $ifElseIf, clone $ifElseIfElse, clone $ifElseIfElse2, clone $ifNested), "{/if}"); $list = perm(alt(clone $if, clone $if2, clone $ifElse, clone $ifElse2, clone $ifElseIf, clone $ifElseIf2, clone $ifElseIf3, clone $ifElseIfElse, clone $ifElseIfElse2, clone $ifElseIfElse3, clone $ifNested)); $a = app("if/correct/if_else_elseif_nested.in", $argv); $a->output("{var \$_false = false,\n \$_true = true}\n"); $i = 0; do { $str = $list->generate(); $a->output(str_replace("%cnt%", $i, $str) . "\n"); ++$i; } while ($list->increase());