summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-07-17 18:19:32 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-07-17 18:19:32 -0300
commit5ac98080a4e5929821565b572a0268294b80826a (patch)
tree4dafdddd94d67e950381e656fe290f370489f94a /src
parent60ef99bcb21fd681ddf2c0aec741f182e82bfd3b (diff)
Swap to using for-each loops instead of for-each method
Diffstat (limited to 'src')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarParser.java14
-rw-r--r--src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java5
2 files changed, 10 insertions, 9 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammarParser.java b/src/main/java/bjc/rgens/parser/RGrammarParser.java
index a869179..a1fc0e9 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarParser.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarParser.java
@@ -202,12 +202,12 @@ public class RGrammarParser {
try {
RGrammarBuilder build = new RGrammarBuilder();
- reader.forEachBlock((block) -> {
+ for(Block block : reader) {
if(DEBUG)
System.err.printf("Handling top-level block (%s)\n", block);
handleBlock(build, block.contents, 0, block.startLine);
- });
+ }
if(LINES)
System.err.printf("%d ", reader.getBlock().endLine);
@@ -270,7 +270,7 @@ public class RGrammarParser {
String dlm = String.format(TMPL_PRAGMA_BLOCK_DELIM, level);
try (BlockReader pragmaReader = new SimpleBlockReader(dlm, new StringReader(block))) {
try {
- pragmaReader.forEachBlock((pragma) -> {
+ for(Block pragma : pragmaReader) {
pragma.lineOffset = lineOffset;
if(DEBUG)
@@ -296,7 +296,7 @@ public class RGrammarParser {
}
handlePragma(pragmaBody, build, level, pragma.startLine + lineOffset);
- });
+ }
} catch (GrammarException gex) {
Block pragma = pragmaReader.getBlock();
String msg = String.format("Error in pragma: (%s)", pragma);
@@ -352,12 +352,12 @@ public class RGrammarParser {
String declContents = declBlock.contents;
Rule rl = handleRuleDecl(build, declContents, lineOffset + declBlock.startLine);
- ruleReader.forEachBlock((block) -> {
+ for(Block block : ruleReader) {
/* Ignore comment lines. */
if(block.contents.trim().startsWith("#")) return;
handleRuleCase(block.contents, build, rl, block.startLine + lineOffset);
- });
+ }
} else {
/* Rule with a declaration followed by a single case. */
handleRuleDecl(build, ruleBlock, lineOffset);
@@ -387,7 +387,7 @@ public class RGrammarParser {
declSep = declContents.indexOf(' ');
if (declSep == -1) {
- String msg = "A rule must be given at least one case in its declaration, and seperated from that case by \u2192";
+ String msg = "A rule must be given at least one case in its declaration, and seperated from that case by \u2192 or ' '";
throw new GrammarException(msg);
}
diff --git a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
index 12b6f14..917dd33 100644
--- a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
@@ -6,6 +6,7 @@ import bjc.rgens.parser.RGrammarParser;
import bjc.utils.data.IPair;
import bjc.utils.funcdata.FunctionalList;
import bjc.utils.funcdata.IList;
+import bjc.utils.funcutils.StringUtils;
import bjc.utils.gen.WeightedRandom;
public class InlineRuleCaseElement extends CaseElement {
@@ -19,8 +20,8 @@ public class InlineRuleCaseElement extends CaseElement {
for(String part : parts) {
String[] partArr;
- if(part.contains("|")) {
- partArr = part.split("\\|");
+ if(StringUtils.levelContains(part, "|")) {
+ partArr = StringUtils.levelSplit(part, "||").toArray(new String[0]);
} else {
partArr = new String[] {part};
}