Exemplo n.º 1
0
<?php

require_once "autoload.php";
$bnf = new BNF\bnf();
$bnf->parseRules(file_get_contents("json.bnf"));
echo $bnf->render("object") . "\n ";
echo $bnf->render("array") . "\n ";
echo $bnf->render("value") . "\n ";
echo $bnf->render("number") . "\n ";
echo $bnf->render("string") . "\n ";
echo $bnf->render("not empty string") . "\n ";
Exemplo n.º 2
0
<?php

require_once "autoload.php";
$bnf = new BNF\bnf();
$bnf->parseRules(file_get_contents("json.bnf"));
echo $bnf->render("object") . "\n ";
echo $bnf->render("array") . "\n ";
echo $bnf->render("value") . "\n ";
echo $bnf->render("number") . "\n ";
echo $bnf->render("string") . "\n ";
echo $bnf->render("not empty string") . "\n ";
$rules = new BNF\bnf();
$rules->parseRules(file_get_contents("rules.bnf"));
echo $rules->render("phrase", " ") . "\n";
Exemplo n.º 3
0
<?php

require_once "autoload.php";
if (!isset($_SESSION['bnf']) or $_GET['reset']) {
    $bnf = new BNF\bnf();
    $syntax = BNF\bnfPrepareSpecialSyntax::ecma("ECMA_262_simple.bnf");
    $bnf->parseRules($syntax);
    $_SESSION['bnf'] = serialize($bnf);
    $_SESSION['syntax'] = $syntax;
} else {
    $bnf = unserialize($_SESSION['bnf']);
    $syntax = $_SESSION['syntax'];
}
$file = fopen("ECMA_262_simple.bnf", "r");
$titles = array();
$sees = array();
$rule = "";
while ($line = fgets($file)) {
    if ($line[0] == "#") {
        if ($line[1] == "#") {
            if (isset($sees[count($sees) - 1])) {
                $sees[count($sees) - 1]['strrule'] = htmlspecialchars($rule);
            }
            $rule = "";
            $titles[count($titles) - 1]['see']++;
            $sees[] = array('value' => "See section " . trim(substr($line, 6)), "title" => $titles[count($titles) - 1]['title'], "subtitle" => isset($titles[count($titles) - 1]['subtitle']) ? $titles[count($titles) - 1]['subtitle'] : "");
        } else {
            if (isset($line[4]) and $line[4] != "." or count($titles) == 0) {
                $titles[] = array();
                $titles[count($titles) - 1]['see'] = 0;
            }