RPA Toolkit
modified the returned error.
[rpatk.git] / phpext / prpa / tests / 009.phpt
1 --TEST--
2 rpa_dbex_parse($hDbex, $pattern, $myname)
3 --SKIPIF--
4 <?php if (!extension_loaded("prpa")) echo "skip\n"; ?>
5 --FILE--
6 <?php 
7         $hDbex = rpa_dbex_create();
8         $records = 0;
9         rpa_dbex_open($hDbex);
10
11         $bnf = "#!emitid first 1\n" .
12         "#!emitid last 2\n" .
13         "#!emitid name 3\n" .
14         "first ::= [a-z]+\n" .
15         "last ::= [a-z]+\n" .
16         "name ::= <first> ' '+ <last>\n";
17         if (rpa_dbex_load($hDbex, $bnf) < 0) {
18                 echo("rpa_dbex_load failed.\n");
19                 $error = rpa_dbex_error($hDbex);
20                 die($error['message'] . "LINE: " . $error['line'] . "\n");
21         }
22         
23         rpa_dbex_close($hDbex);
24         if (rpa_dbex_compile($hDbex) < 0) {
25                 $error = rpa_dbex_error($hDbex);
26                 die($error['message'] . "LINE: " . $error['line'] . "\n");      
27         }
28         $pattern = rpa_dbex_lookup($hDbex, "name");
29         if ($pattern == -1) {
30                 die(rpa_dbex_error($hDbex). "\n");
31         }
32         $myname = "John Smith";
33         $stat = rpa_stat_create($hDbex, 0);
34         
35         $ret = rpa_stat_parse($stat, $pattern, RPA_ENCODING_ICASE_UTF8, $myname, $records);
36         if ($ret < 0) {
37                 die(rpa_stat_error($stat). "\n");       
38         }
39         $matched = "matched: " . substr($myname, 0, $ret) . "\n";
40         echo($matched);
41         
42         if (is_array($records)) {
43                 foreach ($records as $record) {
44                         if ($record['type'] & RPA_RECORD_START)
45                                 echo("START ");
46                         else if ($record['type'] & RPA_RECORD_END)
47                                 echo("END   ");
48                         else
49                                 echo("UNKNOWN");
50                         echo ("(" . $record['offset'] . ", " . $record['size'] . ") " . $record['uid'] . ", " . $record['rule'] . ": " . $record['input'] . "\n");
51                 }
52         }
53         unset($stat);
54         unset($hDbex);
55       
56 ?>
57 --EXPECT--
58 matched: John Smith
59 START (0, 10) 3, name: John Smith
60 START (0, 4) 1, first: John
61 END   (0, 4) 1, first: John
62 START (5, 5) 2, last: Smith
63 END   (5, 5) 2, last: Smith
64 END   (0, 10) 3, name: John Smith