aboutsummaryrefslogtreecommitdiff
path: root/compiler.c
diff options
context:
space:
mode:
Diffstat (limited to 'compiler.c')
-rw-r--r--compiler.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/compiler.c b/compiler.c
index 6a8de58..48d0023 100644
--- a/compiler.c
+++ b/compiler.c
@@ -281,6 +281,8 @@ vm_op_t *bpeg_simplepattern(file_t *f, const char *str)
str = after_spaces(str);
if (!matchchar(&str, ')'))
file_err(f, origin, str, "This parenthesis group isn't properly closed.");
+ op->start = origin;
+ op->end = str;
break;
}
// Square brackets
@@ -330,6 +332,17 @@ vm_op_t *bpeg_simplepattern(file_t *f, const char *str)
op->len = pat->len;
break;
}
+ // Hide
+ case '~': {
+ vm_op_t *pat = bpeg_simplepattern(f, str);
+ if (!pat)
+ file_err(f, str, str, "There should be a pattern after this '~'");
+ str = pat->end;
+ op->op = VM_HIDE;
+ op->len = 0;
+ op->args.pat = pat;
+ break;
+ }
// Replacement
case '{': {
str = after_spaces(str);