Changeset 6801 for src/Pugs/Compile.hs
- Timestamp:
- 09/06/05 17:00:17 (3 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Compile.hs (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Compile.hs
r6682 r6801 105 105 name' | ':' `elem` name = name 106 106 | otherwise = "main::" ++ name -- XXX wrong 107 return [PSub initL SubPrim [] False bodyC]107 return [PSub initL SubPrim [] False False bodyC] 108 108 canCompile _ = return [] 109 109 doCode name vsub = case subBody vsub of … … 117 117 compile (name, decls) = do 118 118 let bodyC = [ PStmts . PStmt . PExp $ PApp tcVoid (PExp (PVar sub)) Nothing [] 119 | PSub sub _ _ _ _ <- decls119 | PSub sub _ _ _ _ _ <- decls 120 120 ] 121 return (PSub name SubPrim [] False (combine bodyC PNil):decls)121 return (PSub name SubPrim [] False False (combine bodyC PNil):decls) 122 122 123 123 instance Compile (SubName, VCode) [PIL_Decl] where … … 126 126 bodyC = PStmts (PStmt . PExp $ storeC) PNil 127 127 exportL = "__export_" ++ (render $ varText name) 128 return [PSub exportL SubPrim [] False bodyC]128 return [PSub exportL SubPrim [] False False bodyC] 129 129 compile (name, vsub) = do 130 130 bodyC <- enter cxtItemAny . compile $ case subBody vsub of … … 132 132 body -> body 133 133 paramsC <- compile $ subParams vsub 134 return [PSub name (subType vsub) paramsC (subLValue vsub) bodyC]134 return [PSub name (subType vsub) paramsC (subLValue vsub) (isMulti vsub) bodyC] 135 135 136 136 instance Compile (String, [(TVar Bool, TVar VRef)]) PIL_Expr where … … 236 236 237 237 pBlock :: PIL_Stmts -> PIL_Expr 238 pBlock = PCode SubBlock [] False 238 pBlock = PCode SubBlock [] False False 239 239 240 240 {- … … 372 372 exp -> exp 373 373 paramsC <- compile $ subParams sub 374 return $ PCode (subType sub) paramsC (subLValue sub) bodyC374 return $ PCode (subType sub) paramsC (subLValue sub) (isMulti sub) bodyC 375 375 compile (Syn "module" _) = compile Noop 376 376 compile (Syn "match" exp) = compile $ Syn "rx" exp -- wrong
