Class QCirParser


  • public class QCirParser
    extends net.sf.tweety.commons.Parser<net.sf.tweety.logics.pl.syntax.PlBeliefSet,​net.sf.tweety.logics.pl.syntax.PlFormula>
    This class implements a parser for the QCIR (Quantified CIRcuit) format. See http://www.qbflib.org/qcir.pdf for more information.
    The BNF for a QCir file is given by (starting symbol is QCIR-FILE):

    QCIR-FILE ::== FORMAT-ID QBLOCK-STMT OUTPUT-STMT (GATE-STMT)*
    FORMAT-ID ::== "#QCIR-G14" [INTEGER] "\n"
    QBLOCK-STMT ::== ["free(" VAR-LIST ")\n"] QBLOCK-QUANT*
    QBLOCK-QUANT ::== QUANT "(" VAR-LIST ")"\n"
    VAR-LIST ::== (VAR,)* VAR
    LIT-LIST ::== (LIT,)* LIT
    OUTPUT-STMT ::== "output(" LIT ")\n"
    GATE-STMT ::== GVAR "=" "and" "(" LIT-LIST ")" | GVAR "=" "or" "(" LIT-LIST ")" | GVAR "=" "xor(" LIT "," LIT ")" | GVAR "=" "ite(" LIT "," LIT "," LIT ")" | GVAR = QUANT "(" VAR-LIST ";" LIT ")"
    QUANT ::== "exists" | "forall"
    LIT ::== VAR | "-" VAR | GVAR | "-" GVAR

    ite stands for if-then-else.
    INTEGER are integer numbers.
    VAR and GVAR are sequences of characters of symbols from {a,...,z,A,...,Z,0,...,9,_}.
    Additionally, lines starting with "#" (comments) will be ignored.
    Author:
    Anna Gessler
    • Constructor Detail

      • QCirParser

        public QCirParser()
    • Method Detail

      • getOutputVariable

        public net.sf.tweety.logics.pl.syntax.PlFormula getOutputVariable()
        Returns:
        the output gate of this QCir problem.
      • parseBeliefBase

        public net.sf.tweety.logics.pl.syntax.PlBeliefSet parseBeliefBase​(Reader reader)
                                                                   throws IOException,
                                                                          net.sf.tweety.commons.ParserException
        Specified by:
        parseBeliefBase in class net.sf.tweety.commons.Parser<net.sf.tweety.logics.pl.syntax.PlBeliefSet,​net.sf.tweety.logics.pl.syntax.PlFormula>
        Throws:
        IOException
        net.sf.tweety.commons.ParserException
      • parseFormula

        public net.sf.tweety.logics.pl.syntax.PlFormula parseFormula​(Reader reader)
                                                              throws IOException,
                                                                     net.sf.tweety.commons.ParserException
        Specified by:
        parseFormula in class net.sf.tweety.commons.Parser<net.sf.tweety.logics.pl.syntax.PlBeliefSet,​net.sf.tweety.logics.pl.syntax.PlFormula>
        Throws:
        IOException
        net.sf.tweety.commons.ParserException