From b37675aa79213f2665abb2bbb4db90560642bdee Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Tue, 15 Nov 2016 21:03:57 +0200 Subject: First steps reworking code away from node type. --- profile.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'profile.c') diff --git a/profile.c b/profile.c index c60fd296..f27f9dda 100644 --- a/profile.c +++ b/profile.c @@ -32,8 +32,8 @@ static void parenthesize(int type, NODE *left, NODE *right); static char *pp_list(int nargs, const char *paren, const char *delim); static char *pp_group3(const char *s1, const char *s2, const char *s3); static char *pp_concat(int nargs); -static char *pp_string_or_strong_regex(const char *in_str, size_t len, int delim, bool strong_regex); -static char *pp_strong_regex(const char *in_str, size_t len, int delim); +static char *pp_string_or_typed_regex(const char *in_str, size_t len, int delim, bool typed_regex); +static char *pp_typed_regex(const char *in_str, size_t len, int delim); static bool is_binary(int type); static bool is_scalar(int type); static int prec_level(int type); @@ -640,7 +640,7 @@ cleanup: break; case Op_push_re: - if (pc->memory->type != Node_regex && pc->memory->type != Node_typedregex) + if (pc->memory->type != Node_regex && (pc->memory->flags & REGEX) == 0) break; /* else fall through */ @@ -650,7 +650,7 @@ cleanup: if (pc->memory->type == Node_regex) str = pp_string(re->stptr, re->stlen, '/'); else - str = pp_strong_regex(re->stptr, re->stlen, '/'); + str = pp_typed_regex(re->stptr, re->stlen, '/'); pp_push(pc->opcode, str, CAN_FREE); } break; @@ -672,9 +672,9 @@ cleanup: txt = t2->pp_str; str = pp_group3(txt, op2str(pc->opcode), restr); pp_free(t2); - } else if (m->type == Node_typedregex) { + } else if (m->type == Node_val && (m->flags & REGEX) != 0) { NODE *re = m->re_exp; - restr = pp_strong_regex(re->stptr, re->stlen, '/'); + restr = pp_typed_regex(re->stptr, re->stlen, '/'); str = pp_group3(txt, op2str(pc->opcode), restr); efree(restr); } else { @@ -1416,21 +1416,21 @@ parenthesize(int type, NODE *left, NODE *right) char * pp_string(const char *in_str, size_t len, int delim) { - return pp_string_or_strong_regex(in_str, len, delim, false); + return pp_string_or_typed_regex(in_str, len, delim, false); } -/* pp_strong_regex --- pretty format a hard regex constant */ +/* pp_typed_regex --- pretty format a hard regex constant */ static char * -pp_strong_regex(const char *in_str, size_t len, int delim) +pp_typed_regex(const char *in_str, size_t len, int delim) { - return pp_string_or_strong_regex(in_str, len, delim, true); + return pp_string_or_typed_regex(in_str, len, delim, true); } -/* pp_string_or_strong_regex --- pretty format a string, regex, or hard regex constant */ +/* pp_string_or_typed_regex --- pretty format a string, regex, or typed regex constant */ char * -pp_string_or_strong_regex(const char *in_str, size_t len, int delim, bool strong_regex) +pp_string_or_typed_regex(const char *in_str, size_t len, int delim, bool typed_regex) { static char str_escapes[] = "\a\b\f\n\r\t\v\\"; static char str_printables[] = "abfnrtv\\"; @@ -1464,12 +1464,12 @@ pp_string_or_strong_regex(const char *in_str, size_t len, int delim, bool strong } ofre -= (l) /* initial size; 3 for delim + terminating null, 1 for @ */ - osiz = len + 3 + 1 + (strong_regex == true); + osiz = len + 3 + 1 + (typed_regex == true); emalloc(obuf, char *, osiz, "pp_string"); obufout = obuf; ofre = osiz - 1; - if (strong_regex) + if (typed_regex) *obufout++ = '@'; *obufout++ = delim; -- cgit v1.2.1