Author: autrijus
Date: Fri Oct  7 14:43:12 2005
New Revision: 9401

Modified:
   trunk/MANIFEST
   trunk/runtime/parrot/library/PGE/Hs.pir
Log:
* move the helper functions from run_pge.pir in Pugs into Parrot.


Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST      (original)
+++ trunk/MANIFEST      Fri Oct  7 14:43:12 2005
@@ -721,76 +721,76 @@ imcc/t/syn/pod.t                        
 imcc/t/syn/scope.t                                []
 imcc/t/syn/tail.t                                 []
 imcc/unit.h                                       []
-include/parrot/autoprefix.h                       [devel]include
-include/parrot/builtin.h                          [devel]include
-include/parrot/caches.h                           [devel]include
-include/parrot/cclass.h                           [devel]include
-include/parrot/charset.h                          [devel]include
-include/parrot/datatypes.h                        [devel]include
-include/parrot/debug.h                            [devel]include
-include/parrot/dod.h                              [devel]include
-include/parrot/dynext.h                           [devel]include
-include/parrot/embed.h                            [devel]include
-include/parrot/encoding.h                         [devel]include
-include/parrot/enums.h                            [devel]include
-include/parrot/events.h                           [devel]include
-include/parrot/exceptions.h                       [devel]include
-include/parrot/exec.h                             [devel]include
-include/parrot/exec_save.h                        [devel]include
-include/parrot/exit.h                             [devel]include
-include/parrot/extend.h                           [devel]include
-include/parrot/global_setup.h                     [devel]include
-include/parrot/global.h                           [devel]include
-include/parrot/hash.h                             [devel]include
-include/parrot/headers.h                          [devel]include
-include/parrot/hll.h                              [devel]include
-include/parrot/inter_call.h                       [devel]include
-include/parrot/interp_guts.h                      [devel]include
-include/parrot/interpreter.h                      [devel]include
-include/parrot/intlist.h                          [devel]include
-include/parrot/io.h                               [devel]include
-include/parrot/jit.h                              [devel]include
-include/parrot/key.h                              [devel]include
-include/parrot/lexical.h                          [devel]include
-include/parrot/library.h                          [devel]include
-include/parrot/list.h                             [devel]include
-include/parrot/longopt.h                          [devel]include
-include/parrot/memory.h                           [devel]include
-include/parrot/method_util.h                      [devel]include
-include/parrot/misc.h                             [devel]include
-include/parrot/mmd.h                              [devel]include
-include/parrot/nci.h                              [devel]include
-include/parrot/objects.h                          [devel]include
-include/parrot/op.h                               [devel]include
-include/parrot/oplib.h                            [devel]include
-include/parrot/packfile.h                         [devel]include
-include/parrot/parrot.h                           [devel]include
-include/parrot/perltypes.h                        [devel]include
-include/parrot/pic.h                              [devel]include
-include/parrot/pmc.h                              [devel]include
-include/parrot/pmc_freeze.h                       [devel]include
-include/parrot/pobj.h                             [devel]include
-include/parrot/regfuncs.h                         [devel]include
-include/parrot/register.h                         [devel]include
-include/parrot/resources.h                        [devel]include
-include/parrot/runops_cores.h                     [devel]include
-include/parrot/settings.h                         [devel]include
-include/parrot/slice.h                            [devel]include
-include/parrot/smallobject.h                      [devel]include
-include/parrot/stacks.h                           [devel]include
-include/parrot/stat.h                             [devel]include
-include/parrot/string.h                           [devel]include
-include/parrot/string_funcs.h                     [devel]include
-include/parrot/string_primitives.h                [devel]include
-include/parrot/sub.h                              [devel]include
-include/parrot/thr_pthread.h                      [devel]include
-include/parrot/thr_windows.h                      [devel]include
-include/parrot/thread.h                           [devel]include
-include/parrot/trace.h                            [devel]include
-include/parrot/tsq.h                              [devel]include
-include/parrot/unicode.h                          [devel]include
-include/parrot/vtables.h                          [devel]include
-include/parrot/warnings.h                         [devel]include
+include/parrot/autoprefix.h                       [main]include
+include/parrot/builtin.h                          [main]include
+include/parrot/caches.h                           [main]include
+include/parrot/cclass.h                           [main]include
+include/parrot/charset.h                          [main]include
+include/parrot/datatypes.h                        [main]include
+include/parrot/debug.h                            [main]include
+include/parrot/dod.h                              [main]include
+include/parrot/dynext.h                           [main]include
+include/parrot/embed.h                            [main]include
+include/parrot/encoding.h                         [main]include
+include/parrot/enums.h                            [main]include
+include/parrot/events.h                           [main]include
+include/parrot/exceptions.h                       [main]include
+include/parrot/exec.h                             [main]include
+include/parrot/exec_save.h                        [main]include
+include/parrot/exit.h                             [main]include
+include/parrot/extend.h                           [main]include
+include/parrot/global_setup.h                     [main]include
+include/parrot/global.h                           [main]include
+include/parrot/hash.h                             [main]include
+include/parrot/headers.h                          [main]include
+include/parrot/hll.h                              [main]include
+include/parrot/inter_call.h                       [main]include
+include/parrot/interp_guts.h                      [main]include
+include/parrot/interpreter.h                      [main]include
+include/parrot/intlist.h                          [main]include
+include/parrot/io.h                               [main]include
+include/parrot/jit.h                              [main]include
+include/parrot/key.h                              [main]include
+include/parrot/lexical.h                          [main]include
+include/parrot/library.h                          [main]include
+include/parrot/list.h                             [main]include
+include/parrot/longopt.h                          [main]include
+include/parrot/memory.h                           [main]include
+include/parrot/method_util.h                      [main]include
+include/parrot/misc.h                             [main]include
+include/parrot/mmd.h                              [main]include
+include/parrot/nci.h                              [main]include
+include/parrot/objects.h                          [main]include
+include/parrot/op.h                               [main]include
+include/parrot/oplib.h                            [main]include
+include/parrot/packfile.h                         [main]include
+include/parrot/parrot.h                           [main]include
+include/parrot/perltypes.h                        [main]include
+include/parrot/pic.h                              [main]include
+include/parrot/pmc.h                              [main]include
+include/parrot/pmc_freeze.h                       [main]include
+include/parrot/pobj.h                             [main]include
+include/parrot/regfuncs.h                         [main]include
+include/parrot/register.h                         [main]include
+include/parrot/resources.h                        [main]include
+include/parrot/runops_cores.h                     [main]include
+include/parrot/settings.h                         [main]include
+include/parrot/slice.h                            [main]include
+include/parrot/smallobject.h                      [main]include
+include/parrot/stacks.h                           [main]include
+include/parrot/stat.h                             [main]include
+include/parrot/string.h                           [main]include
+include/parrot/string_funcs.h                     [main]include
+include/parrot/string_primitives.h                [main]include
+include/parrot/sub.h                              [main]include
+include/parrot/thr_pthread.h                      [main]include
+include/parrot/thr_windows.h                      [main]include
+include/parrot/thread.h                           [main]include
+include/parrot/trace.h                            [main]include
+include/parrot/tsq.h                              [main]include
+include/parrot/unicode.h                          [main]include
+include/parrot/vtables.h                          [main]include
+include/parrot/warnings.h                         [main]include
 io/io.c                                           []
 io/io_buf.c                                       []
 io/io_layers.c                                    []

Modified: trunk/runtime/parrot/library/PGE/Hs.pir
==============================================================================
--- trunk/runtime/parrot/library/PGE/Hs.pir     (original)
+++ trunk/runtime/parrot/library/PGE/Hs.pir     Fri Oct  7 14:43:12 2005
@@ -106,6 +106,43 @@ whole thing may be taken out or refactor
     .return (out)
 .end
 
+.sub unescape
+    .param string str
+    .local string ret, tmp
+    .local int i, j
+
+    ret = ""
+    j = length str
+    if j == 0 goto END
+    i = 0
+
+LOOP:
+    tmp = str[i]
+    inc i
+    if i >= j goto FIN
+
+    eq tmp, "\\", ESC
+    concat ret, tmp
+    goto LOOP
+
+ESC:
+    tmp = str[i]
+    inc i
+    eq tmp, "n", LF
+    concat ret, tmp
+    goto UNESC
+LF:
+    concat ret, "\n"
+UNESC:
+    if i >= j goto END
+    goto LOOP
+
+FIN:
+    concat ret, tmp
+END:
+    .return(ret)
+.end
+
 .namespace [ "PGE::Match" ]
 
 .sub "dump_hs" :method

Reply via email to