package org.shedlang.compiler.parser; import org.junit.jupiter.api.Test; import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.*; import static org.shedlang.compiler.parser.ParserTesting.parseString; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.isSequence; public class ParserWhileTests { @Test public void canParseWhile() { var source = """ while (true) { f(); }"""; var node = parseString(source, Parser::parseFunctionStatement); assertThat(node, isUntypedWhileNode( isUntypedBoolLiteralNode(true), isUntypedBlockNode(isSequence( isUntypedExpressionStatementNode( isUntypedCallNode().withReceiver(isUntypedReferenceNode("f")) ) )) )); } }