summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/Parser.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-05-30 15:57:04 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-05-30 15:57:04 -0300
commit0029bfc3cf4fdee2bcd86689a8d9a2a8f4dd553a (patch)
tree803acf609ffb9db8595209f7144971e72d31d310 /base/src/bjc/dicelang/Parser.java
parenta7ba845df20d1bec77b4044738f1ff4fc1128201 (diff)
Group changes
Start work on getting groups to behave correctly
Diffstat (limited to 'base/src/bjc/dicelang/Parser.java')
-rw-r--r--base/src/bjc/dicelang/Parser.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/base/src/bjc/dicelang/Parser.java b/base/src/bjc/dicelang/Parser.java
index ffbfb9d..1b2a0bd 100644
--- a/base/src/bjc/dicelang/Parser.java
+++ b/base/src/bjc/dicelang/Parser.java
@@ -136,7 +136,21 @@ public class Parser {
* AST forest.
*/
for(final ITree<Node> ast : working) {
- results.add(ast);
+ /* Make sure that the tree are well-formed */
+ if(ast.containsMatching((val) -> {
+ switch(val.type) {
+ case OGROUP:
+ return true;
+ default:
+ return false;
+ }
+ })) {
+ System.out.printf("\tERROR: Malformed tree:\n%s\n", ast);
+
+ return false;
+ } else {
+ results.add(ast);
+ }
}
return true;