Example #1
0
 // 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();
 }
Example #2
0
		// 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();
		}