Esempio n. 1
0
function ParseType(TokenStream $it)
{
    $type = new ASTType();
    $it->getToken(SyntaxMap::Keyword);
    $identifier = $it->getToken(SyntaxMap::Identifier);
    $type->name = $identifier->value;
    $type->type = ParseDataType($it);
    $key = strtolower($type->name);
    if (isset($it->types[$key])) {
        throw ParserException::redeclaredType($identifier);
    }
    $it->types[$key] = $type;
    $it->expect(SyntaxMap::Semicolon, 0);
    $it->getAndMove();
    return $type;
}