public class DoWhileStatementTest { LexerlessGrammar g = EcmaScriptGrammar.createGrammar(); @Test public void realLife() { assertThat(g.rule(EcmaScriptGrammar.DO_WHILE_STATEMENT)) .as("inner statement must end by newline or semicolon") .notMatches("do something() while (condition);"); } }
public class ContinueStatementTest { LexerlessGrammar g = EcmaScriptGrammar.createGrammar(); @Test public void ok() { assertThat(g.rule(EcmaScriptGrammar.CONTINUE_STATEMENT)) .as("EOS is line terminator") .matchesPrefix("continue \n", "another-statement ;") .matchesPrefix("continue label \n", "another-statement ;") .matchesPrefix("continue \n", ";") .as("EOS is semicolon") .matchesPrefix("continue ;", "another-statement") .matchesPrefix("continue label \n ;", "another-statement") .as("EOS is before right curly bracket") .matchesPrefix("continue ", "}") .matchesPrefix("continue label ", "}") .as("EOS is end of input") .matches("continue ") .matches("continue label "); } }