package org.shedlang.compiler.parser; import org.shedlang.compiler.sources.SourceTexts; import org.shedlang.compiler.tokeniser.TokenIterator; import java.util.function.Function; import static org.shedlang.compiler.parser.Tokeniser.tokenise; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.equalTo; public class ParserTesting { public static T parseString( String sourceContents, Function, T> parseTokens ) { var sourceText = SourceTexts.string(sourceContents); var tokens = tokenise(sourceText); var result = parseTokens.apply(tokens); assertThat(tokens.peek().tokenType(), equalTo(TokenType.END)); return result; } }