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.java66
1 files changed, 33 insertions, 33 deletions
diff --git a/dice-lang/src/bjc/dicelang/Define.java b/dice-lang/src/bjc/dicelang/Define.java
index b7d196d..d9e1f84 100644
--- a/dice-lang/src/bjc/dicelang/Define.java
+++ b/dice-lang/src/bjc/dicelang/Define.java
@@ -2,14 +2,16 @@ package bjc.dicelang;
import bjc.utils.data.CircularIterator;
-import static bjc.dicelang.Errors.ErrorKey.*;
-
import java.util.Iterator;
import java.util.function.UnaryOperator;
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;
+
public class Define implements UnaryOperator<String>, Comparable<Define> {
public static enum Type {
LINE, TOKEN
@@ -17,17 +19,17 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
public static int MAX_RECURS = 10;
- public final int priority;
- public final boolean inError;
+ public final int priority;
+ public final boolean inError;
- private boolean doRecur;
- private boolean subType;
+ private boolean doRecur;
+ private boolean subType;
- private Pattern predicate;
- private Pattern searcher;
+ private Pattern predicate;
+ private Pattern searcher;
- private Iterator<String> replacers;
- private String replacer;
+ private Iterator<String> replacers;
+ private String replacer;
public Define(int priorty, boolean isSub, boolean recur, boolean isCircular, String predicte, String searchr,
Iterable<String> replacrs) {
@@ -38,10 +40,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(PatternSyntaxException psex) {
Errors.inst.printError(EK_DFN_PREDSYN, psex.getMessage());
inError = true;
return;
@@ -53,7 +55,7 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
*/
try {
searcher = Pattern.compile(searchr);
- } catch (PatternSyntaxException psex) {
+ } catch(PatternSyntaxException psex) {
Errors.inst.printError(EK_DFN_SRCSYN, psex.getMessage());
inError = true;
return;
@@ -63,8 +65,8 @@ 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;
@@ -72,39 +74,38 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
} else {
Iterator<String> itr = replacrs.iterator();
- if (itr.hasNext())
+ if(itr.hasNext()) {
replacer = itr.next();
- else
+ } else {
replacer = "";
+ }
}
}
+ @Override
public String apply(String tok) {
- if (inError)
- return 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)) {
+ if(strang.equals(tok))
return strang;
- } else {
+ else {
String oldStrang = strang;
do {
strang = doPass(tok);
recurCount += 1;
- } while (!strang.equals(oldStrang) && recurCount < MAX_RECURS);
+ } while(!strang.equals(oldStrang) && recurCount < MAX_RECURS);
- if (recurCount >= MAX_RECURS) {
+ if(recurCount >= MAX_RECURS) {
Errors.inst.printError(EK_DFN_RECUR, Integer.toString(MAX_RECURS), tok, strang);
return strang;
}
@@ -117,10 +118,10 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
private String doPass(String tok) {
Matcher searcherMatcher = searcher.matcher(tok);
- if (subType) {
+ if(subType) {
StringBuffer sb = new StringBuffer();
- while (searcherMatcher.find()) {
- if (replacers == null) {
+ while(searcherMatcher.find()) {
+ if(replacers == null) {
searcherMatcher.appendReplacement(sb, "");
} else {
String replac = replacers.next();
@@ -130,9 +131,8 @@ public class Define implements UnaryOperator<String>, Comparable<Define> {
searcherMatcher.appendTail(sb);
return sb.toString();
- } else {
+ } else
return searcherMatcher.replaceAll(replacer);
- }
}
@Override