static void STD_Compile( DaoProcess *proc, DaoValue *p[], int N ) { char *source = DaoValue_TryGetMBString( p[0] ); DaoNamespace *ns = proc->activeNamespace; if( DaoProcess_Compile( proc, ns, source ) ==0 ){ DaoProcess_PutValue( proc, dao_none_value ); return; } DaoProcess_PutValue( proc, ns->mainRoutines->items.pValue[ ns->mainRoutines->size-1 ] ); }
static void STD_Compile( DaoProcess *proc, DaoValue *p[], int N ) { char *source = DaoValue_TryGetMBString( p[0] ); DaoNamespace *ns = DaoValue_CastNamespace( p[1] ); DaoTuple *tuple = DaoProcess_PutTuple( proc, 0 ); if( ns == NULL ) ns = proc->activeNamespace; DaoTuple_SetItem( tuple, (DaoValue*) ns, 0 ); if( DaoProcess_Compile( proc, ns, source ) ==0 ){ DaoTuple_SetItem( tuple, dao_none_value, 1 ); return; } DaoTuple_SetItem( tuple, ns->mainRoutines->items.pValue[ ns->mainRoutines->size-1 ], 1 ); }
static void DaoSTD_Compile( DaoProcess *proc, DaoValue *p[], int N ) { char *source = DaoValue_TryGetChars( p[0] ); DaoNamespace *ns, *import = DaoValue_CastNamespace( p[1] ); DaoTuple *tuple = DaoProcess_PutTuple( proc, 0 ); ns = DaoNamespace_New( proc->vmSpace, "std::compile" ); if( import != NULL ) DaoNamespace_AddParent( ns, import ); DaoTuple_SetItem( tuple, (DaoValue*) ns, 0 ); if( DaoProcess_Compile( proc, ns, source ) ==0 ){ DaoTuple_SetItem( tuple, dao_none_value, 1 ); return; } DaoTuple_SetItem( tuple, ns->mainRoutines->items.pValue[ ns->mainRoutines->size-1 ], 1 ); }