blob: 6fec7590194783f1ac898683b70908b6d8c77fbc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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> T parseString(
String sourceContents,
Function<TokenIterator, T> parseTokens
) {
var sourceText = SourceText.fromString("<string>", sourceContents);
var tokens = Tokenizer.tokenize(sourceText);
var tokenIterator = tokens.iterator();
var result = parseTokens.apply(tokenIterator);
assertThat(tokenIterator.peek().tokenType(), equalTo(TokenType.END));
return result;
}
}
|