Changeset 22306 for src/Pugs/CodeGen
- Timestamp:
- 09/22/08 00:39:03 (2 months ago)
- Files:
-
- 1 modified
-
src/Pugs/CodeGen/M0ld.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/CodeGen/M0ld.hs
r22303 r22306 7 7 import Pugs.PIL1 8 8 import Control.Monad.State 9 import Data.List 9 10 10 11 uniqueId = do … … 97 98 inv_code <- fetch (emit inv) inv_r 98 99 args <- mapM (\arg -> do 99 arg_ id<- uniqueId100 arg_code <- fetch (emit arg) arg_ id101 return (arg_code,arg_ id)) args102 return (inv_code ++ (concat $ fmap fst args) ++ "my " ++ r ++ " = " ++ inv_r ++ ".\"" ++ method ++ "\"(" ++ (concat $ fmap snd args) ++ ");\n")100 arg_reg <- uniqueId 101 arg_code <- fetch (emit arg) arg_reg 102 return (arg_code,arg_reg)) args 103 return (inv_code ++ (concat $ fmap fst args) ++ "my " ++ r ++ " = " ++ inv_r ++ ".\"" ++ method ++ "\"(" ++ (concat $ intersperse "," $ fmap snd args) ++ ");\n") 103 104 104 105 instance EmitM0ld PIL_LValue where … … 109 110 methodCall inv method args r 110 111 PVar {pVarName=name} -> return $ "my " ++ r ++ " = $scope.\"lookup\"(\"" ++ name ++ "\");\n" 112 PAssign {pLHS=[lhs],pRHS=rhs} -> do 113 lhs_reg <- uniqueId 114 lhs_code <- emit lhs lhs_reg 115 rhs_reg <- uniqueId 116 rhs_code <- fetch (emit rhs) rhs_reg 117 return $ lhs_code ++ rhs_code ++ "my " ++ r ++ " = " ++ lhs_reg ++ ".\"STORE\"(" ++ rhs_reg ++ ");\n" 118 111 119 other -> return $ (show other) ++ ";\n" 112 120
