summaryrefslogtreecommitdiffstats
path: root/src/parse.y
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-04-10 18:01:10 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-04-10 18:01:10 +0200
commit634e5db20969023f7545ad0780181b0d3085567d (patch)
treed231dd42c6fd48e6ac52aafbf79cd637b6d1e9ea /src/parse.y
parent650fff74dee63fd69a150470bf9b71c0ea8d4b13 (diff)
downloadsolar-634e5db20969023f7545ad0780181b0d3085567d.tar
solar-634e5db20969023f7545ad0780181b0d3085567d.zip
Don't parse keywords in the lexer
Diffstat (limited to 'src/parse.y')
-rw-r--r--src/parse.y10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/parse.y b/src/parse.y
index 52f53a6..259e0de 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -34,14 +34,14 @@ directive |= rule(rule) {
delete rule;
}
-directive |= TYPE SYMBOL_LC(nonterm) BLOCK(type) {
+directive |= "%type" SYMBOL_LC(nonterm) BLOCK(type) {
grammar->nonterm_types.insert(std::make_pair(*nonterm, *type));
delete nonterm;
delete type;
}
-directive |= TYPE term(term) BLOCK(type) varname(name) {
+directive |= "%type" term(term) BLOCK(type) varname(name) {
grammar->term_types.insert(std::make_pair(*term, std::make_pair(*type, *name)));
delete term;
@@ -49,17 +49,17 @@ directive |= TYPE term(term) BLOCK(type) varname(name) {
delete name;
}
-directive |= SOURCE BLOCK(block) {
+directive |= "%source" BLOCK(block) {
grammar->source_block = *block;
delete block;
}
-directive |= HEADER BLOCK(block) {
+directive |= "%header" BLOCK(block) {
grammar->header_block = *block;
delete block;
}
-directive |= EXTRA_ARG BLOCK(type) varname(name) {
+directive |= "%extra_arg" BLOCK(type) varname(name) {
grammar->extra_args.push_back(std::make_pair(*type, *name));
delete type;