# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = "3.10"

_lr_method = "LALR"

_lr_signature = "ANGLEBRACKETL ANGLEBRACKETR COMMA EQ FLOAT INTEGER PLUS SQBRACKETL SQBRACKETR WORD\n        super_oracle : WORD ANGLEBRACKETL oracle-list ANGLEBRACKETR\n                     | WORD ANGLEBRACKETL oracle-list ANGLEBRACKETR SQBRACKETL params-list SQBRACKETR\n                     | oracle\n        \n        oracle : WORD\n               | WORD SQBRACKETL params-list SQBRACKETR\n               | WORD PLUS plugins-list\n               | WORD SQBRACKETL params-list SQBRACKETR PLUS plugins-list\n        \n        plugin : WORD\n               | WORD SQBRACKETL params-list SQBRACKETR\n        \n        plugins-list : plugin\n                     | plugins-list PLUS plugin\n        \n        oracle-list : oracle\n                    | oracle-list COMMA oracle\n        \n        value : INTEGER\n              | FLOAT\n              | WORD\n        param : WORD EQ value\n        params-list : param\n                    | params-list COMMA param\n        "

_lr_action_items = {
    "WORD": (
        [
            0,
            4,
            5,
            6,
            17,
            18,
            20,
            21,
            22,
            23,
            29,
        ],
        [
            2,
            7,
            10,
            13,
            7,
            25,
            10,
            10,
            13,
            10,
            13,
        ],
    ),
    "$end": (
        [
            1,
            2,
            3,
            13,
            14,
            15,
            16,
            19,
            32,
            34,
            35,
            36,
        ],
        [
            0,
            -4,
            -3,
            -8,
            -6,
            -10,
            -1,
            -5,
            -11,
            -7,
            -9,
            -2,
        ],
    ),
    "ANGLEBRACKETL": (
        [
            2,
        ],
        [
            4,
        ],
    ),
    "SQBRACKETL": (
        [
            2,
            7,
            13,
            16,
        ],
        [
            5,
            5,
            21,
            23,
        ],
    ),
    "PLUS": (
        [
            2,
            7,
            13,
            14,
            15,
            19,
            32,
            34,
            35,
        ],
        [
            6,
            6,
            -8,
            22,
            -10,
            29,
            -11,
            22,
            -9,
        ],
    ),
    "ANGLEBRACKETR": (
        [
            7,
            8,
            9,
            13,
            14,
            15,
            19,
            24,
            32,
            34,
            35,
        ],
        [
            -4,
            16,
            -12,
            -8,
            -6,
            -10,
            -5,
            -13,
            -11,
            -7,
            -9,
        ],
    ),
    "COMMA": (
        [
            7,
            8,
            9,
            11,
            12,
            13,
            14,
            15,
            19,
            24,
            25,
            26,
            27,
            28,
            30,
            31,
            32,
            33,
            34,
            35,
        ],
        [
            -4,
            17,
            -12,
            20,
            -18,
            -8,
            -6,
            -10,
            -5,
            -13,
            -16,
            -17,
            -14,
            -15,
            -19,
            20,
            -11,
            20,
            -7,
            -9,
        ],
    ),
    "EQ": (
        [
            10,
        ],
        [
            18,
        ],
    ),
    "SQBRACKETR": (
        [
            11,
            12,
            25,
            26,
            27,
            28,
            30,
            31,
            33,
        ],
        [
            19,
            -18,
            -16,
            -17,
            -14,
            -15,
            -19,
            35,
            36,
        ],
    ),
    "INTEGER": (
        [
            18,
        ],
        [
            27,
        ],
    ),
    "FLOAT": (
        [
            18,
        ],
        [
            28,
        ],
    ),
}

_lr_action = {}
for _k, _v in _lr_action_items.items():
    for _x, _y in zip(_v[0], _v[1]):
        if not _x in _lr_action:
            _lr_action[_x] = {}
        _lr_action[_x][_k] = _y
del _lr_action_items

_lr_goto_items = {
    "super_oracle": (
        [
            0,
        ],
        [
            1,
        ],
    ),
    "oracle": (
        [
            0,
            4,
            17,
        ],
        [
            3,
            9,
            24,
        ],
    ),
    "oracle-list": (
        [
            4,
        ],
        [
            8,
        ],
    ),
    "params-list": (
        [
            5,
            21,
            23,
        ],
        [
            11,
            31,
            33,
        ],
    ),
    "param": (
        [
            5,
            20,
            21,
            23,
        ],
        [
            12,
            30,
            12,
            12,
        ],
    ),
    "plugins-list": (
        [
            6,
            29,
        ],
        [
            14,
            34,
        ],
    ),
    "plugin": (
        [
            6,
            22,
            29,
        ],
        [
            15,
            32,
            15,
        ],
    ),
    "value": (
        [
            18,
        ],
        [
            26,
        ],
    ),
}

_lr_goto = {}
for _k, _v in _lr_goto_items.items():
    for _x, _y in zip(_v[0], _v[1]):
        if not _x in _lr_goto:
            _lr_goto[_x] = {}
        _lr_goto[_x][_k] = _y
del _lr_goto_items
_lr_productions = [
    ("S' -> super_oracle", "S'", 1, None, None, None),
    (
        "super_oracle -> WORD ANGLEBRACKETL oracle-list ANGLEBRACKETR",
        "super_oracle",
        4,
        "p_super_oracle",
        "parser.py",
        78,
    ),
    (
        "super_oracle -> WORD ANGLEBRACKETL oracle-list ANGLEBRACKETR SQBRACKETL params-list SQBRACKETR",
        "super_oracle",
        7,
        "p_super_oracle",
        "parser.py",
        79,
    ),
    (
        "super_oracle -> oracle",
        "super_oracle",
        1,
        "p_super_oracle",
        "parser.py",
        80,
    ),
    ("oracle -> WORD", "oracle", 1, "p_oracle", "parser.py", 97),
    (
        "oracle -> WORD SQBRACKETL params-list SQBRACKETR",
        "oracle",
        4,
        "p_oracle",
        "parser.py",
        98,
    ),
    (
        "oracle -> WORD PLUS plugins-list",
        "oracle",
        3,
        "p_oracle",
        "parser.py",
        99,
    ),
    (
        "oracle -> WORD SQBRACKETL params-list SQBRACKETR PLUS plugins-list",
        "oracle",
        6,
        "p_oracle",
        "parser.py",
        100,
    ),
    ("plugin -> WORD", "plugin", 1, "p_plugin", "parser.py", 114),
    (
        "plugin -> WORD SQBRACKETL params-list SQBRACKETR",
        "plugin",
        4,
        "p_plugin",
        "parser.py",
        115,
    ),
    (
        "plugins-list -> plugin",
        "plugins-list",
        1,
        "p_plugins_list",
        "parser.py",
        125,
    ),
    (
        "plugins-list -> plugins-list PLUS plugin",
        "plugins-list",
        3,
        "p_plugins_list",
        "parser.py",
        126,
    ),
    (
        "oracle-list -> oracle",
        "oracle-list",
        1,
        "p_oracle_list",
        "parser.py",
        134,
    ),
    (
        "oracle-list -> oracle-list COMMA oracle",
        "oracle-list",
        3,
        "p_oracle_list",
        "parser.py",
        135,
    ),
    ("value -> INTEGER", "value", 1, "p_value", "parser.py", 157),
    ("value -> FLOAT", "value", 1, "p_value", "parser.py", 158),
    ("value -> WORD", "value", 1, "p_value", "parser.py", 159),
    (
        "param -> WORD EQ value",
        "param",
        3,
        "p_param",
        "parser.py",
        165,
    ),
    (
        "params-list -> param",
        "params-list",
        1,
        "p_params_list",
        "parser.py",
        171,
    ),
    (
        "params-list -> params-list COMMA param",
        "params-list",
        3,
        "p_params_list",
        "parser.py",
        172,
    ),
]
