function ParseEnumValue(TokenStream $it, ASTEnum $enum) { $enumValue = new ASTEnumValue(); $enumValue->annotations = ParseAnnotations($it); $identifier = $it->getToken([SyntaxMap::Identifier, SyntaxMap::DataType]); $enumValue->name = $identifier->value; //Verify if entity is already declared $entityKey = strtolower($enum->name); $key = strtolower($identifier->value); if (isset($it->enums[$entityKey][$key])) { throw ParserException::redeclaredEnumValue($enum, $identifier); } else { $it->enums[$entityKey][$key] = []; } if ($it->typeAt(SyntaxMap::AssignOp, 0)) { $it->getAndMove(); $val = $it->getToken([SyntaxMap::String, SyntaxMap::Number]); $enumValue->value = $val->getValue(); } $it->getToken(SyntaxMap::Semicolon); return $enumValue; }