From 4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5 Mon Sep 17 00:00:00 2001 From: asie Date: Sat, 8 Dec 2018 11:21:18 +0100 Subject: add barebones plugin framework, cleanup --- src/main/java/cuchaz/enigma/analysis/Token.java | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/main/java/cuchaz/enigma/analysis/Token.java') 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 { } } + public int getRenameOffset(String to) { + int length = this.end - this.start; + return to.length() - length; + } + + public String rename(String source, String to) { + int oldEnd = this.end; + this.text = to; + this.end = this.start + to.length(); + + return source.substring(0, this.start) + to + source.substring(oldEnd); + } + + public Token move(int offset) { + Token token = new Token(this.start + offset, this.end + offset, null); + token.text = text; + return token; + } + public boolean contains(int pos) { return pos >= start && pos <= end; } @@ -41,7 +60,7 @@ public class Token implements Comparable { @Override public int hashCode() { - return Integer.hashCode(start) + Integer.hashCode(end) + (text != null ? text.hashCode() : 0); + return start * 37 + end; } public boolean equals(Token other) { -- cgit v1.2.3