import java.util.ArrayList;
import java.util.List;
+import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.DROP;
+import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
+
public class JavaFile {
public static final String UTF_8 = "UTF-8";
final Tokenizer tokenizer = new Tokenizer(contents.toString());
// empty space
- tokenizer.addTerminator(" ", true);
- tokenizer.addTerminator("\t", true);
- tokenizer.addTerminator("\n", true);
-
- tokenizer.addTerminator(";", false);
- tokenizer.addTerminator("{", false);
- tokenizer.addTerminator("}", false);
- tokenizer.addTerminator("(", false);
- tokenizer.addTerminator(")", false);
- tokenizer.addTerminator("[", false);
- tokenizer.addTerminator("]", false);
- tokenizer.addTerminator("<", false);
- tokenizer.addTerminator(">", false);
- tokenizer.addTerminator(",", false);
- tokenizer.addTerminator("@", false);
+ tokenizer.addTerminator(" ", DROP);
+ tokenizer.addTerminator("\t", DROP);
+ tokenizer.addTerminator("\n", DROP);
+
+ tokenizer.addTerminator(";", PRESERVE);
+ tokenizer.addTerminator("{", PRESERVE);
+ tokenizer.addTerminator("}", PRESERVE);
+ tokenizer.addTerminator("(", PRESERVE);
+ tokenizer.addTerminator(")", PRESERVE);
+ tokenizer.addTerminator("[", PRESERVE);
+ tokenizer.addTerminator("]", PRESERVE);
+ tokenizer.addTerminator("<", PRESERVE);
+ tokenizer.addTerminator(">", PRESERVE);
+ tokenizer.addTerminator(",", PRESERVE);
+ tokenizer.addTerminator("@", PRESERVE);
// comments
- tokenizer.addTerminator("//", "\n", true);
- tokenizer.addTerminator("/*", "*/", true);
+ tokenizer.addTerminator("//", "\n", DROP);
+ tokenizer.addTerminator("/*", "*/", DROP);
final Modifiers modifiers = new Modifiers();
imports.add(imp);
- tokenizer.expectNextToken(";");
+ tokenizer.expectAndConsumeNextToken(";");
}
private void parseInterface(final Tokenizer tokenizer)
packageName = match.token;
- tokenizer.expectNextToken(";");
+ tokenizer.expectAndConsumeNextToken(";");
}
private void readFile() throws IOException {
inputStream.close();
}
- public void skipUntilSemicolon(final Tokenizer tokenizer) {
+ public void skipUntilSemicolon(final Tokenizer tokenizer) throws InvalidSyntaxException {
while (true) {
final TokenizerMatch token = tokenizer.getNextToken();