本文整理汇总了C++中NameSpace::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ NameSpace::getName方法的具体用法?C++ NameSpace::getName怎么用?C++ NameSpace::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NameSpace
的用法示例。
在下文中一共展示了NameSpace::getName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseKeyword_Class
/**
* Parses the keyword "class" from the given token stack
*/
int CodeParser::parseKeyword_Class( Scope* scope, TokenStack* stack ) {
Class* classdef;
const char* name;
Token* t;
// validate incoming scope
if( scope->getScopeType() != NAMESPACE_SCOPE ) {
SYNTAX_ERROR( "Classes cannot be defined in this scope", stack->last() );
return -1;
}
// the next token must be the identifier
if( !( name = state->getIdentifierName( stack, "class" ) ) ) {
return -2;
}
// get the name space
NameSpace* ns = (NameSpace*)scope;
printf( "class '%s' in namespace '%s' modifiers = %s\n", name, ns->getName(), toBinary( modifiers ) );
// TODO check for inheritance! multiple inheritance?
// - class MyChild extends MyParent { ... }
// - class StrobeLamp extends Lamp, Strobe { ... }
// create the class
classdef = new Class( name, ns->getName(), ns, modifiers );
this->modifiers = 0;
// add the name space to the state
if( !ns->addClass( classdef ) ) {
char* error = new char[256];
sprintf( error, "Class '%s' already exists in namespace '%s'\n", name, ns->getName() );
SYNTAX_ERROR( error, stack->last() );
delete error;
return -4;
}
// the next element must be a code block
if( !stack->hasNext() || !( t = stack->peek() ) || ( t->getType() != tok::CODE_BLOCK ) ) {
SYNTAX_ERROR( "unexpected token", t );
return -5;
}
// process the code block
int errorCode = parse( classdef, ((ComplexToken*)t)->getChildren() );
// register the class
state->addClass( classdef );
// reset the class-level counters
state->resetCounters();
return errorCode;
}