* class TokensBase is in directory Parser/, not in Parser/Generators.   Changed include_once() on top of file * Added $properties list * Added $ignoreTokens list * Added $classhierarchy table * refactored function getLexer(): Support for classhierarchy * refactored function createLexer(): Support for property based token   definitions, support for ignorelist * refactored function extractCode(): Support for property based token   definitions.  WARNING: Lots of code duplication in here, needs to be   refactored! * Added functions LexerBuilder::tokenMethodTemplate(Token), which   simple returns the given token, i.e. does nothing and provides a   template method for the default property based token definitions;   LexerBuilder::addClasshierarchy(string $classname, int $level),   which associates a classname with a level,   LexerBuilder::getClasshierarchy(), which returns the classhierarchy   table; getLevelForClass(string $classname), which returns the level   for a given class; LexerBuilder::getIgnoreToken(), which returns the   list of ignored characters; LexerBuilder::setIgnoreTokens(string   $tokens), which erases any former Tokens from the ignore list and   then calls LexerBuilder::addIgnoreTokens(string $tokens), which adds   the given tokens to the list of ignore tokens; and, finally,   LexerBuilder::getIgnoreString(), which constructs a string that   concatenates all ignore tokens to "or" expression, comparing to a   string named $c.
* class TokensBase is in directory Parser/, not in Parser/Generators.
  Changed include_once() on top of file
* Added $properties list
* Added $ignoreTokens list
* Added $classhierarchy table
* refactored function getLexer(): Support for classhierarchy
* refactored function createLexer(): Support for property based token
  definitions, support for ignorelist
* refactored function extractCode(): Support for property based token
  definitions.  WARNING: Lots of code duplication in here, needs to be
  refactored!
* Added functions LexerBuilder::tokenMethodTemplate(Token), which
  simple returns the given token, i.e. does nothing and provides a
  template method for the default property based token definitions;
  LexerBuilder::addClasshierarchy(string $classname, int $level),
  which associates a classname with a level,
  LexerBuilder::getClasshierarchy(), which returns the classhierarchy
  table; getLevelForClass(string $classname), which returns the level
  for a given class; LexerBuilder::getIgnoreToken(), which returns the
  list of ignored characters; LexerBuilder::setIgnoreTokens(string
  $tokens), which erases any former Tokens from the ignore list and
  then calls LexerBuilder::addIgnoreTokens(string $tokens), which adds
  the given tokens to the list of ignore tokens; and, finally,
  LexerBuilder::getIgnoreString(), which constructs a string that
  concatenates all ignore tokens to "or" expression, comparing to a
  string named $c.

oliverheins/PHPSimpleLexYacc