diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2017-11-06 20:56:21 -0400 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2017-11-06 20:56:21 -0400 |
| commit | cba5ae6bc285439593f4e847c0d3b32e8e608ec8 (patch) | |
| tree | 7a5b6f6ca85aa9984730787d4e20fe38aec0a197 /RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java | |
| parent | 8d7b542ba7182b701a75a0fd5550e68f421ea696 (diff) | |
Minor source tweaks
More attempted spacing tweaks and stuff
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java')
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java index 0f04fc1..3d2c921 100644 --- a/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java +++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammarParser.java @@ -70,6 +70,19 @@ public class RGrammarParser { } }); + pragmas.put("regex-rule", (body, build, level) -> { + int nameIndex = body.indexOf(" "); + + if(nameIndex == -1) { + throw new GrammarException("Regex-rule pragma takes two arguments: the name of the rule to process, then the regex to apply after the rule has been generated."); + } + + String name = body.substring(0, nameIndex).trim(); + String patt = body.substring(nameIndex + 1).trim(); + + build.regexizeRule(name, patt); + }); + pragmas.put("suffix-with", (body, build, level) -> { String[] parts = body.trim().split(" "); |
