summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis/Token.java
diff options
context:
space:
mode:
authorGravatar asie2018-12-08 11:21:18 +0100
committerGravatar asie2018-12-08 11:21:18 +0100
commit4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5 (patch)
tree99e43aa385d7fa1248c7fe474c022db55c364592 /src/main/java/cuchaz/enigma/analysis/Token.java
parentwork around Procyon weirdness (diff)
downloadenigma-fork-4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5.tar.gz
enigma-fork-4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5.tar.xz
enigma-fork-4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5.zip
add barebones plugin framework, cleanup
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/Token.java')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/Token.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/Token.java b/src/main/java/cuchaz/enigma/analysis/Token.java
index 266d202..14fa7ca 100644
--- a/src/main/java/cuchaz/enigma/analysis/Token.java
+++ b/src/main/java/cuchaz/enigma/analysis/Token.java
@@ -25,6 +25,25 @@ public class Token implements Comparable<Token> {
25 } 25 }
26 } 26 }
27 27
28 public int getRenameOffset(String to) {
29 int length = this.end - this.start;
30 return to.length() - length;
31 }
32
33 public String rename(String source, String to) {
34 int oldEnd = this.end;
35 this.text = to;
36 this.end = this.start + to.length();
37
38 return source.substring(0, this.start) + to + source.substring(oldEnd);
39 }
40
41 public Token move(int offset) {
42 Token token = new Token(this.start + offset, this.end + offset, null);
43 token.text = text;
44 return token;
45 }
46
28 public boolean contains(int pos) { 47 public boolean contains(int pos) {
29 return pos >= start && pos <= end; 48 return pos >= start && pos <= end;
30 } 49 }
@@ -41,7 +60,7 @@ public class Token implements Comparable<Token> {
41 60
42 @Override 61 @Override
43 public int hashCode() { 62 public int hashCode() {
44 return Integer.hashCode(start) + Integer.hashCode(end) + (text != null ? text.hashCode() : 0); 63 return start * 37 + end;
45 } 64 }
46 65
47 public boolean equals(Token other) { 66 public boolean equals(Token other) {