private boolean eatDirectiveName() {
return this.eat(DirectiveNameToken::new, Tokeniser.directiveNamePattern);
}
private boolean eatDirectiveValue() {
return this.eat(DirectiveValueToken::new, Tokeniser.directiveValuePattern);
<BUG>}
private void eatWhitespace() {</BUG>
while (this.hasNext() && Tokeniser.isWhitespace(this.sourceText.charAt(this.index))) {
++this.index;
}

private boolean eatDirectiveName() {
return this.eat(DirectiveNameToken::new, Tokeniser.directiveNamePattern);
}
private boolean eatDirectiveValue() {
return this.eat(DirectiveValueToken::new, Tokeniser.directiveValuePattern);
}
private boolean eatUntilSeparator() {
return this.eat(UnknownToken::new, Tokeniser.notSeparator);
}
private void eatWhitespace() {
while (this.hasNext() && Tokeniser.isWhitespace(this.sourceText.charAt(this.index))) {
++this.index;
