-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbnf2.php
More file actions
21 lines (20 loc) · 704 Bytes
/
bnf2.php
File metadata and controls
21 lines (20 loc) · 704 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
require_once __DIR__ . '/testhelpers.php';
//<rule> ::= <identifier> "::=" <expression>
//<expression> ::= <factor> {term}
//<term> ::= "|" <factor>
//<factor> ::= <identifier> | <quoted_symbol> | <expression_c> | <expression_d> | <expression_e>
//<expression_c>::="(" <expression> ")"
//<expression_d>::="[" <expression> "]"
//<expression_e>::="{" <expression> "}"
//<identifier> ::= letter { letter | digit }
//<quoted_symbol> ::= ""
$s = '<rule>::=<identifier>"::="<expression>"::="<hello>
<hello>::=<identifier>"::="(<expression>("aa"<bb>))
<aa>::="asds"
';
$lexParser = new \Parser\BnfParser();
$words = $lexParser->parser($s);
print_r($words);
//var_dump(count($rs));
//$analyzer->showLog();