From f734991d6141d6070228b936aa20fb77c6faedac Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@gmail.com>
Date: Tue, 28 May 2019 23:26:00 +0200
Subject: [PATCH] updated jar&sources

---
 devTools/javaSanityCheck/SanityCheck.jar      | Bin 156450 -> 156190 bytes
 devTools/javaSanityCheck/sources.zip          | Bin 0 -> 38973 bytes
 .../src/DisallowedTagException.java           |  11 -
 devTools/javaSanityCheck/src/Main.java        | 331 ---------------
 devTools/javaSanityCheck/src/SyntaxError.java |  67 ---
 devTools/javaSanityCheck/src/Tag.java         |  14 -
 .../javaSanityCheck/src/TagSearchTree.java    |  81 ----
 .../src/UnknownStateException.java            |  11 -
 .../src/element/AngleBracketElement.java      | 380 ------------------
 .../src/element/AtElement.java                | 108 -----
 .../src/element/BracketElement.java           |  28 --
 .../src/element/CommentElement.java           |  75 ----
 .../javaSanityCheck/src/element/Element.java  |  55 ---
 .../src/element/KnownElement.java             |  38 --
 .../src/element/KnownHtmlElement.java         |  50 ---
 .../src/element/KnownLogicElement.java        | 120 ------
 .../src/element/KnownTwineElement.java        |  50 ---
 17 files changed, 1419 deletions(-)
 create mode 100644 devTools/javaSanityCheck/sources.zip
 delete mode 100644 devTools/javaSanityCheck/src/DisallowedTagException.java
 delete mode 100644 devTools/javaSanityCheck/src/Main.java
 delete mode 100644 devTools/javaSanityCheck/src/SyntaxError.java
 delete mode 100644 devTools/javaSanityCheck/src/Tag.java
 delete mode 100644 devTools/javaSanityCheck/src/TagSearchTree.java
 delete mode 100644 devTools/javaSanityCheck/src/UnknownStateException.java
 delete mode 100644 devTools/javaSanityCheck/src/element/AngleBracketElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/AtElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/BracketElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/CommentElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/Element.java
 delete mode 100644 devTools/javaSanityCheck/src/element/KnownElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/KnownHtmlElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/KnownLogicElement.java
 delete mode 100644 devTools/javaSanityCheck/src/element/KnownTwineElement.java

diff --git a/devTools/javaSanityCheck/SanityCheck.jar b/devTools/javaSanityCheck/SanityCheck.jar
index c2041109e8ab397f6aff8e7bbcf1c19d495baa73..dfa5b22db1171f4165e79f260caad84987e22346 100644
GIT binary patch
delta 23534
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%0AWPUXT{6oN(N8gtjj7?y9BnH`M1b&8!eUG
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
SL4^a10pw`MFOh<t2mc2=J(b)5

delta 23661
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
Vv;F#Hf&J76kRo5QJ&Y%~{{!a1zU}}3

diff --git a/devTools/javaSanityCheck/sources.zip b/devTools/javaSanityCheck/sources.zip
new file mode 100644
index 0000000000000000000000000000000000000000..92f59c1b2541717b32c51b197bb8d5c4997b9a2d
GIT binary patch
literal 38973
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

literal 0
HcmV?d00001

diff --git a/devTools/javaSanityCheck/src/DisallowedTagException.java b/devTools/javaSanityCheck/src/DisallowedTagException.java
deleted file mode 100644
index 12d5dfb2974..00000000000
--- a/devTools/javaSanityCheck/src/DisallowedTagException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.arkerthan.sanityCheck;
-
-/**
- * @author Arkerthan
- */
-public class DisallowedTagException extends RuntimeException {
-
-	public DisallowedTagException(String tag) {
-		super(tag);
-	}
-}
diff --git a/devTools/javaSanityCheck/src/Main.java b/devTools/javaSanityCheck/src/Main.java
deleted file mode 100644
index 1cf56950cc0..00000000000
--- a/devTools/javaSanityCheck/src/Main.java
+++ /dev/null
@@ -1,331 +0,0 @@
-package org.arkerthan.sanityCheck;
-
-import org.arkerthan.sanityCheck.element.AngleBracketElement;
-import org.arkerthan.sanityCheck.element.CommentElement;
-import org.arkerthan.sanityCheck.element.Element;
-import org.arkerthan.sanityCheck.element.KnownElement;
-
-import java.io.*;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.*;
-
-/**
- * @author Arkerthan
- * @version 1.0
- */
-public class Main {
-
-	public static TagSearchTree<Tag> htmlTags, twineTags;
-	private static String currentFile;
-	private static int currentLine, currentPosition;
-	private static Stack<Element> stack;
-	private static List<SyntaxError> errors = new LinkedList<>();
-	private static String[] excluded;
-
-	public static void main(String[] args) {
-
-		//setup
-		setupExclude();
-		setupHtmlTags();
-		setupTwineTags();
-		Path workingDir = Paths.get("").toAbsolutePath();
-
-		//actual sanityCheck
-		runSanityCheckInDirectory(workingDir, new File("src/"));
-
-		//output errors
-		for (SyntaxError e :
-				errors) {
-			System.out.println(e.getError());
-		}
-	}
-
-
-	/**
-	 * Goes through the whole directory including subdirectories and runs
-	 * {@link Main#sanityCheck(Path)} on all .tw files
-	 *
-	 * @param dir to be checked
-	 */
-	private static void runSanityCheckInDirectory(Path workingDir, File dir) {
-		//subdirectories are checked recursively
-
-		try {
-			for (File file : dir.listFiles()) {
-				if (file.isFile()) { //run sanityCheck if file is a .tw file
-					String path = file.getAbsolutePath();
-					if (path.endsWith(".tw")) {
-						sanityCheck(workingDir.relativize(file.toPath()));
-					}
-				} else if (file.isDirectory()) {
-					runSanityCheckInDirectory(workingDir, file.getAbsoluteFile());
-				}
-			}
-		} catch (NullPointerException e) {
-			e.printStackTrace();
-			System.err.println("Couldn't read directory " + currentFile);
-			System.exit(-1);
-		}
-	}
-
-	/**
-	 * Runs the sanity check for one file. Does not run if file is excluded.
-	 *
-	 * @param path file to be checked
-	 */
-	private static void sanityCheck(Path path) {
-		File file = path.toFile();
-
-		// replace this with a known encoding if possible
-		Charset encoding = Charset.defaultCharset();
-
-		if (!excluded(file.getPath())) {
-			currentFile = file.getPath();
-			currentLine = 1;
-			stack = new Stack<>();
-
-			//actually opening and reading the file
-			try (InputStream in = new FileInputStream(file);
-				 Reader reader = new InputStreamReader(in, encoding);
-				 // buffer for efficiency
-				 Reader buffer = new BufferedReader(reader)) {
-				handleCharacters(buffer);
-			} catch (IOException e) {
-				e.printStackTrace();
-				System.err.println("Couldn't read " + file);
-			}
-		}
-	}
-
-	/**
-	 * sets up a {@link TagSearchTree<Tag>} for fast access of HTML tags later
-	 */
-	private static void setupHtmlTags() {
-		//load HTML tags into a list
-		List<Tag> TagsList = loadTags("devTools/javaSanityCheck/htmlTags");
-
-		//turn List into alphabetical search tree
-		try {
-			htmlTags = new TagSearchTree<>(TagsList);
-		} catch (ArrayIndexOutOfBoundsException e) {
-			System.err.println("Illegal Character in devTools/javaSanityCheck/htmlTags");
-			System.exit(-1);
-		}
-	}
-
-	/**
-	 * sets up a {@link TagSearchTree<Tag>} for fast access of twine tags later
-	 */
-	private static void setupTwineTags() {
-		//load twine tags into a list
-		List tagsList = loadTags("devTools/javaSanityCheck/twineTags");
-
-		//turn List into alphabetical search tree
-		try {
-			twineTags = new TagSearchTree<>(tagsList);
-		} catch (ArrayIndexOutOfBoundsException e) {
-			System.err.println("Illegal Character in devTools/javaSanityCheck/twineTags");
-			System.exit(-1);
-		}
-	}
-
-	/**
-	 * Loads a list of tags from a file
-	 *
-	 * @param filePath file to load tags from
-	 * @return loaded tags
-	 */
-	private static List<Tag> loadTags(String filePath) {
-		List<Tag> tagsList = new LinkedList<>();
-		try {
-			Files.lines(new File(filePath).toPath()).map(String::trim)
-					.filter(s -> !s.startsWith("#"))
-					.forEach(s -> tagsList.add(parseTag(s)));
-		} catch (IOException e) {
-			System.err.println("Couldn't read " + filePath);
-		}
-		return tagsList;
-	}
-
-	/**
-	 * Turns a string into a Tag
-	 * ";1" at the end of the String indicates that the tag needs to be closed later
-	 *
-	 * @param s tag as String
-	 * @return tag as Tag
-	 */
-	private static Tag parseTag(String s) {
-		String[] st = s.split(";");
-		if (st.length > 1 && st[1].equals("1")) {
-			return new Tag(st[0], false);
-		}
-		return new Tag(st[0], true);
-	}
-
-	/**
-	 * sets up the excluded files array.
-	 */
-	private static void setupExclude() {
-		//load excluded files
-		List<String> excludedList = new ArrayList<>();
-		try {
-			Files.lines(new File("devTools/javaSanityCheck/excluded").toPath()).map(String::trim)
-					.filter(s -> !s.startsWith("#"))
-					.forEach(excludedList::add);
-		} catch (IOException e) {
-			System.err.println("Couldn't read devTools/javaSanityCheck/excluded");
-		}
-
-		//turn excluded files into an array and change path to windows style if needed
-		if (isWindows()) {
-			excluded = new String[excludedList.size()];
-			int i = 0;
-			for (String s :
-					excludedList) {
-				excluded[i++] = s.replaceAll("/", "\\\\");
-			}
-		} else {
-			excluded = excludedList.toArray(new String[0]);
-		}
-	}
-
-	/**
-	 * @return whether OS is Windows or not
-	 */
-	private static boolean isWindows() {
-		return (System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("windows"));
-	}
-
-	/**
-	 * checks if a file or directory is excluded from the sanity check
-	 *
-	 * @param s file/directory to be checked
-	 * @return whether it is excluded or not
-	 */
-	private static boolean excluded(String s) {
-		for (String ex :
-				excluded) {
-			if (s.startsWith(ex)) return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Reads the file character by character.
-	 *
-	 * @param reader reader that is read
-	 * @throws IOException thrown if the file can't be read
-	 */
-	private static void handleCharacters(Reader reader) throws IOException {
-		int r;
-		while ((r = reader.read()) != -1) {
-			char c = (char) r;
-			handleCharacter(c);
-		}
-	}
-
-	/**
-	 * Handles a single character
-	 *
-	 * @param c next character
-	 */
-	private static void handleCharacter(char c) {
-		//updating position
-		currentPosition++;
-		if (c == '\n') {
-			currentLine++;
-			currentPosition = 1;
-		}
-
-		//try applying to the innermost element
-		if (!stack.empty()) {
-			int change;
-			try {
-				change = stack.peek().handleChar(c);
-			} catch (SyntaxError e) {
-				change = e.getChange();
-				addError(e);
-			}
-
-			//change greater 0 means the innermost element did some work
-			if (change > 0) {
-				//2 means the Element is complete
-				if (change == 2) {
-					//remove the topmost element from stack since it is complete
-					stack.pop();
-					return;
-				}
-				//3 means the Element is complete and part of a two or more tag system
-				if (change == 3) {
-					//remove the topmost element from stack since it is complete
-					KnownElement k = stack.pop().getKnownElement();
-					//if KnownElement k is closing another element, check if there is one and remove it
-					if (k.isClosing()) {
-						if (stack.empty()) { //there are no open elements at all
-							addError(new SyntaxError("Closed tag " + k.getShortDescription() + " without " +
-									"having any open tags.", -2));
-						} else if (stack.peek() instanceof KnownElement) {
-							//get opening tag
-							KnownElement kFirst = (KnownElement) stack.pop();
-							//check if closing element matches the opening element
-							if (!kFirst.isMatchingElement(k)) {
-								addError(new SyntaxError("Opening tag " + kFirst.getShortDescription() +
-										" does not match closing tag " + k.getShortDescription() + ".", -2));
-							}
-						} else {
-							//There closing tag inside another not Known element: <div </html>
-							addError(new SyntaxError("Closing tag " + k.getShortDescription() + " inside " +
-									"another tag " + stack.peek().getShortDescription() + " without opening first.",
-									-2, true));
-						}
-					}
-					//check if the element needs to be closed by another
-					if (k.isOpening()) {
-						stack.push(k);
-					}
-					return;
-				}
-				//means the element couldn't do anything with it and is finished
-				if (change == 4) {
-					stack.pop();
-				} else {
-					return;
-				}
-			}
-		}
-
-
-		//innermost element was uninterested, trying to find matching element
-		switch (c) {
-			//case '@':
-			//stack.push(new AtElement(currentLine, currentPosition));
-			//break;
-			case '<':
-				stack.push(new AngleBracketElement(currentLine, currentPosition));
-				break;
-			//case '>':
-			//addError(new SyntaxError("Dangling \">\", current innermost: " + (stack.empty() ? "null" : stack.peek().getShortDescription()), -2));
-			//break;
-			case '/':
-				stack.push(new CommentElement(currentLine, currentPosition));
-				break;
-			//case '(':
-			//stack.push(new BracketElement(currentLine, currentPosition));
-		}
-	}
-
-	/**
-	 * add an error to the error list
-	 *
-	 * @param e new error
-	 */
-	private static void addError(SyntaxError e) {
-		e.setFile(currentFile);
-		e.setLine(currentLine);
-		e.setPosition(currentPosition);
-		errors.add(e);
-	}
-}
diff --git a/devTools/javaSanityCheck/src/SyntaxError.java b/devTools/javaSanityCheck/src/SyntaxError.java
deleted file mode 100644
index ccb49ccf888..00000000000
--- a/devTools/javaSanityCheck/src/SyntaxError.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.arkerthan.sanityCheck;
-
-/**
- * @author Arkerthan
- */
-public class SyntaxError extends Exception {
-	private String file;
-	private int line, position;
-	private String description;
-	private int change; //see Element for values; -2 means not thrown
-	private boolean warning = false;
-
-	/**
-	 * @param description description of error
-	 * @param change	  state change as specified in Element
-	 */
-	public SyntaxError(String description, int change) {
-		this.description = description;
-		this.change = change;
-	}
-
-	/**
-	 * @param description description of error
-	 * @param change	  state change as specified in Element
-	 * @param warning	 whether it is a warning or an error
-	 */
-	public SyntaxError(String description, int change, boolean warning) {
-		this(description, change);
-		this.warning = warning;
-	}
-
-	/**
-	 * @param file at which the error occurred
-	 */
-	public void setFile(String file) {
-		this.file = file;
-	}
-
-	/**
-	 * @param line in which the error occurred
-	 */
-	public void setLine(int line) {
-		this.line = line;
-	}
-
-	/**
-	 * @param position at which the error occurred
-	 */
-	public void setPosition(int position) {
-		this.position = position;
-	}
-
-	/**
-	 * @return error message
-	 */
-	public String getError() {
-		String s = warning ? "Warning: " : "Error: ";
-		return s + file + ": " + line + ":" + position + " : " + description;
-	}
-
-	/**
-	 * @return change that happened in Element before it was thrown. -1 if not thrown.
-	 */
-	public int getChange() {
-		return change;
-	}
-}
diff --git a/devTools/javaSanityCheck/src/Tag.java b/devTools/javaSanityCheck/src/Tag.java
deleted file mode 100644
index 025cef72c10..00000000000
--- a/devTools/javaSanityCheck/src/Tag.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.arkerthan.sanityCheck;
-
-/**
- * @author Arkerthan
- */
-public class Tag {
-	public final String tag;
-	public final boolean single;
-
-	public Tag(String tag, boolean single) {
-		this.tag = tag;
-		this.single = single;
-	}
-}
diff --git a/devTools/javaSanityCheck/src/TagSearchTree.java b/devTools/javaSanityCheck/src/TagSearchTree.java
deleted file mode 100644
index 68165866594..00000000000
--- a/devTools/javaSanityCheck/src/TagSearchTree.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.arkerthan.sanityCheck;
-
-import java.util.List;
-
-/**
- * @param <E> Tag class to be stored
- * @author Arkerthan
- * <p>
- * Tag SearchTree stores Tags in an alphabetical search tree.
- * Once created the search tree can't be changed anymore.
- */
-public class TagSearchTree<E extends Tag> {
-	private static final int SIZE = 128;
-	private final TagSearchTree<E>[] branches;
-	private E element = null;
-	private String path;
-
-	/**
-	 * creates a new empty TagSearchTree
-	 */
-	private TagSearchTree() {
-		branches = new TagSearchTree[SIZE];
-	}
-
-	/**
-	 * Creates a new filled TagSearchTree
-	 *
-	 * @param list Tags to be inserted
-	 */
-	public TagSearchTree(List<E> list) {
-		this();
-		for (E e : list) {
-			this.add(e, 0);
-		}
-	}
-
-	/**
-	 * adds a new Tag to the TagSearchTree
-	 *
-	 * @param e	 Tag to be stored
-	 * @param index index of relevant char for adding in tag
-	 */
-	private void add(E e, int index) {
-		//set the path to here
-		path = e.tag.substring(0, index);
-		//checks if tag has to be stored here or further down
-		if (e.tag.length() == index) {
-			element = e;
-		} else {
-			//store tag in correct branch
-			char c = e.tag.charAt(index);
-			if (branches[c] == null) {
-				branches[c] = new TagSearchTree<>();
-			}
-			branches[c].add(e, index + 1);
-		}
-	}
-
-	/**
-	 * @param c character of branch needed
-	 * @return branch or null if branch doesn't exist
-	 */
-	public TagSearchTree<E> getBranch(char c) {
-		if (c >= SIZE) return null;
-		return branches[c];
-	}
-
-	/**
-	 * @return stored Tag, null if empty
-	 */
-	public E getElement() {
-		return element;
-	}
-
-	/**
-	 * @return path inside full tree to get to this Branch
-	 */
-	public String getPath() {
-		return path;
-	}
-}
diff --git a/devTools/javaSanityCheck/src/UnknownStateException.java b/devTools/javaSanityCheck/src/UnknownStateException.java
deleted file mode 100644
index 348a275e201..00000000000
--- a/devTools/javaSanityCheck/src/UnknownStateException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.arkerthan.sanityCheck;
-
-/**
- * @author Arkerthan
- */
-public class UnknownStateException extends RuntimeException {
-
-	public UnknownStateException(int state) {
-		super(String.valueOf(state));
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/AngleBracketElement.java b/devTools/javaSanityCheck/src/element/AngleBracketElement.java
deleted file mode 100644
index 124c8595445..00000000000
--- a/devTools/javaSanityCheck/src/element/AngleBracketElement.java
+++ /dev/null
@@ -1,380 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.*;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author Arkerthan
- */
-public class AngleBracketElement extends Element {
-	private static final List<String> logicTags = Arrays.asList("if", "elseif", "else", "switch", "case", "default");
-	private int state = 0;
-	/*
-	 0 - initial: <
-	 TWINE
-	 1 - <<
-	-1 - <</
-	 2 - trying to complete twine tag: <<tag ???>>
-	-2 - trying to complete twine tag: <</tag>>
-	 3 - waiting for >>
-	-3 - expecting > from 3
-	 4 - waiting for >> with KnownElement
-	-4 - expecting > from 4
-	 5 - expecting >>
-	-5 - expecting >
-	 6 - expecting > with KnownElement opening; comparison?
-	-6 - expecting > with KnownElement closing
-
-	 HTML
-	-9 - </
-	10 - trying to complete HTML tag: <tag ???>
-   -10 - trying to complete HTML tag: </tag>
-	11 - waiting for >
-   -11 - expecting >
-	12 - waiting for > with KnownElement
-	 */
-
-	private TagSearchTree<Tag> tree;
-
-	public AngleBracketElement(int line, int pos) {
-		super(line, pos);
-	}
-
-	@Override
-	public int handleChar(char c) throws SyntaxError {
-		switch (state) {
-			case 0:
-				switch (c) {
-					case '<':
-						state = 1;
-						return 1;
-					case '/':
-						state = -9;
-						return 1;
-					case '>':// empty <>
-					case ' ':// assume comparison
-					case '=':// "		"
-					case '3':// a heart: <3
-						return 2;
-					default:
-						try {
-							state = 10;
-							tree = Main.htmlTags;
-							return handleOpeningHTML(c);
-						} catch (SyntaxError e) {
-							state = 1;
-							throw new SyntaxError("Opening \"<\" missing, found " + c, 1);
-						}
-				}
-			case 1:
-				if (c == '<') {
-					throw new SyntaxError("Too many \"<\".", 1);
-				} else if (c == '>') {
-					state = 3;
-					throw new SyntaxError("Empty Statement?", 1);
-				} else if (c == '/') {
-					state = -1;
-					return 1;
-				}
-				state = 2;
-				tree = Main.twineTags;
-				return handleOpeningTwine(c);
-			case -1:
-				if (c == '>') {
-					throw new SyntaxError("Empty Statement?", 2, true);
-				}
-				state = -2;
-				tree = Main.twineTags;
-				return handleClosingTwine(c);
-
-			case 2:
-				return handleOpeningTwine(c);
-			case -2:
-				return handleClosingTwine(c);
-			case 3:
-				if (c == '>') {
-					state = -3;
-					return 1;
-				}
-				break;
-			case -3:
-				if (c == '>') {
-					return 2;
-				} else if (c == ' ' || c == '=') { // assuming comparison
-					state = 3;
-					return 1;
-				} else {
-					throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 2);
-				}
-			case 4:
-				if (c == '>') {
-					state = -4;
-					return 1;
-				}
-				break;
-			case -4:
-				if (c == '>') {
-					return 3;
-				} else if (c == ' ' || c == '=') { // assuming comparison
-					state = 4;
-					return 1;
-				} else {
-					throw new SyntaxError("Closing \">\" missing, opened tag at[" + line + ":" + pos + "]", 2);
-				}
-			case 5:
-				if (c == '>') {
-					state = -5;
-					return 1;
-				} else {
-					throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 2);
-				}
-			case -5:
-				if (c == '>') {
-					return 2;
-				}
-				throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 2);
-			case 6:
-				if (c == '>') {
-					return 3;
-				} else if (c == ' ' || c == '=') {
-					state = 3;
-					return 1;
-				} else {
-					throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 3);
-				}
-			case -6:
-				if (c == '>') {
-					return 3;
-				}
-				throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 3);
-
-			case -9:
-				if (c == '>') {
-					throw new SyntaxError("Empty Statement?", 2, true);
-				}
-				state = -10;
-				tree = Main.htmlTags;
-				return handleClosingHTML(c);
-			case 10:
-				return handleOpeningHTML(c);
-			case -10:
-				return handleClosingHTML(c);
-			case 11:
-				if (c == '>')
-					return 2;
-				if (c == '@') //@ inside HTML tags is allowed
-					return 1;
-				break;
-			case -11:
-				if (c == '>')
-					return 2;
-				throw new SyntaxError("Closing \">\" missing [2]", 2);
-			case 12:
-				if (c == '>')
-					return 3;
-				if (c == '@') //@ inside HTML tags is allowed
-					return 1;
-				break;
-			default:
-				throw new UnknownStateException(state);
-		}
-		return 0;
-	}
-
-	private int handleOpeningHTML(char c) throws SyntaxError {
-		if (c == ' ') {
-			state = 11;
-			if (tree.getElement() == null) {
-				throw new SyntaxError("Unknown HTML tag", 1);
-			}
-			if (!tree.getElement().single) {
-				k = new KnownHtmlElement(line, pos, true, tree.getElement().tag);
-				state = 12;
-				return 1;
-			}
-			return 1;
-		}
-		if (c == '>') {
-			if (tree.getElement() == null) {
-				throw new SyntaxError("Unknown HTML tag", 2);
-			}
-			if (!tree.getElement().single) {
-				k = new KnownHtmlElement(line, pos, true, tree.getElement().tag);
-				return 3;
-			}
-			return 2;
-		}
-
-		tree = tree.getBranch(c);
-		if (tree == null) {
-			state = 11;
-			throw new SyntaxError("Unknown HTML tag or closing \">\" missing, found " + c, 1);
-		}
-
-		return 1;
-	}
-
-	private int handleClosingHTML(char c) throws SyntaxError {
-		if (c == '>') {
-			if (tree.getElement() == null) {
-				throw new SyntaxError("Unknown HTML tag: " + tree.getPath(), 2);
-			}
-			if (tree.getElement().single) {
-				throw new SyntaxError("Single HTML tag used as closing Tag: " + tree.getElement().tag, 2);
-			}
-			k = new KnownHtmlElement(line, pos, false, tree.getElement().tag);
-			return 3;
-		}
-
-		tree = tree.getBranch(c);
-		if (tree == null) {
-			state = -11;
-			throw new SyntaxError("Unknown HTML tag or closing \">\" missing, found " + c, 1);
-		}
-
-		return 1;
-	}
-
-
-	private int handleOpeningTwine(char c) throws SyntaxError {
-		if (c == ' ') {
-			state = 3;
-			if (tree.getElement() == null) {
-				//assuming not listed means widget until better solution
-				return 1;
-			}
-			if (!tree.getElement().single) {
-				if (logicTags.contains(tree.getElement().tag)) {
-					k = new KnownLogicElement(line, pos, tree.getElement().tag, false);
-				} else {
-					k = new KnownTwineElement(line, pos, true, tree.getElement().tag);
-				}
-				state = 4;
-				return 1;
-			}
-			return 1;
-		}
-		if (c == '>') {
-			state = -5;
-			if (tree.getElement() == null) {
-				//assuming not listed means widget until better solution
-				return 1;
-			}
-			if (!tree.getElement().single) {
-				if (logicTags.contains(tree.getElement().tag)) {
-					k = new KnownLogicElement(line, pos, tree.getElement().tag, false);
-				} else {
-					k = new KnownTwineElement(line, pos, true, tree.getElement().tag);
-				}
-				state = 6;
-				return 1;
-			}
-			return 2;
-		}
-
-		tree = tree.getBranch(c);
-		if (tree == null) {
-			//assuming not listed means widget until better solution
-			state = 3;
-		}
-
-		return 1;
-	}
-
-	private int handleClosingTwine(char c) throws SyntaxError {
-		if (c == '>') {
-			if (tree.getElement() == null) {
-				throw new SyntaxError("Unknown Twine tag: " + tree.getPath(), 2);
-			}
-			if (tree.getElement().single) {
-				throw new SyntaxError("Single Twine tag used as closing Tag: " + tree.getElement().tag, 2);
-			}
-			if (logicTags.contains(tree.getElement().tag)) {
-				k = new KnownLogicElement(line, pos, tree.getElement().tag, true);
-			} else {
-				k = new KnownTwineElement(line, pos, false, tree.getElement().tag);
-			}
-			state = -6;
-			return 1;
-		}
-
-		tree = tree.getBranch(c);
-		if (tree == null) {
-			state = 3;
-			throw new SyntaxError("Unknown Twine closing tag or closing \">>\" missing, found " + c, 1);
-		}
-
-		return 1;
-	}
-
-	@Override
-	public String getShortDescription() {
-		StringBuilder builder = new StringBuilder();
-		builder.append(getPositionAsString()).append(" ");
-		switch (state) {
-			case 0:
-				builder.append("<");
-				break;
-			//TWINE
-			case 1:
-				builder.append("<<");
-				break;
-			case -1:
-				builder.append("<</");
-				break;
-			case 2:
-				builder.append("<<").append(tree.getPath());
-				break;
-			case -2:
-				builder.append("<</").append(tree.getPath());
-				break;
-			case 3:
-				builder.append("<<???");
-				break;
-			case -3:
-				builder.append("<<???>");
-				break;
-			case 4:
-				builder.append("<<").append(tree.getPath()).append(" ???");
-				break;
-			case -4:
-				builder.append("<<").append(tree.getPath()).append(" ???>");
-				break;
-			case 5:
-				builder.append("<<???");
-				break;
-			case -5:
-				builder.append("<<").append(tree == null ? "???" : tree.getPath()).append(">");
-				break;
-			case 6:
-				builder.append("<<").append(tree.getPath()).append(" ???>");
-				break;
-			case -6:
-				builder.append("<</").append(tree.getPath()).append(">");
-				break;
-			//HTML
-			case -9:
-				builder.append("</");
-				break;
-			case 10:
-				builder.append("<").append(tree.getPath());
-				break;
-			case -10:
-				builder.append("</").append(tree.getPath());
-				break;
-			case 11:
-				builder.append("<?").append(tree == null ? "???" : tree.getPath());
-				break;
-			case -11:
-				builder.append("</").append(tree == null ? "???" : tree.getPath());
-				break;
-			case 12:
-				builder.append("<").append(tree.getPath()).append(" ???");
-			default:
-				throw new UnknownStateException(state);
-		}
-		return builder.toString();
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/AtElement.java b/devTools/javaSanityCheck/src/element/AtElement.java
deleted file mode 100644
index f6e39a6ddce..00000000000
--- a/devTools/javaSanityCheck/src/element/AtElement.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.SyntaxError;
-import org.arkerthan.sanityCheck.UnknownStateException;
-
-/**
- * @author Arkerthan
- */
-public class AtElement extends Element {
-	private int state = 0;
-	// 0 = @
-	// 1 = @@
-	// 2 = @@.
-	// 3 = @@.a -- @@.ab -- @@.abc
-	// 4 = @@.abc;abc
-	// 5 = @@.abc;abc@
-
-	// example: @@.red;some text@@
-
-	public AtElement(int line, int pos) {
-		super(line, pos);
-	}
-
-	@Override
-	public int handleChar(char c) throws SyntaxError {
-		switch (state) {
-			case 0:
-				state = 1;
-				if (c == '@') {
-					return 1;
-				} else {
-					if (c == '.') {
-						state = 2;
-					}
-					throw new SyntaxError("Opening \"@\" missing.", 1);
-				}
-			case 1:
-				if (c == '.') {
-					state = 2;
-					return 1;
-				} else {
-					state = 4;
-					throw new SyntaxError("\".\" missing, found \"" + c + "\". This might also indicate a " +
-							"missing closure in the previous color code.", 0, true);
-				}
-			case 2:
-				state = 3;
-				if (Character.isAlphabetic(c)) {
-					return 1;
-				} else {
-					throw new SyntaxError("Identifier might be wrong.", 1, true);
-				}
-			case 3:
-				if (c == ';') {
-					state = 4;
-					return 1;
-				} else if (c == ' ') {
-					state = 4;
-					throw new SyntaxError("\";\" missing or wrong space.", 1);
-				}
-				break;
-			case 4:
-				if (c == '@') {
-					state = 5;
-					return 1;
-				}
-				break;
-			case 5:
-				if (c == '@') {
-					return 2;
-				} else {
-					throw new SyntaxError("Closing \"@\" missing.", 2);
-				}
-			default:
-				throw new UnknownStateException(state);
-		}
-		return 0;
-	}
-
-	@Override
-	public String getShortDescription() {
-		StringBuilder builder = new StringBuilder();
-		builder.append(getPositionAsString()).append(" ");
-		switch (state) {
-			case 0:
-				builder.append("@");
-				break;
-			case 1:
-				builder.append("@@");
-				break;
-			case 2:
-				builder.append("@@.");
-				break;
-			case 3:
-				builder.append("@@.???");
-				break;
-			case 4:
-				builder.append("@@???");
-				break;
-			case 5:
-				builder.append("@@???@");
-				break;
-			default:
-				throw new UnknownStateException(state);
-		}
-		return builder.toString();
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/BracketElement.java b/devTools/javaSanityCheck/src/element/BracketElement.java
deleted file mode 100644
index 89b0a67ef6a..00000000000
--- a/devTools/javaSanityCheck/src/element/BracketElement.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.SyntaxError;
-
-/**
- * @author Arkerthan
- */
-public class BracketElement extends Element {
-	//int state = 0;
-
-	public BracketElement(int line, int pos) {
-		super(line, pos);
-	}
-
-	@Override
-	public int handleChar(char c) throws SyntaxError {
-		if (c == ')') {
-			return 2;
-		} else {
-			return 0;
-		}
-	}
-
-	@Override
-	public String getShortDescription() {
-		return getPositionAsString() + " (???";
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/CommentElement.java b/devTools/javaSanityCheck/src/element/CommentElement.java
deleted file mode 100644
index e18e7419432..00000000000
--- a/devTools/javaSanityCheck/src/element/CommentElement.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.SyntaxError;
-import org.arkerthan.sanityCheck.UnknownStateException;
-
-/**
- * @author Arkerthan
- */
-public class CommentElement extends Element {
-	private int state = 0;
-	/*
-	0 - /
-	1 - /*???
-	2 - /*???*
-	3 - /%???
-	4 - /%???%
-	 */
-
-	/**
-	 * @param line line in which comment starts
-	 * @param pos  position in line where comment starts
-	 */
-	public CommentElement(int line, int pos) {
-		super(line, pos);
-	}
-
-	@Override
-	public int handleChar(char c) throws SyntaxError {
-		switch (state) {
-			case 0:
-				if (c == '*') {
-					state = 1;
-				} else if (c == '%') {
-					state = 3;
-				} else if (c == '>') {
-					throw new SyntaxError("XHTML style closure", 4, true);
-				} else {
-					return 4;
-				}
-				break;
-			case 1:
-				if (c == '*') {
-					state = 2;
-				}
-				break;
-			case 2:
-				if (c == '/') {
-					return 2;
-				} else if (c == '*') {
-					return 1;
-				}
-				state = 1;
-				break;
-			case 3:
-				if (c == '%') {
-					state = 4;
-				}
-				break;
-			case 4:
-				if (c == '/') {
-					return 2;
-				}
-				state = 3;
-				break;
-			default:
-				throw new UnknownStateException(state);
-		}
-		return 1;
-	}
-
-	@Override
-	public String getShortDescription() {
-		return getPositionAsString() + "comment";
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/Element.java b/devTools/javaSanityCheck/src/element/Element.java
deleted file mode 100644
index 205f700362b..00000000000
--- a/devTools/javaSanityCheck/src/element/Element.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.SyntaxError;
-
-/**
- * @author Arkerthan
- */
-public abstract class Element {
-	protected KnownElement k;
-	protected int line, pos;
-
-	/**
-	 * @param line Line the instance was created
-	 * @param pos  Position in line the instance was created
-	 */
-	protected Element(int line, int pos) {
-		this.line = line;
-		this.pos = pos;
-	}
-
-	/**
-	 * Parses a Char and returns an int depending on the state of the element
-	 * 0 - the Element did nothing
-	 * 1 - the Element changed state
-	 * 2 - the Element is finished
-	 * 3 - the Element is finished and a KnownHtmlElement was generated
-	 * 4 - the Element is finished and the char is still open for use
-	 *
-	 * @param c char to be parsed
-	 * @return state change
-	 * @throws SyntaxError thrown when an syntax error is detected
-	 */
-	public abstract int handleChar(char c) throws SyntaxError;
-
-	/**
-	 * @return the constructed KnownElement. null if none was constructed yet.
-	 */
-	public KnownElement getKnownElement() {
-		return k;
-	}
-
-	/**
-	 * Returns the line and position of the Element in the file it was created in.
-	 *
-	 * @return position of Element in file as String
-	 */
-	public String getPositionAsString() {
-		return "[" + line + ":" + pos + "]";
-	}
-
-	/**
-	 * @return a short description usually based on state and position of the Element
-	 */
-	public abstract String getShortDescription();
-}
diff --git a/devTools/javaSanityCheck/src/element/KnownElement.java b/devTools/javaSanityCheck/src/element/KnownElement.java
deleted file mode 100644
index 709fc389177..00000000000
--- a/devTools/javaSanityCheck/src/element/KnownElement.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.SyntaxError;
-
-/**
- * @author Arkerthan
- */
-public abstract class KnownElement extends Element {
-
-	/**
-	 * @param line at which it begins
-	 * @param pos  at which it begins
-	 */
-	public KnownElement(int line, int pos) {
-		super(line, pos);
-	}
-
-	/**
-	 * @return true, if it needs another Known Element to close it.
-	 */
-	public abstract boolean isOpening();
-
-	/**
-	 * @return true if it closes another Element.
-	 */
-	public abstract boolean isClosing();
-
-	/**
-	 * @param k Element to be checked
-	 * @return true if given Element closes Element
-	 */
-	public abstract boolean isMatchingElement(KnownElement k);
-
-	@Override
-	public int handleChar(char c) throws SyntaxError {
-		return 0;
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/KnownHtmlElement.java b/devTools/javaSanityCheck/src/element/KnownHtmlElement.java
deleted file mode 100644
index d7c25299ba4..00000000000
--- a/devTools/javaSanityCheck/src/element/KnownHtmlElement.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-/**
- * @author Arkerthan
- */
-public class KnownHtmlElement extends KnownElement {
-
-	private boolean opening;
-	private String statement;
-
-	/**
-	 * @param line	  at which it begins
-	 * @param pos	   at which it begins
-	 * @param opening   if it opens a tag: <tag>  or closes it: </tag>
-	 * @param statement statement inside the tag
-	 */
-	public KnownHtmlElement(int line, int pos, boolean opening, String statement) {
-		super(line, pos);
-		this.opening = opening;
-		this.statement = statement;
-	}
-
-	@Override
-	public String getShortDescription() {
-		StringBuilder builder = new StringBuilder();
-		builder.append(getPositionAsString()).append(" <");
-		if (!opening) {
-			builder.append("/");
-		}
-		return builder.append(statement).append(">").toString();
-	}
-
-	@Override
-	public boolean isOpening() {
-		return opening;
-	}
-
-	@Override
-	public boolean isClosing() {
-		return !opening;
-	}
-
-	@Override
-	public boolean isMatchingElement(KnownElement k) {
-		if (k instanceof KnownHtmlElement) {
-			return ((KnownHtmlElement) k).statement.equals(this.statement);
-		}
-		return false;
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/KnownLogicElement.java b/devTools/javaSanityCheck/src/element/KnownLogicElement.java
deleted file mode 100644
index 5c8496a5c55..00000000000
--- a/devTools/javaSanityCheck/src/element/KnownLogicElement.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-import org.arkerthan.sanityCheck.DisallowedTagException;
-import org.arkerthan.sanityCheck.UnknownStateException;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author Arkerthan
- */
-public class KnownLogicElement extends KnownElement {
-	private static final List<String> allowedTags = Arrays.asList("if", "elseif", "else");
-	private final int state;
-	private boolean last;
-	/*
-	0 - if
-	1 - elseif
-	2 - else
-	3 - switch
-	4 - case
-	5 - default
-	 */
-
-	public KnownLogicElement(int line, int pos, String tag, boolean last) {
-		this(line, pos, tag);
-		this.last = last;
-	}
-
-	public KnownLogicElement(int line, int pos, String tag) {
-		super(line, pos);
-		switch (tag) {
-			case "if":
-				state = 0;
-				break;
-			case "elseif":
-				state = 1;
-				break;
-			case "else":
-				state = 2;
-				break;
-			case "switch":
-				state = 3;
-				break;
-			case "case":
-				state = 4;
-				break;
-			case "default":
-				state = 5;
-				break;
-			default:
-				throw new DisallowedTagException(tag);
-		}
-		last = false;
-	}
-
-	@Override
-	public boolean isOpening() {
-		return !last;
-	}
-
-	@Override
-	public boolean isClosing() {
-		return (state != 0 && state != 3) || last;
-	}
-
-	@Override
-	public boolean isMatchingElement(KnownElement k) {
-		if (!(k instanceof KnownLogicElement)) {
-			return false;
-		}
-		KnownLogicElement l = (KnownLogicElement) k;
-		switch (state) {
-			case 0:
-			case 1:
-				return l.state == 1 || l.state == 2 || (l.state == 0 && l.last);
-			case 2:
-				return l.state == 0 && l.last;
-			case 3:
-			case 4:
-				return l.state == 3 || l.state == 4;
-			case 5:
-				return l.state == 3 && l.last;
-			default:
-				throw new UnknownStateException(state);
-		}
-	}
-
-	@Override
-	public String getShortDescription() {
-		StringBuilder builder = new StringBuilder();
-		builder.append(getPositionAsString()).append(" <<");
-		if (last) {
-			builder.append('/');
-		}
-		switch (state) {
-			case 0:
-				builder.append("if");
-				break;
-			case 1:
-				builder.append("elseif");
-				break;
-			case 2:
-				builder.append("else");
-				break;
-			case 3:
-				builder.append("switch");
-				break;
-			case 4:
-				builder.append("case");
-				break;
-			case 5:
-				builder.append("default");
-				break;
-			default:
-				throw new UnknownStateException(state);
-		}
-		return builder.append(">>").toString();
-	}
-}
diff --git a/devTools/javaSanityCheck/src/element/KnownTwineElement.java b/devTools/javaSanityCheck/src/element/KnownTwineElement.java
deleted file mode 100644
index 9693fb840df..00000000000
--- a/devTools/javaSanityCheck/src/element/KnownTwineElement.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.arkerthan.sanityCheck.element;
-
-/**
- * @author Arkerthan
- */
-public class KnownTwineElement extends KnownElement {
-
-	private boolean opening;
-	private String statement;
-
-	/**
-	 * @param line	  at which it begins
-	 * @param pos	   at which it begins
-	 * @param opening   if it opens a tag: <<tag>>  or closes it: <</tag>>
-	 * @param statement statement inside the tag
-	 */
-	public KnownTwineElement(int line, int pos, boolean opening, String statement) {
-		super(line, pos);
-		this.opening = opening;
-		this.statement = statement;
-	}
-
-	@Override
-	public String getShortDescription() {
-		StringBuilder builder = new StringBuilder();
-		builder.append(getPositionAsString()).append(" <<");
-		if (!opening) {
-			builder.append("/");
-		}
-		return builder.append(statement).append(">>").toString();
-	}
-
-	@Override
-	public boolean isOpening() {
-		return opening;
-	}
-
-	@Override
-	public boolean isClosing() {
-		return !opening;
-	}
-
-	@Override
-	public boolean isMatchingElement(KnownElement k) {
-		if (k instanceof KnownTwineElement) {
-			return ((KnownTwineElement) k).statement.equals(this.statement);
-		}
-		return false;
-	}
-}
-- 
GitLab