You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
anyOf(Characters.ALL) does match even if no more input is available. It should not match because no input character is available and thus no input character could have been consumed.
The behavior of ANY is correct: it does not match if no more input is available.
$ gradle
:compileJava
:processResources UP-TO-DATE
:classes
:run
Parser1: false
Parser2: true
BUILD SUCCESSFUL
Total time: 6.269 secs
$ cat build.gradle
defaultTasks 'run'
apply plugin: 'application'
apply plugin: 'java'
sourceCompatibility = 1.8
mainClassName = 'app.Main'
dependencies {
compile 'com.github.fge:grappa:2.0.0'
}
repositories {
mavenCentral()
}
$ cat src/main/java/app/Main.java
package app;
import com.github.fge.grappa.Grappa;
import com.github.fge.grappa.buffers.CharSequenceInputBuffer;
import com.github.fge.grappa.parsers.BaseParser;
import com.github.fge.grappa.rules.Rule;
import com.github.fge.grappa.run.ListeningParseRunner;
import com.github.fge.grappa.support.Characters;
public class Main {
public static void main(final String[] args) {
final Parser parser = Grappa.createParser(Parser.class);
final CharSequenceInputBuffer buffer = new CharSequenceInputBuffer("");
System.out.println("Parser1: "+new ListeningParseRunner<>(parser.rule1()).run(buffer).isSuccess());
System.out.println("Parser2: "+new ListeningParseRunner<>(parser.rule2()).run(buffer).isSuccess());
}
public static class Parser extends BaseParser<Object> {
public Rule rule1() {
return ANY;
}
public Rule rule2() {
return anyOf(Characters.ALL);
}
}
}
The text was updated successfully, but these errors were encountered:
anyOf(Characters.ALL) does match even if no more input is available. It should not match because no input character is available and thus no input character could have been consumed.
The behavior of ANY is correct: it does not match if no more input is available.
The text was updated successfully, but these errors were encountered: