private static function parseTokens()

in src/parser/PhutilTypeSpec.php [389:1923]


  private static function parseTokens(array $tokens, $callback) {
    // NOTE: This is automatically generated by the script
    // `support/parser/generate-type-parser.php`.

    return PhutilParserGenerator::parseTokensWithTables(
      array(
        0 => array(
          'opt' => array(
            0 => 'S',
            1 => 3,
          ),
          'k' => array(
            0 => 'S',
            1 => 20,
          ),
          'map' => array(
            0 => 'S',
            1 => 21,
          ),
          'list' => array(
            0 => 'S',
            1 => 71,
          ),
        ),
        1 => array(
          '(end-of-file)' => array(
            0 => 'A',
          ),
        ),
        2 => array(
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'start',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        3 => array(
          'k' => array(
            0 => 'S',
            1 => 20,
          ),
          'map' => array(
            0 => 'S',
            1 => 21,
          ),
          'list' => array(
            0 => 'S',
            1 => 71,
          ),
        ),
        4 => array(
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'maybe_optional',
              1 => 'yes',
              2 => 2,
            ),
          ),
        ),
        5 => array(
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'maybe_comment',
              1 => 'no',
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'S',
            1 => 7,
          ),
        ),
        6 => array(
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'maybe_comment',
              1 => 'yes',
              2 => 2,
            ),
          ),
        ),
        7 => array(
          'cm' => array(
            0 => 'S',
            1 => 11,
          ),
        ),
        8 => array(
          ')' => array(
            0 => 'S',
            1 => 9,
          ),
          'cm' => array(
            0 => 'S',
            1 => 10,
          ),
        ),
        9 => array(
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'comment',
              1 => 0,
              2 => 3,
            ),
          ),
        ),
        10 => array(
          ')' => array(
            0 => 'R',
            1 => array(
              0 => 'comment_text',
              1 => 0,
              2 => 2,
            ),
          ),
          'cm' => array(
            0 => 'R',
            1 => array(
              0 => 'comment_text',
              1 => 0,
              2 => 2,
            ),
          ),
        ),
        11 => array(
          ')' => array(
            0 => 'R',
            1 => array(
              0 => 'comment_text',
              1 => 1,
              2 => 1,
            ),
          ),
          'cm' => array(
            0 => 'R',
            1 => array(
              0 => 'comment_text',
              1 => 1,
              2 => 1,
            ),
          ),
        ),
        12 => array(
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'no',
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'no',
              2 => 1,
            ),
          ),
          '?' => array(
            0 => 'S',
            1 => 13,
          ),
        ),
        13 => array(
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'yes',
              2 => 2,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'yes',
              2 => 2,
            ),
          ),
        ),
        14 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'S',
            1 => 15,
          ),
        ),
        15 => array(
          'k' => array(
            0 => 'S',
            1 => 20,
          ),
          'map' => array(
            0 => 'S',
            1 => 21,
          ),
          'list' => array(
            0 => 'S',
            1 => 71,
          ),
        ),
        16 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
        ),
        17 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        18 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
        ),
        19 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
        ),
        20 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        21 => array(
          '<' => array(
            0 => 'S',
            1 => 22,
          ),
        ),
        22 => array(
          'k' => array(
            0 => 'S',
            1 => 57,
          ),
          'map' => array(
            0 => 'S',
            1 => 58,
          ),
          'list' => array(
            0 => 'S',
            1 => 67,
          ),
        ),
        23 => array(
          ',' => array(
            0 => 'S',
            1 => 24,
          ),
        ),
        24 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        25 => array(
          '>' => array(
            0 => 'S',
            1 => 26,
          ),
        ),
        26 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
        ),
        27 => array(
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'no',
              2 => 1,
            ),
          ),
          '?' => array(
            0 => 'S',
            1 => 28,
          ),
        ),
        28 => array(
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'yes',
              2 => 2,
            ),
          ),
        ),
        29 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'S',
            1 => 30,
          ),
        ),
        30 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        31 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
        ),
        32 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        33 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
        ),
        34 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
        ),
        35 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        36 => array(
          '<' => array(
            0 => 'S',
            1 => 37,
          ),
        ),
        37 => array(
          'k' => array(
            0 => 'S',
            1 => 57,
          ),
          'map' => array(
            0 => 'S',
            1 => 58,
          ),
          'list' => array(
            0 => 'S',
            1 => 67,
          ),
        ),
        38 => array(
          ',' => array(
            0 => 'S',
            1 => 39,
          ),
        ),
        39 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        40 => array(
          '>' => array(
            0 => 'S',
            1 => 41,
          ),
        ),
        41 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
        ),
        42 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'S',
            1 => 43,
          ),
        ),
        43 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        44 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
        ),
        45 => array(
          '<' => array(
            0 => 'S',
            1 => 46,
          ),
        ),
        46 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        47 => array(
          '>' => array(
            0 => 'S',
            1 => 48,
          ),
        ),
        48 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          '>' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
        ),
        49 => array(
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'no',
              2 => 1,
            ),
          ),
          '?' => array(
            0 => 'S',
            1 => 50,
          ),
        ),
        50 => array(
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'type',
              1 => 'yes',
              2 => 2,
            ),
          ),
        ),
        51 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'S',
            1 => 52,
          ),
        ),
        52 => array(
          'k' => array(
            0 => 'S',
            1 => 57,
          ),
          'map' => array(
            0 => 'S',
            1 => 58,
          ),
          'list' => array(
            0 => 'S',
            1 => 67,
          ),
        ),
        53 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 0,
              2 => 3,
            ),
          ),
        ),
        54 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        55 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 1,
              2 => 1,
            ),
          ),
        ),
        56 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'not_or_type',
              1 => 2,
              2 => 1,
            ),
          ),
        ),
        57 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'basic_type',
              1 => 0,
              2 => 1,
            ),
          ),
        ),
        58 => array(
          '<' => array(
            0 => 'S',
            1 => 59,
          ),
        ),
        59 => array(
          'k' => array(
            0 => 'S',
            1 => 57,
          ),
          'map' => array(
            0 => 'S',
            1 => 58,
          ),
          'list' => array(
            0 => 'S',
            1 => 67,
          ),
        ),
        60 => array(
          ',' => array(
            0 => 'S',
            1 => 61,
          ),
        ),
        61 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        62 => array(
          '>' => array(
            0 => 'S',
            1 => 63,
          ),
        ),
        63 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'map_type',
              1 => 0,
              2 => 6,
            ),
          ),
        ),
        64 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'S',
            1 => 65,
          ),
        ),
        65 => array(
          'k' => array(
            0 => 'S',
            1 => 57,
          ),
          'map' => array(
            0 => 'S',
            1 => 58,
          ),
          'list' => array(
            0 => 'S',
            1 => 67,
          ),
        ),
        66 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
        ),
        67 => array(
          '<' => array(
            0 => 'S',
            1 => 68,
          ),
        ),
        68 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        69 => array(
          '>' => array(
            0 => 'S',
            1 => 70,
          ),
        ),
        70 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          ',' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
        ),
        71 => array(
          '<' => array(
            0 => 'S',
            1 => 72,
          ),
        ),
        72 => array(
          'k' => array(
            0 => 'S',
            1 => 35,
          ),
          'map' => array(
            0 => 'S',
            1 => 36,
          ),
          'list' => array(
            0 => 'S',
            1 => 45,
          ),
        ),
        73 => array(
          '>' => array(
            0 => 'S',
            1 => 74,
          ),
        ),
        74 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'list_type',
              1 => 0,
              2 => 4,
            ),
          ),
        ),
        75 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'some_type',
              1 => 1,
              2 => 1,
            ),
          ),
          '|' => array(
            0 => 'S',
            1 => 76,
          ),
        ),
        76 => array(
          'k' => array(
            0 => 'S',
            1 => 20,
          ),
          'map' => array(
            0 => 'S',
            1 => 21,
          ),
          'list' => array(
            0 => 'S',
            1 => 71,
          ),
        ),
        77 => array(
          '?' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          '(' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
          '|' => array(
            0 => 'R',
            1 => array(
              0 => 'or_type',
              1 => 1,
              2 => 3,
            ),
          ),
        ),
        78 => array(
          '(end-of-file)' => array(
            0 => 'R',
            1 => array(
              0 => 'maybe_optional',
              1 => 'no',
              2 => 1,
            ),
          ),
        ),
      ),
      array(
        0 => array(
          'start' => 1,
          'maybe_optional' => 2,
          'maybe_comment' => 78,
          'type' => 5,
          'some_type' => 12,
          'or_type' => 14,
          'not_or_type' => 75,
          'basic_type' => 17,
          'map_type' => 18,
          'list_type' => 19,
        ),
        3 => array(
          'maybe_comment' => 4,
          'type' => 5,
          'some_type' => 12,
          'or_type' => 14,
          'not_or_type' => 75,
          'basic_type' => 17,
          'map_type' => 18,
          'list_type' => 19,
        ),
        5 => array(
          'comment' => 6,
        ),
        7 => array(
          'comment_text' => 8,
        ),
        15 => array(
          'not_or_type' => 16,
          'basic_type' => 17,
          'map_type' => 18,
          'list_type' => 19,
        ),
        22 => array(
          'type' => 23,
          'some_type' => 49,
          'or_type' => 51,
          'not_or_type' => 64,
          'basic_type' => 54,
          'map_type' => 55,
          'list_type' => 56,
        ),
        24 => array(
          'type' => 25,
          'some_type' => 27,
          'or_type' => 29,
          'not_or_type' => 42,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        30 => array(
          'not_or_type' => 31,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        37 => array(
          'type' => 38,
          'some_type' => 49,
          'or_type' => 51,
          'not_or_type' => 64,
          'basic_type' => 54,
          'map_type' => 55,
          'list_type' => 56,
        ),
        39 => array(
          'type' => 40,
          'some_type' => 27,
          'or_type' => 29,
          'not_or_type' => 42,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        43 => array(
          'not_or_type' => 44,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        46 => array(
          'type' => 47,
          'some_type' => 27,
          'or_type' => 29,
          'not_or_type' => 42,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        52 => array(
          'not_or_type' => 53,
          'basic_type' => 54,
          'map_type' => 55,
          'list_type' => 56,
        ),
        59 => array(
          'type' => 60,
          'some_type' => 49,
          'or_type' => 51,
          'not_or_type' => 64,
          'basic_type' => 54,
          'map_type' => 55,
          'list_type' => 56,
        ),
        61 => array(
          'type' => 62,
          'some_type' => 27,
          'or_type' => 29,
          'not_or_type' => 42,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        65 => array(
          'not_or_type' => 66,
          'basic_type' => 54,
          'map_type' => 55,
          'list_type' => 56,
        ),
        68 => array(
          'type' => 69,
          'some_type' => 27,
          'or_type' => 29,
          'not_or_type' => 42,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        72 => array(
          'type' => 73,
          'some_type' => 27,
          'or_type' => 29,
          'not_or_type' => 42,
          'basic_type' => 32,
          'map_type' => 33,
          'list_type' => 34,
        ),
        76 => array(
          'not_or_type' => 77,
          'basic_type' => 17,
          'map_type' => 18,
          'list_type' => 19,
        ),
      ),
      '(end-of-file)',
      $tokens,
      $callback);
  }