本文整理汇总了C++中ObjRef::toString方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjRef::toString方法的具体用法?C++ ObjRef::toString怎么用?C++ ObjRef::toString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjRef
的用法示例。
在下文中一共展示了ObjRef::toString方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: make_pair
//! (static)
std::pair<bool, ObjRef> loadAndExecute(Runtime & runtime, const std::string & filename) {
ObjRef script;
try {
script = loadScriptFile(filename);
} catch (Exception * error) {
std::cerr << "\nError occurred while loading file '" << filename << "':\n" << error->toString() << std::endl;
return std::make_pair(false, error);
}
bool success = true;
ObjRef result;
try {
runtime.executeObj(script.get());
result = runtime.getResult();
if(runtime.getState() == Runtime::STATE_EXCEPTION) {
std::cout << "\nException caught (1):\n" << result.toString() << std::endl;
success = false;
}
} catch (Object * o) {
result = o;
std::cout << "\nException caught (2):\n" << result.toString() << std::endl;
success = false;
} catch (...) {
std::cout << "\nCaught unknown C++ exception." << std::endl;
success = false;
}
return std::make_pair(success, result);
}
示例2: file
/*! Tries to locate the given __filename__ with the current searchPath set in the runtime.
@return the path to the file or the original __filename__ if the file could not be found. */
static std::string findFile(Runtime & runtime, const std::string & filename){
static const identifierId seachPathsId=stringToIdentifierId("__searchPaths");
std::string file(FileUtils::condensePath(filename));
if( FileUtils::isFile(file)!=1 ){
if(Array * searchPaths = dynamic_cast<Array*>(runtime.getAttribute(seachPathsId))){
for(ERef<Iterator> itRef=searchPaths->getIterator();!itRef->end();itRef->next()){
ObjRef valueRef = itRef->value();
std::string s(FileUtils::condensePath(valueRef.toString()+"/"+filename));
if( FileUtils::isFile(s)==1 ){
file = s;
break;
}
}
}
}
return file;
}
示例3: file
/*! Tries to locate the given __filename__ with the current searchPath set in the runtime.
@return the path to the file or the original __filename__ if the file could not be found. */
static std::string findFile(Runtime & runtime, const std::string & filename){
static const StringId seachPathsId("__searchPaths");
std::string file(IO::condensePath(filename));
if( IO::getEntryType(file)!=IO::TYPE_FILE ){
if(Array * searchPaths = dynamic_cast<Array*>(runtime.getAttribute(seachPathsId).getValue())){
for(ERef<Iterator> itRef=searchPaths->getIterator();!itRef->end();itRef->next()){
ObjRef valueRef = itRef->value();
std::string s(IO::condensePath(valueRef.toString()+'/'+filename));
if( IO::getEntryType(s)==IO::TYPE_FILE ){
file = s;
break;
}
}
}
}
return file;
}
示例4: createNumber
Util::GenericAttribute * convertFromEScript(const EScript::ObjPtr & object) override {
// is a Number?
EScript::Number * n = dynamic_cast<EScript::Number *> (object.get());
if (n != nullptr) {
return GenericAttribute::createNumber(n->getValue());
}
// is a Bool?
EScript::Bool * b = dynamic_cast<EScript::Bool *> (object.get());
if (b != nullptr) {
return GenericAttribute::createBool(b->toBool());
}
// is a String?
EScript::String * s = dynamic_cast<EScript::String *> (object.get());
if (s != nullptr) {
return GenericAttribute::createString(s->getString());
}
// is an Array?
EScript::Array * a = dynamic_cast<EScript::Array *> (object.get());
if (a != nullptr) {
auto gl = new Util::GenericAttributeList;
for (ERef<EScript::Iterator> i = a->getIterator(); !i->end(); i->next()) {
ObjRef value = i->value();
gl->push_back(convertEScriptObjectToGenericAttribute(value));
}
return gl;
}
// is a Map?
EScript::Map * m = dynamic_cast<EScript::Map *> (object.get());
if (m != nullptr) {
auto gm = new Util::GenericAttributeMap;
for (ERef<EScript::Iterator> i = m->getIterator(); !i->end(); i->next()) {
ObjRef key = i->key();
ObjRef value = i->value();
gm->setValue(key->toString(), convertEScriptObjectToGenericAttribute(value));
}
return gm;
}
return nullptr;
}
示例5: main
int main(int argc,char * argv[]) {
EScript::init();
#ifdef ES_DEBUG_MEMORY
Tokenizer::identifyStaticToken(0); // init constants
Debug::clearObjects();
#endif
ERef<Script> s=new Script();
ERef<Runtime> rt=new Runtime();
rt->initVariable("args",Array::create(argc,argv));
// --- Test NumberRef
int numberRefTest1=17;
rt->initVariable("numberRefTest1",new NumberRef(numberRefTest1));
float numberRefTest2=17;
rt->initVariable("numberRefTest2",new NumberRef(numberRefTest2));
std::string file="tests/test.escript";
if(argc>1) {
file=argv[1];
}
try {
s->loadScript(file);
} catch (Object * e) {
std::cerr << "\n\a "<<e->toString() << "\n"<<std::endl;
return EXIT_FAILURE;
}
ObjRef result;
try {
result=rt->executeObj(s.get());
}catch (Exception * e) {
std::cout << "\nERROR \a";
if (e) std::cout << e->toString();
}catch (Object * o) {
std::cout << "\nCaught: ";
if (o) std::cout << o->toString();
}catch (...) {
std::cout << "\nCaught unknown C++ expception. ";
}
std::cout << "\n --- \n\n\n";
// // --- Test NumberRef
// std::cout << numberRefTest1<<"," <<numberRefTest2; // should be (18,16)
if (!result.isNull()) {
std::cout << "\nResult: " << result.toString()<<"\n";
}
s=NULL;
rt=NULL;
#ifdef ES_DEBUG_MEMORY
// std::cout << "\nGLOBALS: " << Script::SGLOBALS<<"\n";
Debug::showObjects();
#endif
//system("pause");
return EXIT_SUCCESS;
}