Changeset 5167 for src/Pugs/CodeGen
- Timestamp:
- 07/04/05 00:34:05 (3 years ago)
- svk:copy_cache_prev:
- 6965
- Files:
-
- 1 modified
-
src/Pugs/CodeGen/PIR.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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. -}
