aboutsummaryrefslogtreecommitdiff
path: root/compiler.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2020-12-12 16:31:53 -0800
committerBruce Hill <bruce@bruce-hill.com>2020-12-12 16:31:53 -0800
commiteb329bdac9fe56d67cb130fb6cdbb28743c6504b (patch)
tree8ba8bded07820519de06728618e4e32e80da3af4 /compiler.c
parent6e1fd928148cc7e46015e06c27f824d4111f96ee (diff)
Bunch of changes, including some bpeg->bp renaming, and adding
visualizations
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);