/** * Create a Lex instance fro symbols * @param int Lowest value for new token constant definitions, defaults to 0 */ function make_lex($i = 0) { $Lex = new LexBuilder($i); foreach ($this->collect_symbols() as $symbols) { foreach ($symbols as $t => $s) { if (preg_match('/^\\W/', $s, $r)) { $Lex->define_literal((string) $t); } else { if ($Lex->defined($s)) { } else { if (defined($s)) { $Lex->redefine($s); } else { $Lex->define($t); } } } } } return $Lex; }