aboutsummaryrefslogtreecommitdiff
path: root/bpeg.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2020-09-12 15:11:44 -0700
committerBruce Hill <bruce@bruce-hill.com>2020-09-12 15:11:44 -0700
commit65f0a29b55e82a05f1c0c2c0eed66f2263cdd0a3 (patch)
tree1cf3bf511358ab18fbb2233d078209e49437f7c9 /bpeg.c
parente9673459376b92e5c8be60783b608723af9b23d9 (diff)
Moving towards separate grammar files.
Diffstat (limited to 'bpeg.c')
-rw-r--r--bpeg.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/bpeg.c b/bpeg.c
index 0d64902..e4e585c 100644
--- a/bpeg.c
+++ b/bpeg.c
@@ -75,6 +75,12 @@ int main(int argc, char *argv[])
grammar_t *g = new_grammar();
+ int fd;
+ if ((fd=open("/etc/xdg/bpeg/builtins.bpeg", O_RDONLY)) >= 0)
+ load_grammar(g, readfile(fd));
+ if ((fd=open("/etc/xdg/bpeg/builtins.bpeg", O_RDONLY)) >= 0)
+ load_grammar(g, readfile(fd));
+
int i, npatterns = 0;
for (i = 1; i < argc; i++) {
if (streq(argv[i], "--")) {
@@ -93,17 +99,15 @@ int main(int argc, char *argv[])
add_def(g, flag, "replacement", p);
rule = "replace-all";
} else if (FLAG("--grammar") || FLAG("-g")) {
+ int fd;
const char *grammarfile = flag;
- // load grammar from a file (semicolon mode)
- char *grammar;
if (streq(grammarfile, "-")) {
- grammar = readfile(STDIN_FILENO);
+ fd = STDIN_FILENO;
} else {
- int fd = open(grammarfile, O_RDONLY);
+ fd = open(grammarfile, O_RDONLY);
check(fd >= 0, "Couldn't open file: %s", argv[2]);
- grammar = readfile(fd);
}
- load_grammar(g, grammar);
+ load_grammar(g, readfile(fd));
} else if (FLAG("--define") || FLAG("-d")) {
char *def = flag;
char *eq = strchr(def, '=');