Giter Club home page Giter Club logo

bullwinkle's People

Contributors

sylvainhalle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bullwinkle's Issues

NoClassDefFoundError

When I try to use this library like in the example SimpleExample.java, I get the error

Exception in thread "main" java.lang.NoClassDefFoundError: ca/uqac/lif/bullwinkle/BnfParser
        at CExt.main(CExt.java:8)
Caused by: java.lang.ClassNotFoundException: ca.uqac.lif.bullwinkle.BnfParser
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
        ... 1 more

My main class:

import ca.uqac.lif.bullwinkle.BnfParser;
import ca.uqac.lif.bullwinkle.ParseNode;
import ca.uqac.lif.bullwinkle.output.GraphvizVisitor;

public class CExt {
    public static void main(String[] args) {
        try {
    		BnfParser parser = new BnfParser(CExt.class.getResourceAsStream("test.bnf"));
        } catch (Exception e) {
            System.err.println("An error occured");
            e.printStackTrace();
        }
    }
}

Refactor parseRule

In BnfRule.parseRule(String), split parsing of LHS and RHS in two methods. Then, use RHS parsing in BnfParser.addCaseToRule to allow user to add anything to a rule, not just a NonTerminalToken.

Help with "one or more" string

I'm using this library which is really amazing and simple to use, i'm stuck on one thing though. I have a rule as follows:

<rFunc> := _r.iri but i want to allow string which can start with one or more undescore. _+ r.iri is not working.

How can I allow more than one underscore at the beginning ?

Ellaborate error messages

tl;dr Error messages from parsing would need some elaboration about where the error occurred.

I'm parsing from command line with a grammar file and an input string from file and it works just as I want when there are no errors. However if there is a syntax error in the input file Bullwinkle will tell me there is an error but not where it is located. Only "ERROR parsing input". It's not even clear if the error is in the input file or in the grammar. If I would have a very large input file Bullwinkle would become unusable as a parser. Maybe the error message could tell which line and column the error was detected.

The project I'm working with needs parsing from a BNF grammar but no compilation is needed. That is why this library is what I need and the user guide is very well documented. Thank you!

Allow regex case in multi-case rule

So far, you can write

<rule> := ^regex;

but not

<rule> := literal | ^regex;

Suggested syntax: introduce the $ to mark the end of the regex, so you could write:

<rule> := literal | ^regex$ | foo | bar;

Cannot find rule for token

I am probably abusing Bullwinkle in several ways, but could use some guidance in how to do it right.

I've converted the ANSI SQL BNF to what I think it the correct Bullwinkle syntax: sql_bnf.txt

I then tried to parse some simple SQL:

File file = new File("sql_bnf.txt");
try {
	BnfParser parser = new BnfParser(file);
	ParseNode node = parser.parse("SELECT * FROM my_table WHERE x = 5;");
} catch (InvalidGrammarException | IOException | ParseException e) {
	e.printStackTrace();
}

which results in this error message:

Cannot find rule for token <SQL_language_character>
	at ca.uqac.lif.bullwinkle.BnfParser.parse(BnfParser.java:483)
	at ca.uqac.lif.bullwinkle.BnfParser.parse(BnfParser.java:398)
	at org.ohdsi.parserTest.BullwinkleTest.main(BullwinkleTest.java:28)

I tried both the latest release (v1.3) as well as the current version in master, with no difference in results.

Help?

Support optional rules when parsing

I'm trying to use Bullwinkle to parse the BNF for Java. So I grabbed the code, downloaded the Java BNF from here: https://cs.au.dk/~amoeller/RegAut/JavaBNF.html. Did some editing to clean things up and wrote this code:

public static void main(final String... args) throws InvalidGrammarException, ParseException {
    InputStream stream = new ByteArrayInputStream("""
            <package_declaration> := package <package_name>? ;
            <package_name> := ^[a-z]+
            """.getBytes(UTF_8));

    BnfParser parser = new BnfParser(stream);
    ParseNode tree = parser.parse("""
        package boe;
        class Test {
            public static void main(String[] args) {
                System.out.println("Hello, world!");
            }
        }""");
    System.out.println(tree);
}

I had to change the parsing in getRules to stop using semicolons for the end of rules and instead look at line endings. After that change and running the code I get this error:

Exception in thread "main" Cannot find rule for token <package_name>?
    at ca.uqac.lif.bullwinkle.BnfParser.parse(BnfParser.java:542)
    at ca.uqac.lif.bullwinkle.BnfParser.parse(BnfParser.java:457)
    at examples.JavaParsing.main(JavaParsing.java:23)

This is problematic because the Java BNF is filled with optional rules:

<compilation unit> := <package declaration>? <import declarations>? <type declarations>?
<class declaration> := <class modifiers>? class <identifier> <super>? <interfaces>? <class body>
<class body> := { <class body declarations>? }
<constructor declaration> := <constructor modifiers>? <constructor declarator> <throws>? <constructor body>
<constructor declarator> := <simple type name> ( <formal parameter list>? )

and more.

I'd love to be able to parse Java with bullwinkle. Thanks.

A more permissive license

I was thinking about doing improvements to the project but read in the license that I would have to add a notice with my name in each sourcefile I edit. It applies if I redistribute the code and I guess a public fork counts as redistribution. I think it creates redundancy since the changes are saved by git anyway and I would probably rather make the fork private than having to think about changelogs. The easiest solution would be if the license changed.

Could you consider switching to a more permissive license like MIT?

Cannot get example working

I have adapted the SimpleExample.java

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import ca.uqac.lif.bullwinkle.BnfParser;
import ca.uqac.lif.bullwinkle.ParseNode;
import ca.uqac.lif.bullwinkle.output.GraphvizVisitor;

public class CExt {
    public static void main(String[] args) {
        try {
            File bnfFile = new File(args[0]);
            InputStream bnfStream = new FileInputStream(bnfFile);

    		BnfParser parser = new BnfParser(bnfStream);
            parser.setDebugMode(true);
            ParseNode node2 = parser.parse("(10 + (3 - 4))");
            GraphvizVisitor visitor = new GraphvizVisitor();
            node2.prefixAccept(visitor);
            System.out.println(visitor.toOutputString());
        } catch (Exception e) {
            System.err.println("An error occured");
            e.printStackTrace();
        }
    }
}

The input bnf file is the Simple-Math.bnf

When I run this program, the node2 variable is null.
Here is the full output:

jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Considering input '(10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Considering input '(10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED parsing input (10 + (3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Considering input '(10 + (3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED: expected more symbols with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED parsing input (10 + (3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Alternative <mul>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Considering input '(10 + (3 - 4))' with rule <mul> := <num> × <num> | <num> × ( <exp> ) | ( <exp> ) × <num> | ( <exp> ) × ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> × <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <mul> := <num> × <num> | <num> × ( <exp> ) | ( <exp> ) × <num> | ( <exp> ) × ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> × ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <mul> := <num> × <num> | <num> × ( <exp> ) | ( <exp> ) × <num> | ( <exp> ) × ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) × <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) × ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED: expected more symbols with rule <mul> := <num> × <num> | <num> × ( <exp> ) | ( <exp> ) × <num> | ( <exp> ) × ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED parsing input (10 + (3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Alternative <div>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Considering input '(10 + (3 - 4))' with rule <div> := <num> ÷ <num> | <num> ÷ ( <exp> ) | ( <exp> ) ÷ <num> | ( <exp> ) ÷ ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> ÷ <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <div> := <num> ÷ <num> | <num> ÷ ( <exp> ) | ( <exp> ) ÷ <num> | ( <exp> ) ÷ ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative <num> ÷ ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing input (10 + (3 - 4)) with rule <div> := <num> ÷ <num> | <num> ÷ ( <exp> ) | ( <exp> ) ÷ <num> | ( <exp> ) ÷ ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) ÷ <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ( <exp> ) ÷ ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Considering input '10 + (3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:     Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Considering input '10 + (3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '(3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       FAILED parsing input 10 + (3 - 4)) with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:       Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Considering input '3 - 4))' with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <add>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case <num> + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED parsing with case ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           FAILED: expected more symbols with rule <add> := <num> + <num> | <num> + ( <exp> ) | ( <exp> ) + <num> | ( <exp> ) + ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         FAILED parsing input 3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:         Alternative <sub>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Considering input '3 - 4))' with rule <sub> := <num> - <num> | <num> - ( <exp> ) | ( <exp> ) - <num> | ( <exp> ) - ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:           Alternative <num> - <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Considering input '4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:             Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED: expected more symbols with rule <div> := <num> ÷ <num> | <num> ÷ ( <exp> ) | ( <exp> ) ÷ <num> | ( <exp> ) ÷ ( <exp> )
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED parsing input (10 + (3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Alternative - <exp>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED parsing with case - <exp>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: Alternative <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Considering input '(10 + (3 - 4))' with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   Alternative ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED parsing with case ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO:   FAILED: expected more symbols with rule <num> := ^[0-9]+
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED parsing input (10 + (3 - 4)) with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
jul. 26, 2023 12:54:21 P.M. ca.uqac.lif.bullwinkle.BnfParser log
INFO: FAILED: expected more symbols with rule <exp> := <add> | <sub> | <mul> | <div> | - <exp> | <num>
An error occured
java.lang.NullPointerException
        at CExt.main(CExt.java:19)

BNF command line parser

Existing command line parsers (including Bullwinkle's CliParser) offer a restricted way of defining command line arguments: either -parameter or -parameter value.

Create a new parser where arguments are defined with a BNF grammar. Parsing a command line produces a parse tree that the user can then traverse.

Example:

<S>     := <param> <S> | <param> ;
<param> := <p1> | <p2> ;
<p1>    := -p <args1> ;
<args1> := <num> <num> | zig <num>;
<p2>    := ^foo(bar|baz)$;
<num>   := ^\d+$;

Valid calls would be, for example:

  • -p 123 45
  • foobaz
  • foobar -p zig 2
  • -p 1 2 foobar -p zig 34

Not an issue

Hi, I apologise for logging this here as I couldn't find a comment section.
I just want to say that I'm super impressed with this project and how the thinking is different to all and I'm saying each and every other bnf/language parser/implentation that I have come across.
EXCELLENT STUFF!!!!

Maurice Marinus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.