Changeset 5167
- Timestamp:
- 07/04/05 00:34:05 (4 years ago)
- svk:copy_cache_prev:
- 6965
- Location:
- src/Pugs
- Files:
-
- 2 modified
-
AST/Internals.hs (modified) (2 diffs)
-
CodeGen/PIR.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/AST/Internals.hs
r5121 r5167 52 52 ifListContext, ifValTypeIsa, evalValType, fromVal', 53 53 scalarRef, codeRef, arrayRef, hashRef, thunkRef, pairRef, 54 newScalar, newArray, newHa ndle, newObject,54 newScalar, newArray, newHash, newHandle, newObject, 55 55 proxyScalar, constScalar, lazyScalar, lazyUndef, constArray, 56 56 retError, retControl, retEmpty, retIVar, readIVar, writeIVar, … … 1562 1562 return $ IArray av 1563 1563 1564 newHash :: (MonadSTM m) => VHash -> m (IVar VHash) 1565 newHash hash = do 1566 ihash <- liftSTM (newTVar $ Map.map lazyScalar hash) 1567 return $ IHash ihash 1568 1564 1569 newHandle :: (MonadSTM m) => VHandle -> m (IVar VHandle) 1565 1570 newHandle = return . IHandle -
src/Pugs/CodeGen/PIR.hs
r4972 r5167 18 18 import Pugs.AST 19 19 import Pugs.AST.Internals 20 import Pugs.Eval.Var 20 21 import Emit.Common 21 22 import Emit.PIR … … 311 312 let var = render $ varText name 312 313 tellIns $ InsLocal RegPMC var 313 tellIns $ InsNew (VAR var) ( read $ render $varInit name)314 tellIns $ InsNew (VAR var) (varInit name) 314 315 return $ reg (VAR var) 315 316 316 varInit :: String -> Doc317 varInit ('$':_) = text $ "PerlScalar"318 varInit ('@':_) = text $ "PerlArray"319 varInit ('%':_) = text $ "PerlHash"320 varInit ('&':_) = text $ "PerlScalar"321 varInit x = error $ "invalid name: " ++ x317 varInit :: String -> ObjType 318 varInit ('$':_) = PerlScalar 319 varInit ('@':_) = PerlArray 320 varInit ('%':_) = PerlHash 321 varInit ('&':_) = PerlScalar 322 varInit x = internalError $ "Invalid name: " ++ x 322 323 323 324 {-| Compiles the current environment to PIR code. -}
