Example #1
0
<?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.
Example #2
0
<?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());
Example #4
0
<?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());