package org.zwobble.hobgoblin.compiler.parser; import org.zwobble.hobgoblin.compiler.parser.TokenIterator; import org.zwobble.hobgoblin.compiler.parser.TokenType; import org.zwobble.hobgoblin.compiler.parser.Tokenizer; import org.zwobble.sourcetext.SourceText; import java.util.function.Function; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.equalTo; public class ParserTesting { public static T parseString( String sourceContents, Function parseTokens ) { var sourceText = SourceText.fromString("", sourceContents); var tokens = Tokenizer.tokenize(sourceText); var tokenIterator = tokens.iterator(); var result = parseTokens.apply(tokenIterator); assertThat(tokenIterator.peek().tokenType(), equalTo(TokenType.END)); return result; } }