Changeset 22254 for v6

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 ¢

Location:
v6/smop
Files:
1 added
1 removed
3 modified

Legend:

Unmodified
Added
Removed
  • v6/smop/CMakeLists.txt

    r22249 r22254  
    6161    ) 
    6262endmacro(compile_perl6) 
     63 
     64macro (compile_perl6_pugs dsl_file) 
     65    string(REGEX REPLACE ".p6-pugs$" ".m0ld" m0ld_file ${dsl_file}) 
     66    string(REGEX REPLACE ".m0ld$" ".c" c_file ${m0ld_file}) 
     67    add_custom_command ( 
     68        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${c_file} 
     69        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${m0ld_file} 
     70        COMMAND perl ARGS ${smop_SOURCE_DIR}/tools/dsl p6-pugs ${smop_SOURCE_DIR}/ ${CMAKE_CURRENT_BINARY_DIR}/m0ld_exe ${smop_SOURCE_DIR}/${dsl_file} ${CMAKE_CURRENT_BINARY_DIR}/${m0ld_file} 
     71        COMMAND perl ARGS ${smop_SOURCE_DIR}/tools/dsl m0ld ${smop_SOURCE_DIR}/ ${CMAKE_CURRENT_BINARY_DIR}/m0ld_exe ${CMAKE_CURRENT_BINARY_DIR}/${m0ld_file} ${CMAKE_CURRENT_BINARY_DIR}/${c_file} 
     72        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/m0ld_exe 
     73        DEPENDS ${smop_SOURCE_DIR}/${dsl_file} 
     74        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../pugs 
     75    ) 
     76endmacro(compile_perl6_pugs) 
    6377 
    6478foreach (sm0p_file 
     
    151165    test/31_int_postfix_plusplus.m0ld 
    152166    test/32_array_iterator.m0ld 
    153     test/modified_pugs_output.m0ld 
     167    test/33_pugs_simple.p6-pugs 
    154168) 
    155169    set(c_file) 
     
    163177        compile_perl6 (${test_file}) 
    164178        string(REGEX REPLACE "\\.p6$" ".c" c_file ${test_file}) 
     179    elseif (test_file MATCHES "\\.p6-pugs$") 
     180        compile_perl6_pugs (${test_file}) 
     181        string(REGEX REPLACE "\\.p6-pugs$" ".c" c_file ${test_file}) 
    165182    elseif (test_file MATCHES "\\.c$") 
    166183        set(c_file ${test_file}) 
  • v6/smop/m0ld/M0ld.hs

    r22249 r22254  
    6161constant = choice  
    6262      [ do 
    63           char '¢' 
     63          (char '¢') <|> (char '?') 
    6464          name <- identifier 
    6565          return $ Var name 
  • v6/smop/tools/dsl

    r21970 r22254  
    1111} elsif ($dsl eq 'p6') { 
    1212    system("perl $elfX -C m0ld -s $in > $out"); 
     13} elsif ($dsl eq 'p6-pugs') { 
     14    system("$base/../../pugs -Cm0ld $in > $out"); 
    1315} else { 
    1416    die "unknown DSL\n";