summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java
index 37a8726..f3d7c3f 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/DelimiterGroup.java
@@ -195,6 +195,14 @@ public class DelimiterGroup<T> {
public boolean marksSubgroup(T tok) {
return subgroups.containsKey(tok);
}
+
+ public T doesOpen(T name) {
+ if(openDelimiters.containsKey(name)) {
+ return openDelimiters.get(name);
+ }
+
+ return null;
+ }
}
/**
@@ -203,6 +211,11 @@ public class DelimiterGroup<T> {
public final T groupName;
/*
+ * The delimiters that open groups in this group,
+ */
+ private Map<T, T> openDelimiters;
+
+ /*
* The delimiters that close this group.
*/
private Set<T> closingDelimiters;
@@ -234,6 +247,7 @@ public class DelimiterGroup<T> {
groupName = name;
+ openDelimiters = new HashMap<>();
closingDelimiters = new HashSet<>();
topLevelExclusions = new HashSet<>();
groupExclusions = new HashSet<>();
@@ -334,6 +348,10 @@ public class DelimiterGroup<T> {
subgroups.put(subgroup, priority);
}
+
+ public void addOpener(T opener, T group) {
+ openDelimiters.put(opener, group);
+ }
@Override
public String toString() {