// FIXME: don't discard the qualifier in namespace definitions void Parser::namespaceDefinition(int flags, Qualifier* /*qual*/) { uint32_t pos = position(); if (!(flags & (SFLAG_Function|SFLAG_Toplevel))) // no classes yet... compiler->syntaxError(pos, SYNTAXERR_KWD_NOT_ALLOWED, "namespace"); eat(T_Identifier); Str * name = identifier(); if (match(T_Assign)) { if (hd() == T_Identifier || hd() == T_StringLiteral) addNamespaceBinding(name, primaryExpression()); else compiler->syntaxError(pos, SYNTAXERR_ILLEGAL_NAMESPACE); } else addNamespaceBinding(name, NULL); semicolon(); }
// FIXME: don't discard the qualifier in namespace definitions void Parser::namespaceDefinition(int flags, Qualifier* /*qual*/) { uint32_t pos = position(); if (!(flags & (SFLAG_Function|SFLAG_Toplevel))) // no classes yet... compiler->syntaxError(pos, "'namespace' definition not allowed here"); eat(T_Identifier); Str * name = identifier(); if (match(T_Assign)) { if (hd() == T_Identifier || hd() == T_StringLiteral) addNamespaceBinding(name, primaryExpression()); else compiler->syntaxError(pos, "Illegal 'namespace' definition"); } else addNamespaceBinding(name, NULL); semicolon(); }