diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2016-11-29 20:32:29 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2016-11-29 20:32:29 +0200 |
commit | bf847b770dec8fd2e364a56abc8618987b9de917 (patch) | |
tree | a8c8e46deb732cc4f7dea3f1dc224022f71cf1ff /node.c | |
parent | 295eef206ed65daa9801fc72875b34994b23ca01 (diff) | |
download | egawk-bf847b770dec8fd2e364a56abc8618987b9de917.tar.gz egawk-bf847b770dec8fd2e364a56abc8618987b9de917.tar.bz2 egawk-bf847b770dec8fd2e364a56abc8618987b9de917.zip |
Add regex value support to API. Update rwarr extension and test.
Diffstat (limited to 'node.c')
-rw-r--r-- | node.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -444,6 +444,27 @@ make_str_node(const char *s, size_t len, int flags) return r; } +/* make_typed_regex --- make a typed regex node */ + +NODE * +make_typed_regex(const char *re, size_t len) +{ + NODE *n, *exp, *n2; + + exp = make_str_node(re, len, ALREADY_MALLOCED); + n = make_regnode(Node_regex, exp); + if (n == NULL) + fatal(_("could not make typed regex")); + + n2 = make_string(re, len); + n2->typed_re = n; + n2->numbr = 0; + n2->flags |= NUMCUR|STRCUR|REGEX; + n2->flags &= ~(STRING|NUMBER); + + return n2; +} + /* unref --- remove reference to a particular node */ |