Changeset 22313
- Timestamp:
- 09/22/08 19:30:53 (2 months ago)
- Files:
-
- 5 modified
-
src/Pugs/CodeGen/M0ld.hs (modified) (3 diffs)
-
src/Pugs/Compile.hs (modified) (3 diffs)
-
v6/smop/src/smop_s1p_hash.c (modified) (1 diff)
-
v6/smop/src/smop_s1p_root_namespace.c (modified) (1 diff)
-
v6/smop/test/33_pugs_simple.p6-pugs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/CodeGen/M0ld.hs
r22306 r22313 28 28 ++ "$void = $OUT_scalar.\"STORE\"($OUT_root);\n" 29 29 ++ "\n" 30 30 31 ++ "my $Code_scalar = $scope.\"postcircumfix:{ }\"(\"Code\");\n" 31 32 ++ "my $Code_root_scalar = ?SMOP__S1P__RootNamespace.\"postcircumfix:{ }\"(\"::Code\");\n" 32 33 ++ "my $Code = $Code_root_scalar.\"FETCH\"();\n" 33 34 ++ "$void = $Code_scalar.\"STORE\"($Code);\n" 35 36 ++ "my $Scalar_scalar = $scope.\"postcircumfix:{ }\"(\"Scalar\");\n" 37 ++ "my $Scalar_root_scalar = ?SMOP__S1P__RootNamespace.\"postcircumfix:{ }\"(\"::Scalar\");\n" 38 ++ "my $Scalar = $Scalar_root_scalar.\"FETCH\"();\n" 39 ++ "$void = $Scalar_scalar.\"STORE\"($Scalar);\n" 40 34 41 ++ "\n" 35 42 ++ "\n" … … 41 48 ++ "my $Code_scalar = $scope.\"lookup\"(\"Code\");\n" 42 49 ++ "my $Code = $Code_scalar.\"FETCH\"();\n" 50 ++ "my $Scalar_scalar = $scope.\"lookup\"(\"Scalar\");\n" 51 ++ "my $Scalar = $Scalar_scalar.\"FETCH\"();\n" 43 52 44 53 instance EmitM0ld PIL_Environment where … … 49 58 emit statement r = case statement of 50 59 PNil -> return "nil" 51 PPad {} -> return "pad" 60 PPad {pStmts=rest,pScope=SMy,pSyms=[(var,_)]} -> do 61 new_scalar <- uniqueId 62 lexpad_cell <- uniqueId 63 rest <- emit rest r 64 return $ 65 "my " ++ new_scalar ++ " = $Scalar.\"new\"();\n" 66 ++ "my " ++ lexpad_cell ++ " = $scope.\"postcircumfix:{ }\"(" ++ (show var) ++ ");\n" 67 ++ "my $void = " ++ lexpad_cell ++ ".\"STORE\"(" ++ new_scalar ++ ");\n" 68 ++ rest 52 69 PStmts{pStmt=stmt,pStmts=PNil} -> emit stmt r 53 70 PStmts{pStmt=stmt,pStmts=rest} -> do -
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 -
v6/smop/src/smop_s1p_hash.c
r22017 r22313 74 74 ret = SMOP_REFERENCE(interpreter,cell); 75 75 } else { 76 fprintf(stderr,"wrong number of arguments to post rcicumfix:<{ }>\n");76 fprintf(stderr,"wrong number of arguments to postcircumfix:<{ }>\n"); 77 77 } 78 78 -
v6/smop/src/smop_s1p_root_namespace.c
r22281 r22313 30 30 smop_s1p_root_namespace_insert(SMOP__GlobalInterpreter,"::MoldFrame", SMOP__Mold__Frame); 31 31 smop_s1p_root_namespace_insert(SMOP__GlobalInterpreter,"::Code", SMOP__S1P__Code); 32 smop_s1p_root_namespace_insert(SMOP__GlobalInterpreter,"::Scalar", SMOP__S1P__Scalar); 32 33 } 33 34 -
v6/smop/test/33_pugs_simple.p6-pugs
r22306 r22313 1 $*OUT.print("1..","1\n"); 2 $*OUT.print("ok 1\n"); 1 my $one = "1"; 2 $*OUT.print("1..1","\n"); 3 $*OUT.print("ok ",$one,"\n");
