/*! * \brief Funcao que executa a Shell. */ void shooSH_run (void) { Job* job; Parser p; Executor executor; bool exited = false; while (!exited) { std::cout << "shooSH> "; job = p.parseLine (); history.push_back (job->getCommand()); if (job->hasFailed ()) { std::cout << "Erro de sintaxe" << std::endl; } else { if (!(job->isNop()||job->hasExited())) { if (!job->hasPipe()) { if (executeBuiltin (job->getProcess(0)) == -1) { job->setID (++currID); jobList.push_back (job); executor.execute (job); } } else { job->setID (++currID); jobList.push_back (job); executor.execute (job); } } else { exited = job->hasExited(); } } job = NULL; } shooSH_clean(); }
__AGENCY_ANNOTATION void multi_agent_execute_with_shared_inits_returning_void(use_multi_agent_execute_with_shared_inits_returning_void_member_function, Executor& ex, Function f, typename executor_traits<Executor>::shape_type shape, Factories... shared_factories) { return ex.execute(f, shape, shared_factories...); } // end multi_agent_execute_with_shared_inits_returning_void()
int main(void) { try { log_open("run.log"); FM_LOG_DEBUG("opened"); com.init(); cout << "after init!!" << endl; com.compile(); cout << com.getResult() << endl; if(string("Compile Error") == com.getResult()) { return 0; } cout << "after compile" << endl; Exec.execute(); cout << "after execute" << endl; int result = checker.checkDiff(); if(result == 0) { cout << "AC" << endl; } else if(result == 1) { cout << "PE" << endl; } else if(result == 2) { cout << "WA" << endl; } } // catch(exception &ex) // { // cout << ex.what() << endl; // } catch(JudgeException &ex) { cout << ex.what() << endl; } return 0; }
void CG_GGVar::_init() { CG_GGVar& gi(*this); gi.reserve(4*1024); gi.add(new CallableWrapT<String>("1.0 beta"), "sys.VERSION"); gi.add_inner<CallableFunctionCaptureLocal>(); gi.add_inner<CallableFunctionSame>(); gi.add_inner<CallableTableProxyGlobal>(); gi.add_inner<CallableCommandNoop>(); gi.add_inner<CallableFunctionImport>(); gi.add_inner<CallableFunctionClone>(); gi.add_inner<CallableFunctionTypeId>(); gi.add_inner<CallableFunctionIsNil>(); gi.add_inner<CallableFunctionIsTable>(); gi.add_inner<CallableFunctionIsString>(); gi.add_inner<CallableFunctionIsArray>(); gi.add_inner<CallableFunctionIsNumber>(); gi.add_inner<CallableFunctionIsBoolean>(); gi.add_inner<CallableCommandClear>(); gi.add_inner<CallableCommandClc>(); gi.add_inner<CallableCommandExec>(); gi.add_inner<CallableCommandEval>(); gi.add_inner<CallableCommandLoadEwsl>(); gi.add_inner<CallableFunctionAssert>(); gi.add_inner<CallableFunctionHelp>(); gi.add_inner<CallableFunctionTranslate>(); gi.add_inner<CallableFunctionTranslateKT>(); gi.add_inner<CallableFunctionTranslateHT>(); gi.add_inner<CallableFunctionTranslateZT>(); init_module_number(); init_module_string(); init_module_table(); init_module_array(); init_module_io(); init_module_os(); init_module_math(); init_module_logger(); init_module_coroutine(); init_module_regex(); gi.add(NULL,"pcall"); gi.add(NULL,"map"); gi.add(NULL,"map_k"); gi.add(NULL,"reduce"); gi.add(NULL,"reduce_k"); gi.add(NULL,"select"); gi.add(NULL,"join"); gi.add(NULL,"array_concat"); gi.add(NULL, "#internal_end"); _bInited=true; for (size_t i = 0; i < gi.size(); i++) { if (gi.get(i).first == "#internal_end") break; gi.sm_vmap[gi.get(i).first] = new CG_Variable(VAR_SYSTEM, gi.get(i).first); } size_t n = gi.size(); for (size_t i = 0; i < n; i++) { CallableTableEx* p = dynamic_cast<CallableTableEx*>(gi.get(i).second.kptr()); if (!p) continue; String lib = gi.get(i).first; for (VariantTable::const_iterator it=p->value.begin();it!=p->value.end();++it) { gi[lib + "." + (*it).first] = (*it).second; } } Executor ewsl; ewsl.execute( "\n" "function pcall(fn,...)\n" "{\n" " try \n" " return true,fn(...);\n" " catch(...) \n" " return false,...;\n" "};\n" "\n" "function map(x,f)\n" "{\n" " local r=[];\n" " for_each(v in x)\n" " {\n" " r.push(f(v));\n" " }\n" " return r;\n" "};\n" "function map_k(x,f)\n" "{\n" " local r=[];\n" " local k=0;\n" " for_each(v in x)\n" " {\n" " r.push(f(v,k++));\n" " }\n" " return r;\n" "};\n" "\n" "function select(x,f)\n" "{\n" " local r=[];\n" " for_each(v in x)\n" " {\n" " if(f(v)) r.push(v);\n" " }\n" " return r;\n" "};\n" "\n" "function join(s,r)\n" "{\n" " local z=r;\n" " return reduce_k(s,def(x,y,k)\n" " {\n" " return k==0?y#x..z..y;\n" " });\n" "};\n" "function reduce(x,f,n)\n" "{\n" " for_each(v in x)\n" " {\n" " n=f(n,v); \n" " }\n" " return n;\n" "};\n" "function reduce_k(x,f,n)\n" "{\n" " local k=0;\n" " for_each(v in x)\n" " {\n" " n=f(n,v,k++); \n" " }\n" " return n;\n" "};\n" "def array_concat(...)\n" "{\n" " local fn=[];\n" " for_each(v in [...])\n" " {\n" " local n=length(v);\n" " if(n>0) fn[end+1:end+n]=v[:];\n" " }\n" " return fn;\n" "};\n" "\n" "def metatable_call2(v1,v2,fn)\n" "{\n" " local m1=getmetatable(v1);\n" " if(m1!=nil)\n" " {\n" " local k1=m1[fn];\n" " if(k1!=nil)\n" " {\n" " ...=k1(v1,v2);\n" " if([...].length()==1) return ...;\n" " }\n" " }\n" " local m2=getmetatable(v2);\n" " if(m2!=nil)\n" " {\n" " local k2=m2[fn];\n" " if(k2!=nil)\n" " {\n" " ...=k2(v1,v2);\n" " if([...].length()==1) return ...;\n" " }\n" " }\n" " throw 'bad argument to '..fn,v1,v2;\n" "};\n" "\n" "def metatable_call1(v1,fn)\n" "{\n" " local m1=getmetatable(v1);\n" " if(m1!=nil)\n" " {\n" " local k1=m1[fn];\n" " if(k1!=nil)\n" " {\n" " ...=k1(v1);\n" " if([...].length()==1) return ...;\n" " }\n" " }\n" " throw 'bad argument to '..fn,v1;\n" "};\n" ); for(size_t i=0;i<ewsl.tb1.size();i++) { gi[ewsl.tb1.get(i).first]=ewsl.tb1.get(i).second; } }