Skip to content
This repository has been archived by the owner on Apr 3, 2018. It is now read-only.

Commit

Permalink
LANG: Minor ParseSource follow-up cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
bruno-medeiros committed Jun 10, 2015
1 parent 2d9b0df commit 3232afb
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 13 deletions.
Expand Up @@ -51,18 +51,17 @@ protected ArrayList<ToolSourceMessage> parse(StringParseSource output) throws Co
protected ArrayList<ToolSourceMessage> parseMessages(StringParseSource output) {
buildMessages = new ArrayList2<>();

while(!output.lookaheadIsEOF()) {
doParseLine(output);
while(true) {
String outputLine = output.consumeLine();
if(outputLine == null) {
break;
}
doParseLine(outputLine, output);
}

return buildMessages;
}

protected void doParseLine(StringParseSource output) {
String outputLine = output.consumeLine();
doParseLine(outputLine, output);
}

protected abstract void doParseLine(String outputLine, StringParseSource output);

protected void addMessage(String pathString, String lineString, String columnString, String endLineString,
Expand Down
Expand Up @@ -124,6 +124,10 @@ default String determineNewlineSequenceAt(int offset) throws EXC {
return null;
}

default String stringUntilNewline() throws EXC {
return stringUntilNewline(0);
}

default String stringUntilNewline(int offset) throws EXC {
StringBuilder sb = new StringBuilder();

Expand Down
Expand Up @@ -146,12 +146,13 @@ public static int testLookAhead(ICharSource<?> parseSource, int expected) throws
public void testConsumeNewline() throws Exception { testConsumeNewline$(); }
public void testConsumeNewline$() throws Exception {
init("abc\ndef\r\nzzz");
assertEquals(parseSource.stringUntilNewline(0), "abc");
assertEquals(parseSource.stringUntilNewline(1), "bc");
assertEquals(parseSource.stringUntilNewline(3), "");
assertEquals(parseSource.consumeLine(), "abc");
assertEquals(parseSource.consumeLine(), "def");
assertEquals(parseSource.consumeLine(), "zzz");
assertAreEqual(parseSource.stringUntilNewline(0), "abc");
assertAreEqual(parseSource.stringUntilNewline(1), "bc");
assertAreEqual(parseSource.stringUntilNewline(3), "");
assertAreEqual(parseSource.consumeLine(), "abc");
assertAreEqual(parseSource.consumeLine(), "def");
assertAreEqual(parseSource.consumeLine(), "zzz");
assertAreEqual(parseSource.consumeLine(), null);
}


Expand Down

0 comments on commit 3232afb

Please sign in to comment.