- Timestamp:
- 09/14/08 23:34:35 (3 months ago)
- Location:
- v6/smop
- Files:
-
- 1 added
- 2 modified
-
CMakeLists.txt (modified) (2 diffs)
-
m0ld/M0ld.hs (modified) (3 diffs)
-
test/modified_pugs_output.m0ld (added)
Legend:
- Unmodified
- Added
- Removed
-
v6/smop/CMakeLists.txt
r22230 r22249 87 87 src/p6opaque.c 88 88 src/smop.c 89 src/smop_haskell_ffi.c 89 90 src/smop_internal.h 90 91 src/smop_interpreter.c … … 150 151 test/31_int_postfix_plusplus.m0ld 151 152 test/32_array_iterator.m0ld 153 test/modified_pugs_output.m0ld 152 154 ) 153 155 set(c_file) -
v6/smop/m0ld/M0ld.hs
r22246 r22249 211 211 addRegister regs stmt = case stmt of 212 212 Decl reg None -> regs 213 Decl reg value -> Map.insert reg (Map.size regs) regs213 Decl reg value -> if (Map.member reg regs) then regs else Map.insert reg (Map.size regs) regs 214 214 _ -> regs 215 215 216 216 addFreeRegister :: RegMap -> Stmt -> RegMap 217 217 addFreeRegister regs stmt = case stmt of 218 Decl reg None -> Map.insert reg (Map.size regs) regs218 Decl reg None -> if (Map.member reg regs) then regs else Map.insert reg (Map.size regs) regs 219 219 Decl reg _ -> regs 220 220 _ -> regs … … 279 279 Var name -> "¢" ++ name ++ "\n" 280 280 SubMold stmts -> "{\n" ++ (prettyPrintBytecode (" " ++ indent) stmts) ++ indent ++ "}\n" 281 281 282 prettyPrintBytecode indent stmts = 282 283 let labelsMap = mapLabels stmts … … 286 287 prettyPrintOp op = indent ++ (joinStr " " $ ( map show (toBytecode op regMap labelsMap))) ++ "\n" 287 288 decls = [prettyPrintConstant indent c | Decl reg c <- filter (not . isReg) stmts] 288 in (concat $ map (\(i,e) -> indent ++ "$" ++ (show i) ++ " = " ++ e) (zip [0..(length decls - 1)] decls)) ++289 (concat $ map prettyPrintOp stmts)289 in (concat $ map (\(i,e) -> indent ++ "$" ++ (show i) ++ " = " ++ e) (zip [0..(length decls - 1)] decls)) 290 ++ (concat $ map prettyPrintOp stmts) 290 291 291 292 type ImplicitDecls = Map.Map Value [Char]
