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.isOptionalEmpty; import static org.zwobble.precisely.Matchers.isOptionalOf; public class ParserBreakTests { @Test public void canParseBreakWithExpression() { var source = "break x;"; var node = parseString(source, Parser::parseFunctionStatement); assertThat(node, isUntypedBreakNode(isOptionalOf( isUntypedReferenceNode("x")) )); } @Test public void canParseBreakWithoutExpression() { var source = "break;"; var node = parseString(source, Parser::parseFunctionStatement); assertThat(node, isUntypedBreakNode(isOptionalEmpty())); } }