PatchSet 7268 
Date: 2006/04/23 21:23:29
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
moved the stringParsing module to jit tests, where it's used

2006-04-23  Dalibor Topic  <[EMAIL PROTECTED]>

        * kaffe/kaffevm/Makefile.am: Removed stringParsing.c and
        stringParsing.h.

        * kaffe/kaffevm/stringParsing.c,
        kaffe/kaffevm/stringParsing.h: Removed since only used for jit testing.
        Moved over to ...

        * test/internal/stringParsing.c,
        test/internal/stringParsing.h: ... here.

        * test/internal/Makefile.am (jitBasic_SOURCES) Added stringParsing.c
        and stringParsing.h.

Members: 
        ChangeLog:1.4772->1.4773 
        kaffe/kaffevm/Makefile.am:1.79->1.80 
        kaffe/kaffevm/Makefile.in:1.228->1.229 
        kaffe/kaffevm/stringParsing.c:1.12->1.13(DEAD) 
        kaffe/kaffevm/stringParsing.h:1.2->1.3(DEAD) 
        test/internal/Makefile.am:1.23->1.24 
        test/internal/Makefile.in:1.133->1.134 
        test/internal/stringParsing.c:INITIAL->1.1 
        test/internal/stringParsing.h:INITIAL->1.1 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4772 kaffe/ChangeLog:1.4773
--- kaffe/ChangeLog:1.4772      Sun Apr 23 01:48:15 2006
+++ kaffe/ChangeLog     Sun Apr 23 21:23:29 2006
@@ -1,5 +1,20 @@
 2006-04-23  Dalibor Topic  <[EMAIL PROTECTED]>
 
+       * kaffe/kaffevm/Makefile.am: Removed stringParsing.c and 
+       stringParsing.h.
+
+       * kaffe/kaffevm/stringParsing.c,
+       kaffe/kaffevm/stringParsing.h: Removed since only used for jit testing. 
+       Moved over to ...
+
+       * test/internal/stringParsing.c,
+       test/internal/stringParsing.h: ... here.
+
+       * test/internal/Makefile.am (jitBasic_SOURCES) Added stringParsing.c
+       and stringParsing.h.
+
+2006-04-23  Dalibor Topic  <[EMAIL PROTECTED]>
+
        * config/powerpc/jit3-powerpc.def: Fixed small powerpc
        jitter debug message format warnings.
 
Index: kaffe/kaffe/kaffevm/Makefile.am
diff -u kaffe/kaffe/kaffevm/Makefile.am:1.79 
kaffe/kaffe/kaffevm/Makefile.am:1.80
--- kaffe/kaffe/kaffevm/Makefile.am:1.79        Fri Apr 21 01:32:41 2006
+++ kaffe/kaffe/kaffevm/Makefile.am     Sun Apr 23 21:23:33 2006
@@ -114,7 +114,6 @@
        stackTrace.c \
        stats.c \
        string.c \
-       stringParsing.c \
        support.c \
        javacall.c \
        thread.c \
@@ -153,7 +152,6 @@
        soft.h \
        stackTrace.h \
        stats.h \
-       stringParsing.h \
        stringSupport.h \
        support.h \
        thread.h \
Index: kaffe/kaffe/kaffevm/Makefile.in
diff -u kaffe/kaffe/kaffevm/Makefile.in:1.228 
kaffe/kaffe/kaffevm/Makefile.in:1.229
--- kaffe/kaffe/kaffevm/Makefile.in:1.228       Fri Apr 21 01:32:42 2006
+++ kaffe/kaffe/kaffevm/Makefile.in     Sun Apr 23 21:23:33 2006
@@ -108,11 +108,11 @@
        libkaffevm_la-lookup.lo libkaffevm_la-object.lo \
        libkaffevm_la-readClass.lo libkaffevm_la-soft.lo \
        libkaffevm_la-stackTrace.lo libkaffevm_la-stats.lo \
-       libkaffevm_la-string.lo libkaffevm_la-stringParsing.lo \
-       libkaffevm_la-support.lo libkaffevm_la-javacall.lo \
-       libkaffevm_la-thread.lo libkaffevm_la-utf8const.lo \
-       libkaffevm_la-gcFuncs.lo libkaffevm_la-reflect.lo \
-       libkaffevm_la-reference.lo libkaffevm_la-binreloc.lo
+       libkaffevm_la-string.lo libkaffevm_la-support.lo \
+       libkaffevm_la-javacall.lo libkaffevm_la-thread.lo \
+       libkaffevm_la-utf8const.lo libkaffevm_la-gcFuncs.lo \
+       libkaffevm_la-reflect.lo libkaffevm_la-reference.lo \
+       libkaffevm_la-binreloc.lo
 am__objects_1 = libkaffevm_la-md.lo
 nodist_libkaffevm_la_OBJECTS = $(am__objects_1)
 libkaffevm_la_OBJECTS = $(am_libkaffevm_la_OBJECTS) \
@@ -500,7 +500,6 @@
        stackTrace.c \
        stats.c \
        string.c \
-       stringParsing.c \
        support.c \
        javacall.c \
        thread.c \
@@ -539,7 +538,6 @@
        soft.h \
        stackTrace.h \
        stats.h \
-       stringParsing.h \
        stringSupport.h \
        support.h \
        thread.h \
@@ -652,7 +650,6 @@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
[EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
@@ -859,13 +856,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='string.c' 
object='libkaffevm_la-string.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(libkaffevm_la_CFLAGS) $(CFLAGS) -c -o libkaffevm_la-string.lo `test -f 
'string.c' || echo '$(srcdir)/'`string.c
-
-libkaffevm_la-stringParsing.lo: stringParsing.c
[EMAIL PROTECTED]@      if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(libkaffevm_la_CFLAGS) $(CFLAGS) -MT libkaffevm_la-stringParsing.lo -MD -MP 
-MF "$(DEPDIR)/libkaffevm_la-stringParsing.Tpo" -c -o 
libkaffevm_la-stringParsing.lo `test -f 'stringParsing.c' || echo 
'$(srcdir)/'`stringParsing.c; \
[EMAIL PROTECTED]@      then mv -f "$(DEPDIR)/libkaffevm_la-stringParsing.Tpo" 
"$(DEPDIR)/libkaffevm_la-stringParsing.Plo"; else rm -f 
"$(DEPDIR)/libkaffevm_la-stringParsing.Tpo"; exit 1; fi
[EMAIL PROTECTED]@@am__fastdepCC_FALSE@ source='stringParsing.c' 
object='libkaffevm_la-stringParsing.lo' libtool=yes @AMDEPBACKSLASH@
[EMAIL PROTECTED]@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
[EMAIL PROTECTED]@      $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(libkaffevm_la_CFLAGS) $(CFLAGS) -c -o libkaffevm_la-stringParsing.lo `test -f 
'stringParsing.c' || echo '$(srcdir)/'`stringParsing.c
 
 libkaffevm_la-support.lo: support.c
 @am__fastdepCC_TRUE@   if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(libkaffevm_la_CFLAGS) $(CFLAGS) -MT libkaffevm_la-support.lo -MD -MP -MF 
"$(DEPDIR)/libkaffevm_la-support.Tpo" -c -o libkaffevm_la-support.lo `test -f 
'support.c' || echo '$(srcdir)/'`support.c; \
===================================================================
Checking out kaffe/kaffe/kaffevm/stringParsing.c
RCS:  /home/cvs/kaffe/kaffe/kaffe/kaffevm/Attic/stringParsing.c,v
VERS: 1.12
***************
--- kaffe/kaffe/kaffevm/stringParsing.c Sun Apr 23 21:37:49 2006
+++ /dev/null   Sun Aug  4 19:57:58 2002
@@ -1,885 +0,0 @@
-/*
- * stringParsing.c
- * A handy string parsing function.
- *
- * Copyright (c) 2000, 2001, 2002, 2003 The University of Utah and the Flux 
Group.
- * All rights reserved.
- *
- * @JANOSVM_KAFFE_MISC_LICENSE@
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "stringParsing.h"
-
-/* We use this in JSI stuff too, and we don't want to drag in kaffe goo. */
-#include "gtypes.h"
-#include "gc.h"
-#include "kaffe/jmalloc.h"
-#include "defs.h"
-
-#define spMalloc(x) gc_malloc(x, KGC_ALLOC_FIXED)
-#define spFree(x) gc_free(x)
-
-int cmpPStrStr(parsedString *ps, char *str)
-{
-       char *ps_pos, *ps_end;
-       int retval = 0;
-
-       assert(ps != 0);
-       assert(str != 0);
-       
-       for( ps_pos = ps->data, ps_end = ps->data + ps->len;
-            !retval && (ps_pos < ps_end) && *str;
-            ps_pos++, str++ )
-       {
-               if( *ps_pos != *str )
-               {
-                       /* XXX */
-                       retval = *ps_pos - *str;
-               }
-       }
-       if( !retval && ((ps_pos != ps_end) || (*str != 0)) )
-       {
-               /* XXX */
-               retval = 1;
-       }
-       return( retval );
-}
-
-typedef struct _parseValue {
-       int type;
-       char *value;
-       union {
-               void *p;
-               char *c;
-               short *s;
-               int *i;
-               float *f;
-               double *d;
-               long long *ll;
-               parsedString *ps;
-       } storage;
-} parseValue;
-
-typedef struct _parseFrame {
-       struct _parseFrame *prev;
-       int op;
-       parseValue pv;
-       stringScript *script_pos;
-       int values_pos;
-       va_list args;
-} parseFrame;
-
-#define PREALLOC_FRAMES 8
-
-typedef struct _parseStack {
-       struct _parseFrame *top;
-       struct _parseFrame frames[PREALLOC_FRAMES];
-       int depth;
-} parseStack;
-
-static
-int pushFrame(parseErrorInfo *pe,
-             parseStack *ps,
-             int op,
-             stringScript *script_pos,
-             int values_pos,
-             va_list args)
-{
-       parseFrame *pf;
-       int retval = 0;
-
-       assert(ps != 0);
-
-       ps->depth++;
-       if( ps->depth < PREALLOC_FRAMES )
-       {
-               pf = &ps->frames[ps->depth];
-       }
-       else
-       {
-               pf = spMalloc(sizeof(parseFrame));
-       }
-       if( pf )
-       {
-               pf->prev = ps->top;
-               pf->op = op;
-               pf->pv.type = SPO_Noop;
-               pf->script_pos = script_pos;
-               pf->values_pos = values_pos;
-               VA_LIST_COPY(pf->args, args);
-               ps->top = pf;
-               retval = 1;
-       }
-       else
-       {
-               pe->position = NULL;
-               pe->op = op;
-       }
-       return( retval );
-}
-
-static
-void popFrame(parseStack *ps)
-{
-       parseFrame *prev;
-
-       assert(ps != NULL);
-
-       prev = ps->top->prev;
-       if( ps->depth >= PREALLOC_FRAMES )
-               spFree(ps->top);
-       ps->depth--;
-       ps->top = prev;
-}
-
-static
-void cutFrames(parseStack *ps)
-{
-       assert(ps != NULL);
-       
-       while( ps->depth >= PREALLOC_FRAMES )
-       {
-               popFrame(ps);
-       }
-}
-
-static
-int storeValue(parseErrorInfo *pe, parseValue *pv, char *str, int clear)
-{
-       int retval = 1;
-
-       assert(pv != 0);
-       assert(str != 0);
-       
-       switch( pv->type )
-       {
-       case SPO_String:
-               pv->storage.ps->data = pv->value;
-               pv->storage.ps->len = str - pv->value;
-               break;
-       case SPO_NonEmptyString:
-               if( (str - pv->value) > 0 )
-               {
-                       pv->storage.ps->data = pv->value;
-                       pv->storage.ps->len = str - pv->value;
-               }
-               else
-               {
-                       retval = 0;
-               }
-               break;
-       case SPO_Character:
-               if( (str - pv->value) == 1 )
-                       *pv->storage.c = pv->value[0];
-               else
-                       retval = 0;
-               break;
-       case SPO_Byte:
-               if( strncasecmp(pv->value, "0x", 2) == 0 )
-               {
-                       int c;
-                       
-                       if( sscanf(&pv->value[2], "%x", &c) != 1 )
-                               retval = 0;
-                       else
-                               *pv->storage.c = (char)(c & 0xff);
-               }
-               else
-               {
-                       int c;
-                       
-                       if( sscanf(pv->value, "%d", &c) != 1 )
-                               retval = 0;
-                       else
-                               *pv->storage.c = (char)(c & 0xff);
-               }
-               break;
-       case SPO_HexByte:
-               {
-                       int c;
-                       
-                       if( !(((strncasecmp(pv->value, "0x", 2) == 0) &&
-                              (sscanf(&pv->value[2], "%x", &c) == 1)) ||
-                             (sscanf(pv->value, "%x", &c) == 1)) )
-                       {
-                               retval = 0;
-                       }
-                       else
-                       {
-                               *pv->storage.c = (char)(c & 0xff);
-                       }
-               }
-               break;
-       case SPO_Short:
-               if( strncasecmp(pv->value, "0x", 2) == 0 )
-               {
-                       if( sscanf(&pv->value[2], "%hx", pv->storage.s) != 1 )
-                               retval = 0;
-               }
-               else
-               {
-                       if( sscanf(pv->value, "%hd", pv->storage.s) != 1 )
-                               retval = 0;
-               }
-               break;
-       case SPO_HexShort:
-               if( !(((strncasecmp(pv->value, "0x", 2) == 0) &&
-                      (sscanf(&pv->value[2], "%hx", pv->storage.s) == 1)) ||
-                     (sscanf(pv->value, "%hx", pv->storage.s) == 1)) )
-               {
-                       retval = 0;
-               }
-               break;
-       case SPO_Integer:
-               if( strncasecmp(pv->value, "0x", 2) == 0 )
-               {
-                       if( sscanf(&pv->value[2], "%x", pv->storage.i) != 1 )
-                               retval = 0;
-               }
-               else
-               {
-                       if( sscanf(pv->value, "%d", pv->storage.i) != 1 )
-                               retval = 0;
-               }
-               break;
-       case SPO_LongInteger:
-               if( strncasecmp(pv->value, "0x", 2) == 0 )
-               {
-                       if( sscanf(&pv->value[2], "%qx", pv->storage.ll) != 1 )
-                               retval = 0;
-               }
-               else
-               {
-                       if( sscanf(pv->value, "%qd", pv->storage.ll) != 1 )
-                               retval = 0;
-               }
-               break;
-       case SPO_HexInteger:
-               if( !(((strncasecmp(pv->value, "0x", 2) == 0) &&
-                      (sscanf(&pv->value[2], "%x", pv->storage.i) == 1)) ||
-                     (sscanf(pv->value, "%x", pv->storage.i) == 1)) )
-               {
-                       retval = 0;
-               }
-               break;
-       case SPO_HexLongInteger:
-               if( !(((strncasecmp(pv->value, "0x", 2) == 0) &&
-                      (sscanf(&pv->value[2], "%qx", pv->storage.ll) == 1)) ||
-                     (sscanf(pv->value, "%qx", pv->storage.ll) == 1)) )
-               {
-                       retval = 0;
-               }
-               break;
-       case SPO_Float:
-               if( sscanf(pv->value, "%f", pv->storage.f) != 1 )
-               {
-                       retval = 0;
-               }
-               break;
-       case SPO_Double:
-               if( sscanf(pv->value, "%lf", pv->storage.d) != 1 )
-               {
-                       retval = 0;
-               }
-               break;
-       case SPO_Count:
-               pv->storage.i[0]++;
-               break;
-       default:
-               break;
-       }
-       if( clear )
-               pv->type = SPO_Noop;
-       if( retval == 0 )
-       {
-               pe->position = pv->value;
-               pe->op = pv->type;
-       }
-       return( retval );
-}
-
-static
-void skipBlock(stringScript *script, void **values,
-              stringScript **script_pos, int *values_pos, va_list *args)
-{
-       int op, skip_depth = 0;
-       /* Used to quiet the compiler */
-       char *c_ptr;
-       void *v_ptr;
-
-       if( script )
-       {
-               op = (*script_pos)->op;
-       }
-       else
-       {
-               op = va_arg(*args, int);
-       }
-       while( skip_depth >= 0 )
-       {
-               switch( op )
-               {
-               case SPO_End:
-                       skip_depth--;
-                       (*script_pos)++;
-                       break;
-               case SPO_Noop:
-                       (*script_pos)++;
-                       break;
-               case SPO_Cond:
-                       if( script )
-                       {
-                               (*script_pos) = STRING_SCRIPT_NEXT(*script_pos,
-                                                                  1);
-                       }
-                       else
-                       {
-                               c_ptr = va_arg(*args, char *);
-                       }
-                       skip_depth++;
-                       break;
-               case SPO_Do:
-               case SPO_NotEmpty:
-                       skip_depth++;
-                       (*script_pos)++;
-                       break;
-               case SPO_Character:
-               case SPO_Byte:
-               case SPO_HexByte:
-               case SPO_Short:
-               case SPO_HexShort:
-               case SPO_Integer:
-               case SPO_LongInteger:
-               case SPO_HexInteger:
-               case SPO_HexLongInteger:
-               case SPO_Float:
-               case SPO_Double:
-               case SPO_Count:
-               case SPO_NonEmptyString:
-               case SPO_String:
-                       if( values )
-                               (*values_pos)++;
-                       else
-                               v_ptr = va_arg(*args, void *);
-                       (*script_pos)++;
-                       break;
-               case SPO_While:
-                       if( script )
-                       {
-                               (*script_pos) = STRING_SCRIPT_NEXT(*script_pos,
-                                                                  2);
-                       }
-                       else
-                       {
-                               c_ptr = va_arg(*args, char *);
-                               c_ptr = va_arg(*args, char *);
-                       }
-                       break;
-               case SPO_Expect:
-                       if( script )
-                       {
-                               (*script_pos) = STRING_SCRIPT_NEXT(*script_pos,
-                                                                  1);
-                       }
-                       else
-                       {
-                               c_ptr = va_arg(*args, char *);
-                       }
-                       break;
-               case SPO_WhileSpace:
-               case SPO_ExpectSpace:
-                       (*script_pos)++;
-                       break;
-               case SPO_Handle:
-                       if( script )
-                       {
-                               (*script_pos) = STRING_SCRIPT_NEXT(*script_pos,
-                                                                  2);
-                       }
-                       else
-                       {
-                               v_ptr = va_arg(*args, void *);
-                               v_ptr = va_arg(*args, void *);
-                       }
-                       break;
-               case SPO_OneOf:
-                       if( script )
-                       {
-                               (*script_pos) = STRING_SCRIPT_NEXT(*script_pos,
-                                                                  1);
-                       }
-                       else
-                       {
-                               c_ptr = va_arg(*args, char *);
-                       }
-                       break;
-               default:
-                       break;
-               }
-               if( skip_depth >= 0 )
-               {
-                       if( script )
-                               op = (*script_pos)->op;
-                       else
-                               op = va_arg(*args, int);
-               }
-       }
-}
-
-static
-char *skipChars(char *str, char *str_end)
-{
-       assert(str != 0);
-       assert(str_end != 0);
-
-       while( (str < str_end) && !isspace(*str) )
-       {
-               str++;
-       }
-       return( str );
-}
-
-static
-char *skipSpace(char *str, char *str_end)
-{
-       assert(str != 0);
-       assert(str_end != 0);
-
-       while( (str < str_end) && isspace(*str) )
-       {
-               str++;
-       }
-       return( str );
-}
-
-static
-int parseString_private(parseErrorInfo *pe,
-                       parsedString *subString,
-                       stringScript *script,
-                       void **values,
-                       int op,
-                       va_list args)
-{
-       char *str, *str_end, *str_ptr = NULL, *term_ptr, *new_pos = NULL;
-       int values_pos = 0, len, retval = 1;
-       stringScript *script_pos = script;
-       parseValue pv;
-       parseStack ps;
-
-#ifdef VA_LIST_IS_ARRAY
-       /* Use temporary copy of args on platforms where va_list
-        * is an array.
-        *
-        * We sometimes need to pass the address of a va_list to
-        * another function. C Standard mandates array types in
-        * prototypes to be silently coerced into pointers to base
-        * objects. If va_list is an array, this results in the
-        * receiving function expecting a pointer to a va_list array
-        * member, but getting a pointer to a pointer instead when
-        * we pass &args.
-        *
-        * Copying the va_list into a temporary buffer, and copying
-        * it back 'undoes' the coercion.
-        *
-        * A longer explanation was posted by Graeme Peterson on the
-        * GDB mailing list on 2002-04-15.
-        */
-
-        va_list     tmp_args;
-        VA_LIST_COPY (tmp_args, args);
-#endif
-
-       assert(subString != NULL);
-
-       str = subString->data;
-       str_end = subString->data + subString->len;
-       pv.type = SPO_Noop;
-       ps.top = &ps.frames[0];
-       ps.top->op = SPO_Noop;
-       ps.depth = 0;
-       if( script )
-       {
-               op = script_pos->op;
-       }
-       while( retval && (ps.depth >= 0) )
-       {
-               switch( op )
-               {
-               case SPO_End:
-                       if( ps.top->op == SPO_Do )
-                               VA_LIST_COPY(args, ps.top->args);
-                       else
-                               popFrame(&ps);
-                       script_pos++;
-                       break;
-               case SPO_Expect:
-                       if( script )
-                       {
-                               str_ptr = script_pos->args[0];
-                               script_pos = STRING_SCRIPT_NEXT(script_pos, 1);
-                       }
-                       else
-                       {
-                               str_ptr = va_arg(args, char *);
-                       }
-                       if( (str = strstr(str, str_ptr)) &&
-                           (str < str_end) )
-                       {
-                               retval = storeValue(pe, &pv, str, 1);
-                               str += strlen(str_ptr);
-                       }
-                       else
-                       {
-                               pe->position = str_end;
-                               pe->op = op;
-                               pe->args[0] = str_ptr;
-                               retval = 0;
-                       }
-                       break;
-               case SPO_ExpectSpace:
-                       str = skipChars(str, str_end);
-                       retval = storeValue(pe, &pv, str, 1);
-                       str = skipSpace(str, str_end);
-                       script_pos++;
-                       break;
-               case SPO_Character:
-               case SPO_Byte:
-               case SPO_HexByte:
-               case SPO_Short:
-               case SPO_HexShort:
-               case SPO_Integer:
-               case SPO_LongInteger:
-               case SPO_HexInteger:
-               case SPO_HexLongInteger:
-               case SPO_Float:
-               case SPO_Double:
-               case SPO_Count:
-               case SPO_String:
-               case SPO_NonEmptyString:
-                       pv.type = op;
-                       pv.value = str;
-                       if( values )
-                               pv.storage.p = values[values_pos++];
-                       else
-                               pv.storage.p = va_arg(args, void *);
-                       script_pos++;
-                       break;
-               case SPO_OneOf:
-                       if( script )
-                       {
-                               str_ptr = script_pos->args[0];
-                               script_pos = STRING_SCRIPT_NEXT(script_pos,
-                                                               1);
-                       }
-                       else
-                       {
-                               str_ptr = va_arg(args, char *);
-                       }
-                       if( (new_pos = strpbrk(str, str_ptr)) &&
-                           (new_pos < str_end) )
-                       {
-                               retval = storeValue(pe, &pv, new_pos, 1);
-                               retval = retval && pushFrame(pe,
-                                                            &ps,
-                                                            op,
-                                                            script_pos,
-                                                            values_pos,
-                                                            args);
-                               str = new_pos;
-                       }
-                       else
-                       {
-#ifdef VA_LIST_IS_ARRAY
-                               VA_LIST_COPY (args, tmp_args);
-#endif
-                               skipBlock(script, values,
-                                         &script_pos, &values_pos, &args);
-                       }
-                       break;
-               case SPO_Do:
-                       ps.top->pv = pv;
-                       retval = pushFrame(pe,
-                                          &ps,
-                                          op,
-                                          script_pos,
-                                          values_pos,
-                                          args);
-                       script_pos++;
-                       break;
-               case SPO_While:
-                       if( script )
-                       {
-                               str_ptr = script_pos->args[0];
-                               term_ptr = script_pos->args[1];
-                               script_pos = STRING_SCRIPT_NEXT(script_pos,
-                                                               2);
-                       }
-                       else
-                       {
-                               str_ptr = va_arg(args, char *);
-                               term_ptr = va_arg(args, char *);
-                       }
-                       if( (new_pos = strstr(str, str_ptr)) &&
-                           (new_pos < str_end) )
-                       {
-                               retval = storeValue(pe,
-                                                   &ps.top->prev->pv,
-                                                   new_pos,
-                                                   0);
-                               retval = retval && storeValue(pe,
-                                                             &pv,
-                                                             new_pos,
-                                                             1);
-                               str = new_pos + strlen(str_ptr);
-                       }
-                       else if( ((term_ptr[0] == '\0') ?
-                                 (new_pos = str_end) :
-                                 (new_pos = strstr(str, term_ptr))) &&
-                                (new_pos <= str_end) )
-                       {
-                               retval = storeValue(pe, &pv, new_pos, 1);
-                               str = new_pos + strlen(term_ptr);
-                               ps.top->op = SPO_Noop;
-                       }
-                       else
-                       {
-                               pe->position = str_end;
-                               pe->op = op;
-                               pe->args[0] = str_ptr;
-                               pe->args[1] = term_ptr;
-                               retval = 0;
-                       }
-                       break;
-               case SPO_SkipSpace:
-                       str = skipSpace(str, str_end);
-                       break;
-               case SPO_WhileSpace:
-                       new_pos = skipChars(str, str_end);
-                       retval = storeValue(pe, &pv, new_pos, 1);
-                       str = skipSpace(new_pos, str_end);
-                       if( str == str_end )
-                       {
-                               ps.top->op = SPO_Noop;
-                       }
-                       script_pos++;
-                       break;
-               case SPO_Cond:
-                       if( script )
-                       {
-                               str_ptr = script_pos->args[0];
-                               script_pos = STRING_SCRIPT_NEXT(script_pos,
-                                                               1);
-                       }
-                       else
-                       {
-                               str_ptr = va_arg(args, char *);
-                       }
-                       len = strlen(str_ptr);
-                       new_pos = str;
-                       if( ((pv.type == SPO_Noop) &&
-                            !strncmp(str, str_ptr, (size_t)len)) ||
-                           ((pv.type != SPO_Noop) &&
-                            (new_pos = strstr(str, str_ptr)) &&
-                            (new_pos < str_end)) )
-                       {
-                               if( ps.top->op == SPO_OneOf )
-                               {
-                                       ps.top->op = SPO_Noop;
-                               }
-                               else
-                               {
-                                       retval = storeValue(pe,
-                                                           &pv,
-                                                           new_pos,
-                                                           1);
-                               }
-                               retval = retval && pushFrame(pe,
-                                                            &ps,
-                                                            op,
-                                                            script_pos,
-                                                            values_pos,
-                                                            args);
-                               str = new_pos + len;
-                       }
-                       else
-                       {
-#ifdef VA_LIST_IS_ARRAY
-                               VA_LIST_COPY (args, tmp_args);
-#endif
-
-                               skipBlock(script, values,
-                                         &script_pos, &values_pos, &args);
-                       }
-                       break;
-               case SPO_Handle:
-                       {
-                               int (*handler)(void *arg);
-                               void *v_ptr;
-
-                               if( script )
-                               {
-                                       handler = (int (*)(void *))
-                                               script_pos->args[0];
-                                       v_ptr = script_pos->args[1];
-                                       script_pos =
-                                               STRING_SCRIPT_NEXT(script_pos,
-                                                                  2);
-                               }
-                               else
-                               {
-                                       handler = (int (*)(void *))
-                                               va_arg(args, void *);
-                                       v_ptr = va_arg(args, void *);
-                               }
-                               if( !(retval = handler(v_ptr)) )
-                               {
-                                       pe->position = str;
-                                       pe->op = op;
-                                       pe->args[0] = handler;
-                                       pe->args[1] = v_ptr;
-                               }
-                       }
-                       break;
-               case SPO_NotEmpty:
-                       if( str < str_end )
-                       {
-                               retval = pushFrame(pe,
-                                                  &ps,
-                                                  op,
-                                                  script_pos,
-                                                  values_pos,
-                                                  args);
-                       }
-                       else
-                       {
-#ifdef VA_LIST_IS_ARRAY
-                               VA_LIST_COPY (args, tmp_args);
-#endif
-
-                               skipBlock(script, values,
-                                         &script_pos, &values_pos, &args);
-                       }
-                       script_pos++;
-                       break;
-               default:
-                       assert(0);
-                       break;
-               }
-               if( script )
-                       op = script_pos->op;
-               else
-                       op = va_arg(args, int);
-       }
-       if( retval && (str < str_end) )
-       {
-               if( pv.type == SPO_Noop )
-               {
-                       pe->position = str;
-                       pe->op = SPO_Noop;
-                       retval = 0;
-               }
-               else
-               {
-                       retval = storeValue(pe, &pv, str_end, 1);
-               }
-       }
-       cutFrames(&ps);
-       return( retval );
-}
-
-int parseString(char *str, int op, ...)
-{
-       parseErrorInfo pe;
-       parsedString ps;
-       va_list args;
-       int retval;
-
-       assert(str != 0);
-       
-       va_start(args, op);
-       ps.data = str;
-       ps.len = strlen(str);
-       retval = parseString_private(&pe, &ps, NULL, NULL, op, args);
-       va_end(args);
-       return( retval );
-}
-
-int parseString_error(parseErrorInfo *pe, char *str, int op, ...)
-{
-       parsedString ps;
-       va_list args;
-       int retval;
-
-       assert(str != 0);
-       
-       va_start(args, op);
-       ps.data = str;
-       ps.len = strlen(str);
-       retval = parseString_private(pe, &ps, NULL, NULL, op, args);
-       va_end(args);
-       return( retval );
-}
-
-int parseSubString(parsedString *ps, int op, ...)
-{
-       parseErrorInfo pe;
-       va_list args;
-       int retval;
-
-       assert(ps != 0);
-       
-       va_start(args, op);
-       retval = parseString_private(&pe, ps, NULL, NULL, op, args);
-       va_end(args);
-       return( retval );
-}
-
-int parseString_script(char *str, stringScript *ss, ...)
-{
-       parseErrorInfo pe;
-       parsedString ps;
-       va_list args;
-       int retval;
-
-       va_start(args, ss);
-       ps.data = str;
-       ps.len = strlen(str);
-       retval = parseString_private(&pe, &ps, ss, NULL, SPO_Noop, args);

*** Patch too long, truncated ***

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to