Changeset 22254 for src/Pugs/CodeGen

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

[smop][pugs]
pugs generates working m0ld
added a very simple test for that
m0ld also accepts ? as an ascii replacement for ¢

Files:
1 modified

Legend:

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

    r22251 r22254  
    1818    emit :: a -> [Char] -> State Int [Char] 
    1919 
     20setupTopmostScope = 
     21       "my $void;\n" 
     22    ++ "my $scope = ?SMOP__S1P__LexicalScope.\"new\"();\n" 
     23    ++ "\n" 
     24    ++ "my $OUT_root_scalar = ?SMOP__S1P__RootNamespace.\"postcircumfix:{ }\"(\"$*OUT\");\n" 
     25    ++ "my $OUT_root = $OUT_root_scalar.\"FETCH\"();\n" 
     26    ++ "my $OUT_scalar = $scope.\"postcircumfix:{ }\"(\"$*OUT\");\n" 
     27    ++ "$void = $OUT_scalar.\"STORE\"($OUT_root);\n" 
     28    ++ "\n" 
     29    ++ "my $Code_scalar = $scope.\"postcircumfix:{ }\"(\"Code\");\n" 
     30    ++ "my $Code_root_scalar = ?SMOP__S1P__RootNamespace.\"postcircumfix:{ }\"(\"::Code\");\n" 
     31    ++ "my $Code = $Code_root_scalar.\"FETCH\"();\n" 
     32    ++ "$void = $Code_scalar.\"STORE\"($Code);\n" 
     33    ++ "\n" 
     34    ++ "\n" 
     35    ++ "##############################################################\n" 
     36 
    2037lexicalPrelude = "my $interpreter;\n" 
    2138            ++ "my $scope;\n"  
     
    2744    emit env r = do 
    2845        main <- emit (pilMain env) r 
    29         return $ lexicalPrelude ++ main 
     46        return $ setupTopmostScope ++ main 
    3047instance EmitM0ld PIL_Stmts where 
    3148    emit statement r = case statement of