Changeset 22251 for src/Pugs/CodeGen

Show
Ignore:
Timestamp:
09/15/08 10:58:57 (3 months ago)
Author:
pmurias
Message:

[smop/pugs]
switched to method postcircumfix:<( )> (|$capture) {...}
interpreter dies on an unknown method
pugs emits correct m0ld for $*OUT.print("1..1\nok 1\n")

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/CodeGen/M0ld.hs

    r22196 r22251  
    2121            ++ "my $scope;\n"  
    2222            ++ "my $void;\n" 
    23             ++ "my $Code_scalar = $scope.\"postcircumfix:{ }\"(\"Code\");\n" 
     23            ++ "my $Code_scalar = $scope.\"lookup\"(\"Code\");\n" 
    2424            ++ "my $Code = $Code_scalar.\"FETCH\"();\n" 
    2525 
     
    5353                ++ lexicalPrelude 
    5454                ++ body 
    55                 ++ void ++ " = $interpreter.\"return\"(" ++ ret ++ ");\n" 
     55                ++ "my $continuation = $interpreter.\"continuation\"();\n" 
     56                ++ "my $back = $continuation.\"back\"();\n" 
     57                ++ "my $void = $back.\"setr\"(" ++ ret ++ ");\n" 
     58                ++ "$void = $interpreter.\"goto\"($back);\n" 
     59--                ++ void ++ " = $interpreter.\"return\"(" ++ ret ++ ");\n" 
    5660                ++ "}));\n") 
    5761        PLit {pLit=lit} -> emit lit r 
     
    8286            methodCall inv method args r 
    8387        PVar {pVarName=name} -> do 
    84             return $ "my " ++ r ++ " = $scope.\"postcircumfix:{ }\"(\"" ++ name ++ "\");\n" 
     88            scalar <- uniqueId 
     89            return $ "my " ++ scalar ++ " = $scope.\"lookup\"(\"" ++ name ++ "\");\n" 
     90                ++ "my " ++ r ++ " = " ++ scalar ++ ".\"FETCH\"();\n" 
    8591        other -> return $ (show other) ++ ";\n" 
    8692