Changeset 22313 for src/Pugs/Compile.hs
- Timestamp:
- 09/22/08 19:30:53 (2 months ago)
- Files:
-
- 1 modified
-
src/Pugs/Compile.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Compile.hs
r21930 r22313 26 26 import Language.PIR 27 27 import Text.PrettyPrint 28 import qualified Data.ByteString.Char8 as BS 28 29 29 30 tcVoid, tcLValue :: TCxt … … 384 385 _PVar = PVar . cast 385 386 387 addPad stmt entry = PPad{pStmts=stmt,pScope=SMy,pSyms=[((BS.unpack $ cast $ fst entry),PRawName "...")]} 386 388 {-| Compiles various 'Exp's to 'PIL_Expr's. -} 387 389 instance Compile Exp PIL_Expr where … … 399 401 bodyC <- compile body 400 402 return $ PExp $ PApp cxt (pBlock bodyC) Nothing [] 401 compile (Syn "sub" [Val (VCode sub)]) = do403 compile (Syn "sub" [Val (VCode sub)]) = do 402 404 bodyC <- enter sub $ compile $ case subBody sub of 403 405 Syn "block" [exp] -> exp 404 406 exp -> exp 405 407 paramsC <- compile $ subParams sub 406 return $ PCode (subType sub) paramsC (subLValue sub) (isMulti sub) bodyC408 return $ PCode (subType sub) paramsC (subLValue sub) (isMulti sub) (foldl addPad bodyC (padToList $ subInnerPad sub)) 407 409 compile (Syn "module" _) = compile Noop 408 410 compile (Syn "match" exp) = compile $ Syn "rx" exp -- wrong
