RPA Toolkit
modified rpa_record_dump
authorMartin Stoilov <martin@rpasearch.com>
Tue, 26 Apr 2011 06:00:42 +0000 (23:00 -0700)
committerMartin Stoilov <martin@rpasearch.com>
Tue, 26 Apr 2011 06:00:42 +0000 (23:00 -0700)
rjs/rjsexec.c
rjs/rjsparser.h
rpa2/rpadbex.c
rpa2/rpaoptimization.c
rpa2/rpaparser.c
rpa2/rpaparser.h
rpa2/rparecord.c

index 0095a81..34a2c12 100644 (file)
@@ -69,7 +69,7 @@ int main(int argc, char *argv[])
 
        if (!parser)
                return 1;
-       r_printf("JRS Version: %s\n", rjs_version());
+       r_printf("RJS Version: %s\n", rjs_version());
 
        for (i = 1; i < argc; i++) {
                if (r_strcmp(argv[i], "-e") == 0) {
index ebfb690..7043c85 100644 (file)
@@ -9,7 +9,9 @@ extern "C" {
 #include "rtypes.h"
 #include "rarray.h"
 #include "rvmcpu.h"
-#include "rpa.h"
+#include "rpadbex.h"
+#include "rpastat.h"
+#include "rpaerror.h"
 
 
 typedef struct rjs_parser_s {
index 6022de6..67a864f 100644 (file)
@@ -1070,7 +1070,7 @@ static void rpa_dbex_dumptree_do(rpadbex_t *dbex, rlong rec, rint level)
                        }
                }
        }
-       rpa_dbex_dumpindented(dbex, rpa_recordtree_get(dbex->records, rec, RPA_RECORD_END), level, rpa_parser_prodname(prec->ruleuid));
+       rpa_dbex_dumpindented(dbex, rpa_recordtree_get(dbex->records, rec, RPA_RECORD_END), level, prec->rule);
        for (rec = rpa_recordtree_firstchild(dbex->records, rec, RPA_RECORD_START); rec >= 0; rec = rpa_recordtree_next(dbex->records, rec, RPA_RECORD_START)) {
                rpa_dbex_dumptree_do(dbex, rec, level + 1);
        }
index 5d9e0d4..992cf6e 100644 (file)
@@ -18,6 +18,7 @@ static rlong rpa_copy_singletonorop_handler(rarray_t *records, rlong rec, rpoint
 
        if (prec->ruleuid == RPA_PRODUCTION_OROP) {
                prec->ruleuid = RPA_PRODUCTION_CLS;
+               prec->rule = "cls";
        } else if (prec->ruleuid == RPA_PRODUCTION_CHAR) {
                prec->ruleuid = RPA_PRODUCTION_CLSCHAR;
        } else if (prec->ruleuid == RPA_PRODUCTION_ALTBRANCH || prec->ruleuid == RPA_PRODUCTION_CLS) {
index 8e80bf8..88463f9 100644 (file)
@@ -4,58 +4,6 @@
 #include "rpaparser.h"
 
 static rint rpa_parser_init(rpa_parser_t *pa);
-static void rpa_production_(rpa_parser_t *pa);
-
-
-static rchar *prodnames[] = {
-               "none",
-               "bnf",
-               "namedrule",
-               "anonymousrule",
-               "rulename",
-               "regexchar",
-               "char",
-               "escapedchar",
-               "specialchar",
-               "occurence",
-               "charrng",
-               "numrng",
-               "cls",
-               "clschar",
-               "clsnum",
-               "beginchar",
-               "endchar",
-               "dec",
-               "hex",
-               "aref",
-               "cref",
-               "exp",
-               "anchorop",
-               "reqop",
-               "notop",
-               "minop",
-               "orop",
-               "altbranch",
-               "norop",
-               "negbranch",
-               "bracketexp",
-               "directiveemit",
-               "directivenoemit",
-               "directiveemitnone",
-               "unknown",
-               "unknown",
-               "unknown",
-               "unknown",
-               "unknown",
-};
-
-
-const rchar *rpa_parser_prodname(rlong prod)
-{
-       if (prod < 0 || prod >= RPA_PRODUCTION_COUNT)
-               return NULL;
-       return prodnames[prod];
-}
 
 
 rpa_parser_t *rpa_parser_create()
@@ -1426,9 +1374,6 @@ static rint rpa_parser_init(rpa_parser_t *pa)
        rpa_production_comment(pa);
        rpa_production_bnf(pa);
 
-
-       rpa_production_(pa);
-
        if (rvm_codegen_relocate(co->cg, &err) < 0) {
                r_printf("RPA_PARSER: Unresolved symbol: %s\n", err->name->str);
                return -1;
@@ -1438,7 +1383,7 @@ static rint rpa_parser_init(rpa_parser_t *pa)
 }
 
 
-static void rpa_production_(rpa_parser_t *pa)
+void rpa_production_(rpa_parser_t *pa)
 {
        rpa_compiler_t *co = pa->co;
 
index fe999fb..0e00a71 100644 (file)
@@ -66,7 +66,6 @@ rpa_parser_t *rpa_parser_create();
 void rpa_parser_destroy(rpa_parser_t *pa);
 rlong rpa_parser_load(rpa_parser_t *pa, const rchar *prods, rsize_t size);
 rlong rpa_parser_load_s(rpa_parser_t *pa, const rchar *prods);
-const rchar *rpa_parser_prodname(rlong prod);
 
 #ifdef __cplusplus
 }
index 78df903..d4c7263 100644 (file)
@@ -359,18 +359,16 @@ void rpa_record_dump(rarray_t *records, rlong rec)
        parent = rpa_recordtree_parent(records, rec, RPA_RECORD_START);
 
 //     n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "%5d  ( %7ld, %4d ) : ", rec, prec->ruleid, (ruint32)prec->ruleuid);
-       n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "%5ld, n:%5ld (s: %3ld, e: %3ld, pp: %3ld, f: %3ld, l: %3ld, n: %3ld, p: %3ld) ( %4d, 0x%03x ) : ", rec, prec->next, start, end, parent, first, last, next, prev, prec->ruleuid, prec->usertype);
+       n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "%5ld, n:%5ld (s: %5ld, e: %5ld, p: %5ld) ( %4d, 0x%03x ) : ", rec, prec->next, start, end, parent, prec->ruleuid, prec->usertype);
        if (prec->type & RPA_RECORD_START)
                n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "START ");
+       if (prec->type & RPA_RECORD_END)
+               n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "END   ");
        if (prec->type & RPA_RECORD_HEAD)
                n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "HEAD ");
        if (prec->type & RPA_RECORD_TAIL)
                n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "TAIL ");
-       if (prec->type & RPA_RECORD_MATCH)
-               n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "MATCH ");
-       else if (prec->type & RPA_RECORD_END)
-               n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "END   ");
-       n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "%s ", rpa_parser_prodname(prec->ruleuid));
+       n += r_snprintf(buf + n, n < bufsize ? bufsize - n : 0, "%s ", prec->rule);
 
        r_memset(buf + n, ' ', bufsize - n);
        n = 115;
@@ -408,7 +406,7 @@ void rpa_record_dumpindented(rarray_t *records, rlong rec, rint level)
                r_printf("   ");
        r_printf("   ");
        r_printf("(");
-       r_printf("%s, %c, %c", rpa_parser_prodname(prec->ruleuid), rpa_record_optchar(prec, 'x'), rpa_record_loopchar(prec, 'x'));
+       r_printf("%s, %c, %c", prec->rule, rpa_record_optchar(prec, 'x'), rpa_record_loopchar(prec, 'x'));
        r_printf(")");
        rec = rpa_recordtree_get(records, rec, RPA_RECORD_END);
        prec = (rparecord_t *)r_array_slot(records, rec);