summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/Define.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/Define.java')
-rw-r--r--dice-lang/src/bjc/dicelang/Define.java79
1 files changed, 39 insertions, 40 deletions
diff --git a/dice-lang/src/bjc/dicelang/Define.java b/dice-lang/src/bjc/dicelang/Define.java
index 89618e4..94708fd 100644
--- a/dice-lang/src/bjc/dicelang/Define.java
+++ b/dice-lang/src/bjc/dicelang/Define.java
@@ -1,6 +1,8 @@
package bjc.dicelang;
-import bjc.utils.data.CircularIterator;
+import static bjc.dicelang.Errors.ErrorKey.EK_DFN_PREDSYN;
+import static bjc.dicelang.Errors.ErrorKey.EK_DFN_RECUR;
+import static bjc.dicelang.Errors.ErrorKey.EK_DFN_SRCSYN;
import java.util.Iterator;
import java.util.function.UnaryOperator;
@@ -8,9 +10,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
-import static bjc.dicelang.Errors.ErrorKey.EK_DFN_PREDSYN;
-import static bjc.dicelang.Errors.ErrorKey.EK_DFN_RECUR;
-import static bjc.dicelang.Errors.ErrorKey.EK_DFN_SRCSYN;
+import bjc.utils.data.CircularIterator;
/**
* A regular expression based pre-processor define.
@@ -83,8 +83,8 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
* @param replacrs
* The source for replacement strings.
*/
- public Define(int priorty, boolean isSub, boolean recur, boolean isCircular, String predicte, String searchr,
- Iterable<String> replacrs) {
+ public Define(final int priorty, final boolean isSub, final boolean recur, final boolean isCircular,
+ final String predicte, final String searchr, final Iterable<String> replacrs) {
priority = priorty;
doRecur = recur;
subType = isSub;
@@ -92,10 +92,10 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
/*
* Only try to compile non-null predicates
*/
- if(predicte != null) {
+ if (predicte != null) {
try {
predicate = Pattern.compile(predicte);
- } catch(PatternSyntaxException psex) {
+ } catch (final PatternSyntaxException psex) {
Errors.inst.printError(EK_DFN_PREDSYN, psex.getMessage());
inError = true;
return;
@@ -107,7 +107,7 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
*/
try {
searcher = Pattern.compile(searchr);
- } catch(PatternSyntaxException psex) {
+ } catch (final PatternSyntaxException psex) {
Errors.inst.printError(EK_DFN_SRCSYN, psex.getMessage());
inError = true;
return;
@@ -117,16 +117,16 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
/*
* Check whether or not we do sub-replacements
*/
- if(subType) {
- if(replacrs.iterator().hasNext()) {
+ if (subType) {
+ if (replacrs.iterator().hasNext()) {
replacers = new CircularIterator<>(replacrs, isCircular);
} else {
replacers = null;
}
} else {
- Iterator<String> itr = replacrs.iterator();
+ final Iterator<String> itr = replacrs.iterator();
- if(itr.hasNext()) {
+ if (itr.hasNext()) {
replacer = itr.next();
} else {
replacer = "";
@@ -135,60 +135,59 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
}
@Override
- public String apply(String tok) {
- if(inError) return tok;
+ public String apply(final String tok) {
+ if (inError) return tok;
- if(predicate != null) {
- if(!predicate.matcher(tok).matches()) return tok;
+ if (predicate != null) {
+ if (!predicate.matcher(tok).matches()) return tok;
}
String strang = doPass(tok);
- if(doRecur) {
+ if (doRecur) {
int recurCount = 0;
- if(strang.equals(tok))
- return strang;
- else {
- String oldStrang = strang;
+ if (strang.equals(tok)) return strang;
- do {
- strang = doPass(tok);
- recurCount += 1;
- } while(!strang.equals(oldStrang) && recurCount < MAX_RECURS);
+ final String oldStrang = strang;
- if(recurCount >= MAX_RECURS) {
- Errors.inst.printError(EK_DFN_RECUR, Integer.toString(MAX_RECURS), tok, strang);
- return strang;
- }
+ do {
+ strang = doPass(tok);
+ recurCount += 1;
+ } while (!strang.equals(oldStrang) && recurCount < MAX_RECURS);
+
+ if (recurCount >= MAX_RECURS) {
+ Errors.inst.printError(EK_DFN_RECUR, Integer.toString(MAX_RECURS), tok, strang);
+ return strang;
}
}
return strang;
}
- private String doPass(String tok) {
- Matcher searcherMatcher = searcher.matcher(tok);
+ private String doPass(final String tok) {
+ final Matcher searcherMatcher = searcher.matcher(tok);
- if(subType) {
- StringBuffer sb = new StringBuffer();
- while(searcherMatcher.find()) {
- if(replacers == null) {
+ if (subType) {
+ final StringBuffer sb = new StringBuffer();
+ while (searcherMatcher.find()) {
+ if (replacers == null) {
searcherMatcher.appendReplacement(sb, "");
} else {
- String replac = replacers.next();
+ final String replac = replacers.next();
searcherMatcher.appendReplacement(sb, replac);
}
}
searcherMatcher.appendTail(sb);
return sb.toString();
- } else
- return searcherMatcher.replaceAll(replacer);
+ }
+
+ return searcherMatcher.replaceAll(replacer);
}
@Override
- public int compareTo(Define o) {
+ public int compareTo(final Define o) {
return priority - o.priority;
}
}