Class ASPCore2Parser

  • All Implemented Interfaces:
    ASPCore2ParserConstants, ASPCore2ParserTreeConstants

    public class ASPCore2Parser
    extends java.lang.Object
    implements ASPCore2ParserTreeConstants, ASPCore2ParserConstants
    Parser for ASP programs in the ASP-Core-2 syntax https://www.mat.unical.it/aspcomp2013/files/ASP-CORE-2.03c.pdf. This parser also supports most of the (Clingo) and DLV input syntaxes and provides additional methods for parsing answer sets given by the DLV and Clingo solvers.

    The EBNF grammar for ASP-Core-2 is given as follows:
    PROGRAM ::== (STATEMENT)* (QUERY)?
    QUERY ::== LITERAL "?"
    STATEMENT ::== ":-" BODY_ELEMENTS "." | HEAD (":-" BODY_ELEMENTS)? "." | ":~" BODY_ELEMENTS "." | OPTIMIZE "."
    HEAD ::== (LITERAL "|")* LITERAL | CHOICE
    BODY_ELEMENTS ::== (BODY_ELEMENTS ",")? BODY_ELEMENT
    BODY_ELEMENT ::== NAF_LITERAL | ("not")? AGGREGATE
    CHOICE ::== (TERM BINOP)? "{" CHOICE_ELEMENTS "}" (BINOP TERM)?
    CHOICE_ELEMENTS ::== (CHOICE_ELEMENTS ";")? CHOICE_ELEMENT
    CHOICE_ELEMENT ::== LITERAL (":" NAF_LITERALS)?
    AGGREGATE ::== (TERM BINOP)? AGGREGATE_FUNCTION "{" AGGREGATE_ELEMENTS "}" (BINOP TERM)?
    AGGREGATE_ELEMENTS ::== (AGGREGATE_ELEMENTS ";")? AGGREGATE_ELEMENT
    AGGREGATE_ELEMENT ::== (Terms)? (":" NAF_LITERALS)?
    AGGREGATE_FUNCTION ::== "#max" | "#min" | "#count" | "#sum"
    OPTIMIZE ::== OPTIMIZE_FUNCTION "{" (OPTIMIZE_ELEMENTS)? "}"
    OPTIMIZE_ELEMENTS ::== (OPTIMIZE_ELEMENTS ";")? OPTIMIZE_ELEMENT
    OPTIMIZE_ELEMENT ::== WEIGHT_AT_LEVEL (":" NAF_LITERALS)?
    OPTIMIZE_FUNCTION ::== "#maximize" | "#maximise" | "#minimize"| "#minimise"
    WEIGHT_AT_LEVEL ::== TERM ("@" TERM)? ("," TERMS)?
    NAF_LITERALS ::== (NAF_LITERALS ",")? NAF_LITERAL
    NAF_LITERAL ::== ("not")? LITERAL | BUILTIN_ATOM
    LITERAL ::== ("-")? ID ("(" Terms ")")?
    BUILTIN_ATOM ::== TERM BINOP TERM
    BINOP ::== "=" | "!=" | "<>" | "<" | ">" | "<=" | ">="
    TERMS ::== (TERMS ",")? TERM
    TERM ::== ID ("(" TERMS ")")? | NUMBER | STRING | VARIABLE | "_" | "(" TERM ")" | "-" TERM | TERM ARITHOP TERM
    ARITHOP ::== "+" | "-" | "*" | "/"
    where ID is a sequence of letters, numbers, and "_" that starts with a lowercase letter, VARIABLE is a sequence of letters, numbers, and "_" that starts with an uppercase letter, STRING is a sequence of arbitrary characters surrounded by quotation marks ("...") and NUMBER is a sequence of numbers.
    Single-line comments (starting with "%") and multi-line-comments (starting with "%*", ending with "*%") are ignored by the parser.

    The following constructs from Clingo are supported additionally to the ASP-Core-2 syntax:
    - show statements: "#show " ID "/" NUMBER
    Other Clingo meta-statements (#include, #external, #program, #script and #const) are currently not supported.

    The following constructs from DLV are supported additionally to the ASP-Core-2 syntax:
    - TODO
    Author:
    Anna Gessler
    • Field Detail

      • token

        public Token token
        Current token.
      • jj_nt

        public Token jj_nt
        Next token.
      • jj_ntk

        private int jj_ntk
      • jj_scanpos

        private Token jj_scanpos
      • jj_lastpos

        private Token jj_lastpos
      • jj_la

        private int jj_la
      • jj_gen

        private int jj_gen
      • jj_la1

        private final int[] jj_la1
      • jj_la1_0

        private static int[] jj_la1_0
      • jj_la1_1

        private static int[] jj_la1_1
      • jj_rescan

        private boolean jj_rescan
      • jj_gc

        private int jj_gc
      • jj_expentries

        private java.util.List<int[]> jj_expentries
      • jj_expentry

        private int[] jj_expentry
      • jj_kind

        private int jj_kind
      • jj_lasttokens

        private int[] jj_lasttokens
      • jj_endpos

        private int jj_endpos
    • Constructor Detail

      • ASPCore2Parser

        public ASPCore2Parser​(java.io.InputStream stream)
      • ASPCore2Parser

        public ASPCore2Parser​(java.io.InputStream stream,
                              java.lang.String encoding)
      • ASPCore2Parser

        public ASPCore2Parser​(java.io.Reader stream)
    • Method Detail

      • jj_2_1

        private boolean jj_2_1​(int xla)
      • jj_2_2

        private boolean jj_2_2​(int xla)
      • jj_2_3

        private boolean jj_2_3​(int xla)
      • jj_2_4

        private boolean jj_2_4​(int xla)
      • jj_2_5

        private boolean jj_2_5​(int xla)
      • jj_2_6

        private boolean jj_2_6​(int xla)
      • jj_2_7

        private boolean jj_2_7​(int xla)
      • jj_2_8

        private boolean jj_2_8​(int xla)
      • jj_2_9

        private boolean jj_2_9​(int xla)
      • jj_2_10

        private boolean jj_2_10​(int xla)
      • jj_2_11

        private boolean jj_2_11​(int xla)
      • jj_2_12

        private boolean jj_2_12​(int xla)
      • jj_2_13

        private boolean jj_2_13​(int xla)
      • jj_3R_77

        private boolean jj_3R_77()
      • jj_3R_54

        private boolean jj_3R_54()
      • jj_3_9

        private boolean jj_3_9()
      • jj_3R_20

        private boolean jj_3R_20()
      • jj_3R_93

        private boolean jj_3R_93()
      • jj_3R_78

        private boolean jj_3R_78()
      • jj_3R_27

        private boolean jj_3R_27()
      • jj_3R_59

        private boolean jj_3R_59()
      • jj_3R_91

        private boolean jj_3R_91()
      • jj_3R_64

        private boolean jj_3R_64()
      • jj_3R_73

        private boolean jj_3R_73()
      • jj_3R_41

        private boolean jj_3R_41()
      • jj_3R_16

        private boolean jj_3R_16()
      • jj_3R_37

        private boolean jj_3R_37()
      • jj_3R_62

        private boolean jj_3R_62()
      • jj_3_8

        private boolean jj_3_8()
      • jj_3R_40

        private boolean jj_3R_40()
      • jj_3R_19

        private boolean jj_3R_19()
      • jj_3R_83

        private boolean jj_3R_83()
      • jj_3R_39

        private boolean jj_3R_39()
      • jj_3R_95

        private boolean jj_3R_95()
      • jj_3R_82

        private boolean jj_3R_82()
      • jj_3R_74

        private boolean jj_3R_74()
      • jj_3R_72

        private boolean jj_3R_72()
      • jj_3R_90

        private boolean jj_3R_90()
      • jj_3R_81

        private boolean jj_3R_81()
      • jj_3R_60

        private boolean jj_3R_60()
      • jj_3_7

        private boolean jj_3_7()
      • jj_3R_88

        private boolean jj_3R_88()
      • jj_3R_18

        private boolean jj_3R_18()
      • jj_3R_25

        private boolean jj_3R_25()
      • jj_3R_98

        private boolean jj_3R_98()
      • jj_3R_97

        private boolean jj_3R_97()
      • jj_3R_70

        private boolean jj_3R_70()
      • jj_3R_61

        private boolean jj_3R_61()
      • jj_3_13

        private boolean jj_3_13()
      • jj_3_6

        private boolean jj_3_6()
      • jj_3R_89

        private boolean jj_3R_89()
      • jj_3R_71

        private boolean jj_3R_71()
      • jj_3R_75

        private boolean jj_3R_75()
      • jj_3R_15

        private boolean jj_3R_15()
      • jj_3R_51

        private boolean jj_3R_51()
      • jj_3R_50

        private boolean jj_3R_50()
      • jj_3R_49

        private boolean jj_3R_49()
      • jj_3R_92

        private boolean jj_3R_92()
      • jj_3R_48

        private boolean jj_3R_48()
      • jj_3_12

        private boolean jj_3_12()
      • jj_3R_38

        private boolean jj_3R_38()
      • jj_3R_47

        private boolean jj_3R_47()
      • jj_3R_76

        private boolean jj_3R_76()
      • jj_3_5

        private boolean jj_3_5()
      • jj_3R_46

        private boolean jj_3R_46()
      • jj_3R_24

        private boolean jj_3R_24()
      • jj_3_4

        private boolean jj_3_4()
      • jj_3R_35

        private boolean jj_3R_35()
      • jj_3R_85

        private boolean jj_3R_85()
      • jj_3R_34

        private boolean jj_3R_34()
      • jj_3R_14

        private boolean jj_3R_14()
      • jj_3R_63

        private boolean jj_3R_63()
      • jj_3R_94

        private boolean jj_3R_94()
      • jj_3R_13

        private boolean jj_3R_13()
      • jj_3R_79

        private boolean jj_3R_79()
      • jj_3_3

        private boolean jj_3_3()
      • jj_3R_23

        private boolean jj_3R_23()
      • jj_3R_66

        private boolean jj_3R_66()
      • jj_3R_80

        private boolean jj_3R_80()
      • jj_3R_11

        private boolean jj_3R_11()
      • jj_3R_53

        private boolean jj_3R_53()
      • jj_3R_33

        private boolean jj_3R_33()
      • jj_3R_52

        private boolean jj_3R_52()
      • jj_3R_58

        private boolean jj_3R_58()
      • jj_3R_26

        private boolean jj_3R_26()
      • jj_3R_57

        private boolean jj_3R_57()
      • jj_3R_87

        private boolean jj_3R_87()
      • jj_3R_10

        private boolean jj_3R_10()
      • jj_3R_56

        private boolean jj_3R_56()
      • jj_3R_86

        private boolean jj_3R_86()
      • jj_3R_68

        private boolean jj_3R_68()
      • jj_3R_32

        private boolean jj_3R_32()
      • jj_3R_31

        private boolean jj_3R_31()
      • jj_3R_30

        private boolean jj_3R_30()
      • jj_3R_29

        private boolean jj_3R_29()
      • jj_3R_28

        private boolean jj_3R_28()
      • jj_3R_12

        private boolean jj_3R_12()
      • jj_3R_36

        private boolean jj_3R_36()
      • jj_3R_22

        private boolean jj_3R_22()
      • jj_3R_17

        private boolean jj_3R_17()
      • jj_3_11

        private boolean jj_3_11()
      • jj_3_2

        private boolean jj_3_2()
      • jj_3R_69

        private boolean jj_3R_69()
      • jj_3_1

        private boolean jj_3_1()
      • jj_3R_45

        private boolean jj_3R_45()
      • jj_3_10

        private boolean jj_3_10()
      • jj_3R_44

        private boolean jj_3R_44()
      • jj_3R_21

        private boolean jj_3R_21()
      • jj_3R_65

        private boolean jj_3R_65()
      • jj_3R_67

        private boolean jj_3R_67()
      • jj_3R_96

        private boolean jj_3R_96()
      • jj_3R_84

        private boolean jj_3R_84()
      • jj_3R_42

        private boolean jj_3R_42()
      • jj_3R_43

        private boolean jj_3R_43()
      • jj_3R_55

        private boolean jj_3R_55()
      • jj_la1_init_0

        private static void jj_la1_init_0()
      • jj_la1_init_1

        private static void jj_la1_init_1()
      • ReInit

        public void ReInit​(java.io.InputStream stream)
      • ReInit

        public void ReInit​(java.io.InputStream stream,
                           java.lang.String encoding)
      • ReInit

        public void ReInit​(java.io.Reader stream)
      • jj_scan_token

        private boolean jj_scan_token​(int kind)
      • getNextToken

        public final Token getNextToken()
      • getToken

        public final Token getToken​(int index)
      • jj_ntk

        private int jj_ntk()
      • jj_add_error_token

        private void jj_add_error_token​(int kind,
                                        int pos)
      • generateParseException

        public ParseException generateParseException()
      • enable_tracing

        public final void enable_tracing()
        Enable tracing.
      • disable_tracing

        public final void disable_tracing()
        Disable tracing.
      • jj_rescan_token

        private void jj_rescan_token()
      • jj_save

        private void jj_save​(int index,
                             int xla)