summaryrefslogtreecommitdiffstats
path: root/regex.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2013-12-06 08:47:36 -0800
committerKaz Kylheku <kaz@kylheku.com>2013-12-06 08:47:36 -0800
commitb55fa7a69f286149092cd25902871019c6795b9d (patch)
tree7022e5b7b5221194c2c06aa86a74a693e079ad3e /regex.c
parentb26f98511a911537fef73a1925df6d91a7829b6e (diff)
downloadtxr-b55fa7a69f286149092cd25902871019c6795b9d.tar.gz
txr-b55fa7a69f286149092cd25902871019c6795b9d.tar.bz2
txr-b55fa7a69f286149092cd25902871019c6795b9d.zip
* eval.c (eval_init): Update registration of regex-compile
to reflect that it has two arguments now. * parser.y (grammar): Update calls to regex_compile to pass two arguments. Since we don't expect regex_compile to parse, we specify the error stream as nil. (spec): The "secret syntax" for a regex is simplified not to include the slashes. This provides better diagnostics for unterminated syntax and requires less string processing to generate. Also, the form returned doesn't have the regex symbol consed onto it, which parse_regex just throws away. * regex.c (regex_compile): Now takes a stream argument. * regex.h (regex_compile): Declaration updated. * txr.1: Updated
Diffstat (limited to 'regex.c')
-rw-r--r--regex.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/regex.c b/regex.c
index c589b0ca..fb22649f 100644
--- a/regex.c
+++ b/regex.c
@@ -1613,11 +1613,11 @@ static val regex_requires_dv(val exp)
}
}
-val regex_compile(val regex_sexp)
+val regex_compile(val regex_sexp, val error_stream)
{
if (stringp(regex_sexp)) {
- regex_sexp = regex_parse(regex_sexp, nil);
- return if2(regex_sexp, regex_compile(regex_sexp));
+ regex_sexp = regex_parse(regex_sexp, error_stream);
+ return if2(regex_sexp, regex_compile(regex_sexp, error_stream));
} else if (opt_derivative_regex || regex_requires_dv(regex_sexp)) {
return cons(compiled_regex_s, cons(dv_compile_regex(regex_sexp), nil));
} else {