From d51f7007e44ec3cf7a4a6024add7eea10056bd90 Mon Sep 17 00:00:00 2001 From: John Millaway Date: Wed, 21 Aug 2002 06:54:11 +0000 Subject: [PATCH] More tabels work. --- gen.c | 43 +++++++++++++++++++++++++++++++++++++++++++ nfa.c | 7 ++++--- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/gen.c b/gen.c index 505898b..01de24f 100644 --- a/gen.c +++ b/gen.c @@ -246,6 +246,49 @@ void genctbl() } +/* mkecstbl - Make equivalence-class tables. */ + +struct yytbl_data *mkecstbl (void) +{ + register int i, j; + int numrows; + struct yytbl_data *tbl = 0; + int32_t *tdata = 0; + + tbl = yytbl_data_create (YYT_ID_EC); + tbl->t_flags |= YYT_DATA32; + tbl->t_hilen = 0; + tbl->t_lolen = csize; + + tbl->t_data = tdata = (int32_t *) calloc (tbl->t_lolen, sizeof (int32_t)); + + for (i = 1; i < csize; ++i) { + if (caseins && isupper (i)) + ecgroup[i] = ecgroup[tolower (i)]; + + ecgroup[i] = ABS (ecgroup[i]); + tdata[i] = ecgroup[i]; + } + + if (trace) { + fputs (_("\n\nEquivalence Classes:\n\n"), stderr); + + numrows = csize / 8; + + for (j = 0; j < numrows; ++j) { + for (i = j; i < csize; i = i + numrows) { + fprintf (stderr, "%4s = %-2d", readable_form (i), ecgroup[i]); + + putc (' ', stderr); + } + + putc ('\n', stderr); + } + } + + return tbl; +} + /* Generate equivalence-class tables. */ void genecs() diff --git a/nfa.c b/nfa.c index 5b4573a..1bd712c 100644 --- a/nfa.c +++ b/nfa.c @@ -225,9 +225,10 @@ int mach, variable_trail_rule, headcnt, trailcnt, pcont_act; sprintf( action_text, "case %d:\n", num_rules ); add_action( action_text ); - sprintf( action_text, "/* rule %d can match eol = %s*/\n", - num_rules, rule_has_nl[num_rules]? "true":"false"); - add_action( action_text ); + if ( rule_has_nl[num_rules] ){ + sprintf( action_text, "/* rule %d can match eol */\n", num_rules); + add_action( action_text ); + } if ( variable_trail_rule ) -- 2.49.0