From ad699d027fd9a63d7942fb455e7cfa775f726c43 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Wed, 5 Sep 2018 12:24:51 -0300 Subject: Add grammar name pragma --- src/main/java/bjc/rgens/parser/RGrammarParser.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/main/java/bjc/rgens/parser/RGrammarParser.java') diff --git a/src/main/java/bjc/rgens/parser/RGrammarParser.java b/src/main/java/bjc/rgens/parser/RGrammarParser.java index bea2038..aae5c4a 100755 --- a/src/main/java/bjc/rgens/parser/RGrammarParser.java +++ b/src/main/java/bjc/rgens/parser/RGrammarParser.java @@ -70,6 +70,17 @@ public class RGrammarParser { build.setInitialRule(bits.get(0)); }); + pragmas.put("grammar-name", (body, build, level) -> { + List bits = StringUtils.levelSplit(body, " "); + + if (bits.size() != 1) { + String msg = "Must specify grammar name"; + throw new GrammarException(msg); + } + + build.name = bits.get(0); + }); + pragmas.put("despace-rule", (body, build, level) -> { List bits = StringUtils.levelSplit(body, " "); @@ -117,6 +128,7 @@ public class RGrammarParser { build.setWeight(parts.get(0)); }); + pragmas.put("enable-descent", (body, build, level) -> { List parts = StringUtils.levelSplit(body, " "); @@ -132,6 +144,11 @@ public class RGrammarParser { }); pragmas.put("enable-binomial", (body, build, level) -> { + // @NOTE 9/4/18 + // + // This can be kind of hard to read right off. Is there + // a format to put stuff in that looks better and is + // more readable? List parts = StringUtils.levelSplit(body, " "); if(parts.size() != 4) { -- cgit v1.2.3