Changeset 4885 for src/Pugs/Compile/PIR.hs
- Timestamp:
- 06/20/05 21:50:09 (4 years ago)
- svk:copy_cache_prev:
- 6641
- Files:
-
- 1 modified
-
src/Pugs/Compile/PIR.hs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Compile/PIR.hs
r4882 r4885 244 244 return $ PStmt $ PExp $ PApp TCxtVoid funC 245 245 [preC, pBlock condC, pBlock bodyC, pBlock postC] 246 compile exp@(Syn "unless" _) = fmap (PStmt . PExp) $ compConditional exp 247 compile exp@(Syn "while" _) = compLoop exp 248 compile exp@(Syn "until" _) = compLoop exp 249 compile (Syn "for" [exp, body]) = do 250 expC <- compile exp 251 bodyC <- compile body 252 funC <- compile (Var "&statement_control:for") 253 return $ PStmt $ PExp $ PApp TCxtVoid funC [expC, bodyC] 254 compile (Syn "given" _) = compile (Var "$_") -- XXX 255 compile (Syn "when" _) = compile (Var "$_") -- XXX 246 256 compile exp = fmap PStmt $ compile exp 247 257 … … 297 307 return $ PApp cxt funC argsC 298 308 compile exp@(Syn "if" _) = compConditional exp 299 compile exp@(Syn "unless" _) = compConditional exp300 compile exp@(Syn "while" _) = compLoop exp301 compile exp@(Syn "until" _) = compLoop exp302 compile (Syn "given" _) = compile (Var "$_") -- XXX303 compile (Syn "when" _) = compile (Var "$_") -- XXX304 309 compile (Syn "{}" (x:xs)) = compile (App (Var "&postcircumfix:{}") (Just x) xs) 305 310 compile (Syn "[]" (x:xs)) = do … … 323 328 compile exp = compError exp 324 329 325 compLoop :: Exp -> Comp (PIL LValue)330 compLoop :: Exp -> Comp (PIL Stmt) 326 331 compLoop (Syn name [cond, body]) = do 327 332 cxt <- askTCxt … … 329 334 bodyC <- compile body 330 335 funC <- compile (Var $ "&statement_control:" ++ name) 331 return $ PApp cxt funC [pBlock condC, pBlock bodyC]336 return . PStmt . PExp $ PApp cxt funC [pBlock condC, pBlock bodyC] 332 337 compLoop exp = compError exp 333 338 … … 362 367 paramsC <- compile $ subParams sub 363 368 return $ PCode (subType sub) paramsC bodyC 364 compile (Syn "for" _) = compile Noop -- XXX TODO365 369 compile (Syn "module" _) = compile Noop 366 370 compile (Syn "match" exp) = compile $ Syn "rx" exp -- wrong
