Changeset 8677 for src/Pugs/Compile.hs
- Timestamp:
- 01/15/06 09:38:20 (3 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Compile.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Compile.hs
r8153 r8677 121 121 122 122 instance Compile (SubName, VCode) [PIL_Decl] where 123 {- 123 124 compile (name, vsub) | packageOf name /= packageOf (subName vsub) = do 124 125 let storeC = PBind [PVar $ qualify name] (PExp . PVar . qualify $ subName vsub) … … 126 127 exportL = "__export_" ++ (render $ varText name) 127 128 return [PSub exportL SubPrim [] False False bodyC] 129 -} 128 130 compile (name, vsub) = do 129 131 bodyC <- enter cxtItemAny . compile $ case subBody vsub of … … 134 136 135 137 instance Compile (String, [(TVar Bool, TVar VRef)]) PIL_Expr where 138 compile (name, ((_, ref):_)) = do 139 rv <- readRef =<< liftSTM (readTVar ref) 140 case rv of 141 VCode sub -> return $ PRawName (subName sub) 142 _ -> return $ PRawName name 136 143 compile (name, _) = return $ PRawName name 137 144 … … 143 150 compile $ mergeStmts exp rest 144 151 compile (Stmts (Pad scope pad exp) rest) = do 145 expC <- compile $ mergeStmts exp rest146 152 padC <- compile $ padToList pad 147 return $ PPad scope ((map fst $ padToList pad) `zip` padC) expC 153 let symC = (map fst $ padToList pad) `zip` padC 154 exps = [ Syn ":=" [Var name, Var from] | (name, PRawName from) <- symC ] 155 expC <- compile $ mergeStmts (foldl1 mergeStmts (exps ++ [exp])) rest 156 return $ PPad scope symC expC 148 157 compile exp = compileStmts exp 149 158
