Changeset 22016
- Timestamp:
- 08/22/08 22:40:36 (3 months ago)
- Location:
- v6/smop
- Files:
-
- 3 modified
-
CMakeLists.txt (modified) (2 diffs)
-
m0ld/M0ld.hs (modified) (2 diffs)
-
src/smop_mold.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
v6/smop/CMakeLists.txt
r22015 r22016 1 1 project (smop) 2 SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE ) 2 3 cmake_minimum_required (VERSION 2.6) 3 4 include_directories (${smop_SOURCE_DIR}/include) … … 17 18 COMMAND ${CABAL} ARGS build --distpref=${CMAKE_CURRENT_BINARY_DIR}/cabal_dist 18 19 COMMAND cp ARGS ${CMAKE_CURRENT_BINARY_DIR}/cabal_dist/build/m0ld/m0ld ${CMAKE_CURRENT_BINARY_DIR}/m0ld_exe 20 DEPENDS ${smop_SOURCE_DIR}/m0ld/M0ld.hs 19 21 ) 20 22 -
v6/smop/m0ld/M0ld.hs
r22015 r22016 23 23 identifier = do 24 24 first <- choice [alphaNum, char '_'] 25 rest <- many1 $ choice [alphaNum, char '_', digit , char '^', char '!']25 rest <- many1 $ choice [alphaNum, char '_', digit , char '!'] 26 26 return $ [first] ++ rest 27 27 … … 89 89 Nothing -> 90 90 do 91 let new = " xxx"++(show $ Map.size decls)91 let new = "___implicit_register___"++(show $ Map.size decls) 92 92 updateState $ Map.insert c new 93 93 decls <- getState -
v6/smop/src/smop_mold.c
r22015 r22016 129 129 static SMOP__Object* get_register(SMOP__Object* interpreter,smop_mold_frame* frame) { 130 130 smop_mold* mold = (smop_mold*) frame->mold; 131 //printf("reading register %d from position %d\n",mold->opcodes[frame->position],frame->position);132 131 if (!frame->registers[mold->opcodes[frame->position]]) { 133 132 printf("reading empty register %d\n",mold->opcodes[frame->position]); … … 200 199 } else if (SMOP__ID__eval == identifier) { 201 200 int op = mold->opcodes[frame->position]; 202 //printf("op: %d\n",op);203 201 if (op) { 204 //int from = frame->position; //for tracing205 202 frame->position++; 206 203 ret = SMOP__NATIVE__bool_true; … … 232 229 free(call_pos); 233 230 SMOP__Object* ret = SMOP_DISPATCH(interpreter,SMOP_RI(call_invocant),call_identifier,capture); 234 //printf("got %p putting it into %d\n",ret,target);235 231 if (frame->registers[target]) { 236 232 SMOP_RELEASE(interpreter,frame->registers[target]); … … 292 288 } 293 289 294 /*295 for (i=from;i<frame->position;i++) {296 printf("%d ",mold->opcodes[i]);297 }298 printf("\n");299 for (i=0;i<mold->registers;i++) {300 if (frame->registers[i]) {301 printf("%d = %s\n",i,frame->registers[i]->RI->id);302 } else {303 printf("%d = (null)\n",i,frame->registers[i]);304 }305 }*/306 290 } else { 307 291 ret = SMOP__NATIVE__bool_false;
