RPA Toolkit
626936e9b5bca9ab173d6628f9315ebb4aad11f8
[rpatk.git] / phpext / prpa / tests / 010.phpt
1 --TEST--
2 rpaparse($bnf, $input, $records, $error);
3 --SKIPIF--
4 <?php if (!extension_loaded("prpa")) echo "skip\n"; ?>
5 --FILE--
6 <?php 
7         $records = 0;
8         $error = 0;
9         $bnf = "#!emitid first 1\n" .
10         "#!emitid last 2\n" .
11         "#!emitid name 3\n" .
12         "first ::= [a-z]+\n" .
13         "last ::= [a-z]+\n" .
14         "name ::= <first> ' '+ <last>\n";
15         $myname = "John Smith"; 
16         $ret = rpaparse($bnf, RPA_ENCODING_ICASE_UTF8, $myname, $records, $error);
17         if ($ret < 0)
18                 die($error . "\n");
19         $matched = "matched: " . substr($myname, 0, $ret) . "\n";
20         echo($matched);
21         
22         foreach ($records as $record) {
23                 if ($record['type'] & RPA_RECORD_START)
24                         echo("START ");
25                 else if ($record['type'] & RPA_RECORD_END)
26                         echo("END   ");
27                 else
28                         echo("UNKNOWN");
29                 echo ($record['uid'] . ", " . $record['rule'] . ": " . $record['input'] . "\n");
30         }
31 ?>
32 --EXPECT--
33 matched: John Smith
34 START 3, name: John Smith
35 START 1, first: John
36 END   1, first: John
37 START 2, last: Smith
38 END   2, last: Smith
39 END   3, name: John Smith