diff --git a/mongodb/MongoShellLexer.g4 b/mongodb/MongoShellLexer.g4 index f0e85ed..0605bef 100644 --- a/mongodb/MongoShellLexer.g4 +++ b/mongodb/MongoShellLexer.g4 @@ -17,6 +17,7 @@ FALSE: 'false'; NULL: 'null'; GET_COLLECTION: 'getCollection'; GET_COLLECTION_NAMES: 'getCollectionNames'; +GET_COLLECTION_INFOS: 'getCollectionInfos'; // Helper function names (recognized as distinct tokens) OBJECT_ID: 'ObjectId'; diff --git a/mongodb/MongoShellParser.g4 b/mongodb/MongoShellParser.g4 index 40b9fab..4906d45 100644 --- a/mongodb/MongoShellParser.g4 +++ b/mongodb/MongoShellParser.g4 @@ -32,10 +32,11 @@ shellCommand | SHOW COLLECTIONS # showCollections ; -// Database statements: db.collection.method(...) or db.getCollectionNames() +// Database statements: db.collection.method(...) or db.getCollectionNames() or db.getCollectionInfos() dbStatement - : DB DOT GET_COLLECTION_NAMES LPAREN RPAREN methodChain? # getCollectionNames - | DB collectionAccess methodChain # collectionOperation + : DB DOT GET_COLLECTION_NAMES LPAREN RPAREN methodChain? # getCollectionNames + | DB DOT GET_COLLECTION_INFOS LPAREN arguments? RPAREN methodChain? # getCollectionInfos + | DB collectionAccess methodChain # collectionOperation ; // Collection access patterns @@ -239,6 +240,7 @@ identifier | PROJECT | GET_COLLECTION | GET_COLLECTION_NAMES + | GET_COLLECTION_INFOS | OBJECT_ID | ISO_DATE | DATE diff --git a/mongodb/mongoshell_lexer.go b/mongodb/mongoshell_lexer.go index 23bd376..89c6c61 100644 --- a/mongodb/mongoshell_lexer.go +++ b/mongodb/mongoshell_lexer.go @@ -45,38 +45,38 @@ func mongoshelllexerLexerInit() { staticData.LiteralNames = []string{ "", "'show'", "'dbs'", "'databases'", "'collections'", "'db'", "'new'", "'true'", "'false'", "'null'", "'getCollection'", "'getCollectionNames'", - "'ObjectId'", "'ISODate'", "'Date'", "'UUID'", "'Long'", "'NumberLong'", - "'Int32'", "'NumberInt'", "'Double'", "'Decimal128'", "'NumberDecimal'", - "'Timestamp'", "'RegExp'", "'find'", "'findOne'", "'sort'", "'limit'", - "'skip'", "'projection'", "'project'", "'('", "')'", "'{'", "'}'", "'['", - "']'", "':'", "','", "'.'", "';'", "'$'", + "'getCollectionInfos'", "'ObjectId'", "'ISODate'", "'Date'", "'UUID'", + "'Long'", "'NumberLong'", "'Int32'", "'NumberInt'", "'Double'", "'Decimal128'", + "'NumberDecimal'", "'Timestamp'", "'RegExp'", "'find'", "'findOne'", + "'sort'", "'limit'", "'skip'", "'projection'", "'project'", "'('", "')'", + "'{'", "'}'", "'['", "']'", "':'", "','", "'.'", "';'", "'$'", } staticData.SymbolicNames = []string{ "", "SHOW", "DBS", "DATABASES", "COLLECTIONS", "DB", "NEW", "TRUE", - "FALSE", "NULL", "GET_COLLECTION", "GET_COLLECTION_NAMES", "OBJECT_ID", - "ISO_DATE", "DATE", "UUID", "LONG", "NUMBER_LONG", "INT32", "NUMBER_INT", - "DOUBLE", "DECIMAL128", "NUMBER_DECIMAL", "TIMESTAMP", "REG_EXP", "FIND", - "FIND_ONE", "SORT", "LIMIT", "SKIP_", "PROJECTION", "PROJECT", "LPAREN", - "RPAREN", "LBRACE", "RBRACE", "LBRACKET", "RBRACKET", "COLON", "COMMA", - "DOT", "SEMI", "DOLLAR", "LINE_COMMENT", "BLOCK_COMMENT", "REGEX_LITERAL", - "NUMBER", "DOUBLE_QUOTED_STRING", "SINGLE_QUOTED_STRING", "IDENTIFIER", - "WS", + "FALSE", "NULL", "GET_COLLECTION", "GET_COLLECTION_NAMES", "GET_COLLECTION_INFOS", + "OBJECT_ID", "ISO_DATE", "DATE", "UUID", "LONG", "NUMBER_LONG", "INT32", + "NUMBER_INT", "DOUBLE", "DECIMAL128", "NUMBER_DECIMAL", "TIMESTAMP", + "REG_EXP", "FIND", "FIND_ONE", "SORT", "LIMIT", "SKIP_", "PROJECTION", + "PROJECT", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACKET", "RBRACKET", + "COLON", "COMMA", "DOT", "SEMI", "DOLLAR", "LINE_COMMENT", "BLOCK_COMMENT", + "REGEX_LITERAL", "NUMBER", "DOUBLE_QUOTED_STRING", "SINGLE_QUOTED_STRING", + "IDENTIFIER", "WS", } staticData.RuleNames = []string{ "SHOW", "DBS", "DATABASES", "COLLECTIONS", "DB", "NEW", "TRUE", "FALSE", - "NULL", "GET_COLLECTION", "GET_COLLECTION_NAMES", "OBJECT_ID", "ISO_DATE", - "DATE", "UUID", "LONG", "NUMBER_LONG", "INT32", "NUMBER_INT", "DOUBLE", - "DECIMAL128", "NUMBER_DECIMAL", "TIMESTAMP", "REG_EXP", "FIND", "FIND_ONE", - "SORT", "LIMIT", "SKIP_", "PROJECTION", "PROJECT", "LPAREN", "RPAREN", - "LBRACE", "RBRACE", "LBRACKET", "RBRACKET", "COLON", "COMMA", "DOT", - "SEMI", "DOLLAR", "LINE_COMMENT", "BLOCK_COMMENT", "REGEX_LITERAL", - "REGEX_BODY", "REGEX_CHAR", "REGEX_FLAGS", "NUMBER", "INT", "EXPONENT", - "DOUBLE_QUOTED_STRING", "SINGLE_QUOTED_STRING", "ESC", "UNICODE", "HEX", - "IDENTIFIER", "WS", + "NULL", "GET_COLLECTION", "GET_COLLECTION_NAMES", "GET_COLLECTION_INFOS", + "OBJECT_ID", "ISO_DATE", "DATE", "UUID", "LONG", "NUMBER_LONG", "INT32", + "NUMBER_INT", "DOUBLE", "DECIMAL128", "NUMBER_DECIMAL", "TIMESTAMP", + "REG_EXP", "FIND", "FIND_ONE", "SORT", "LIMIT", "SKIP_", "PROJECTION", + "PROJECT", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACKET", "RBRACKET", + "COLON", "COMMA", "DOT", "SEMI", "DOLLAR", "LINE_COMMENT", "BLOCK_COMMENT", + "REGEX_LITERAL", "REGEX_BODY", "REGEX_CHAR", "REGEX_FLAGS", "NUMBER", + "INT", "EXPONENT", "DOUBLE_QUOTED_STRING", "SINGLE_QUOTED_STRING", "ESC", + "UNICODE", "HEX", "IDENTIFIER", "WS", } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 0, 50, 524, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, + 4, 0, 51, 545, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, @@ -87,230 +87,239 @@ func mongoshelllexerLexerInit() { 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, - 7, 57, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, - 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 5, - 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, - 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, - 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, + 7, 57, 2, 58, 7, 58, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, + 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, + 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, + 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, - 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, - 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, - 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, - 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, - 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, - 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, - 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, - 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, - 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, - 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, - 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, - 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, - 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, - 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, - 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, - 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, - 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, - 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, - 387, 8, 42, 10, 42, 12, 42, 390, 9, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, - 43, 1, 43, 5, 43, 398, 8, 43, 10, 43, 12, 43, 401, 9, 43, 1, 43, 1, 43, - 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 412, 8, 44, 1, - 45, 4, 45, 415, 8, 45, 11, 45, 12, 45, 416, 1, 46, 1, 46, 1, 46, 3, 46, - 422, 8, 46, 1, 47, 4, 47, 425, 8, 47, 11, 47, 12, 47, 426, 1, 48, 3, 48, - 430, 8, 48, 1, 48, 1, 48, 1, 48, 4, 48, 435, 8, 48, 11, 48, 12, 48, 436, - 3, 48, 439, 8, 48, 1, 48, 3, 48, 442, 8, 48, 1, 48, 3, 48, 445, 8, 48, - 1, 48, 1, 48, 4, 48, 449, 8, 48, 11, 48, 12, 48, 450, 1, 48, 3, 48, 454, - 8, 48, 3, 48, 456, 8, 48, 1, 49, 1, 49, 1, 49, 5, 49, 461, 8, 49, 10, 49, - 12, 49, 464, 9, 49, 3, 49, 466, 8, 49, 1, 50, 1, 50, 3, 50, 470, 8, 50, - 1, 50, 4, 50, 473, 8, 50, 11, 50, 12, 50, 474, 1, 51, 1, 51, 1, 51, 5, - 51, 480, 8, 51, 10, 51, 12, 51, 483, 9, 51, 1, 51, 1, 51, 1, 52, 1, 52, - 1, 52, 5, 52, 490, 8, 52, 10, 52, 12, 52, 493, 9, 52, 1, 52, 1, 52, 1, - 53, 1, 53, 1, 53, 1, 53, 3, 53, 501, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, - 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 5, 56, 513, 8, 56, 10, 56, 12, - 56, 516, 9, 56, 1, 57, 4, 57, 519, 8, 57, 11, 57, 12, 57, 520, 1, 57, 1, - 57, 1, 399, 0, 58, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, + 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, + 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, + 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, + 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, + 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, + 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, + 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, + 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, + 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, + 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, + 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, + 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, + 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, + 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, + 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, + 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, + 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, + 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, + 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, + 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43, + 408, 8, 43, 10, 43, 12, 43, 411, 9, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, + 44, 1, 44, 5, 44, 419, 8, 44, 10, 44, 12, 44, 422, 9, 44, 1, 44, 1, 44, + 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 433, 8, 45, 1, + 46, 4, 46, 436, 8, 46, 11, 46, 12, 46, 437, 1, 47, 1, 47, 1, 47, 3, 47, + 443, 8, 47, 1, 48, 4, 48, 446, 8, 48, 11, 48, 12, 48, 447, 1, 49, 3, 49, + 451, 8, 49, 1, 49, 1, 49, 1, 49, 4, 49, 456, 8, 49, 11, 49, 12, 49, 457, + 3, 49, 460, 8, 49, 1, 49, 3, 49, 463, 8, 49, 1, 49, 3, 49, 466, 8, 49, + 1, 49, 1, 49, 4, 49, 470, 8, 49, 11, 49, 12, 49, 471, 1, 49, 3, 49, 475, + 8, 49, 3, 49, 477, 8, 49, 1, 50, 1, 50, 1, 50, 5, 50, 482, 8, 50, 10, 50, + 12, 50, 485, 9, 50, 3, 50, 487, 8, 50, 1, 51, 1, 51, 3, 51, 491, 8, 51, + 1, 51, 4, 51, 494, 8, 51, 11, 51, 12, 51, 495, 1, 52, 1, 52, 1, 52, 5, + 52, 501, 8, 52, 10, 52, 12, 52, 504, 9, 52, 1, 52, 1, 52, 1, 53, 1, 53, + 1, 53, 5, 53, 511, 8, 53, 10, 53, 12, 53, 514, 9, 53, 1, 53, 1, 53, 1, + 54, 1, 54, 1, 54, 1, 54, 3, 54, 522, 8, 54, 1, 55, 1, 55, 1, 55, 1, 55, + 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 5, 57, 534, 8, 57, 10, 57, 12, + 57, 537, 9, 57, 1, 58, 4, 58, 540, 8, 58, 11, 58, 12, 58, 541, 1, 58, 1, + 58, 1, 420, 0, 59, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, - 45, 91, 0, 93, 0, 95, 0, 97, 46, 99, 0, 101, 0, 103, 47, 105, 48, 107, - 0, 109, 0, 111, 0, 113, 49, 115, 50, 1, 0, 14, 2, 0, 10, 10, 13, 13, 4, - 0, 10, 10, 13, 13, 47, 47, 92, 92, 6, 0, 103, 103, 105, 105, 109, 109, - 115, 115, 117, 117, 121, 121, 1, 0, 48, 57, 1, 0, 49, 57, 2, 0, 69, 69, - 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, - 92, 8, 0, 34, 34, 47, 47, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, - 116, 116, 3, 0, 48, 57, 65, 70, 97, 102, 4, 0, 36, 36, 65, 90, 95, 95, - 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 3, 0, 9, 10, 13, - 13, 32, 32, 541, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, - 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, - 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, - 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, - 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, - 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, - 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, - 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, - 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, - 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, - 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, - 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, - 97, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 113, 1, 0, 0, - 0, 0, 115, 1, 0, 0, 0, 1, 117, 1, 0, 0, 0, 3, 122, 1, 0, 0, 0, 5, 126, - 1, 0, 0, 0, 7, 136, 1, 0, 0, 0, 9, 148, 1, 0, 0, 0, 11, 151, 1, 0, 0, 0, - 13, 155, 1, 0, 0, 0, 15, 160, 1, 0, 0, 0, 17, 166, 1, 0, 0, 0, 19, 171, - 1, 0, 0, 0, 21, 185, 1, 0, 0, 0, 23, 204, 1, 0, 0, 0, 25, 213, 1, 0, 0, - 0, 27, 221, 1, 0, 0, 0, 29, 226, 1, 0, 0, 0, 31, 231, 1, 0, 0, 0, 33, 236, - 1, 0, 0, 0, 35, 247, 1, 0, 0, 0, 37, 253, 1, 0, 0, 0, 39, 263, 1, 0, 0, - 0, 41, 270, 1, 0, 0, 0, 43, 281, 1, 0, 0, 0, 45, 295, 1, 0, 0, 0, 47, 305, - 1, 0, 0, 0, 49, 312, 1, 0, 0, 0, 51, 317, 1, 0, 0, 0, 53, 325, 1, 0, 0, - 0, 55, 330, 1, 0, 0, 0, 57, 336, 1, 0, 0, 0, 59, 341, 1, 0, 0, 0, 61, 352, - 1, 0, 0, 0, 63, 360, 1, 0, 0, 0, 65, 362, 1, 0, 0, 0, 67, 364, 1, 0, 0, - 0, 69, 366, 1, 0, 0, 0, 71, 368, 1, 0, 0, 0, 73, 370, 1, 0, 0, 0, 75, 372, - 1, 0, 0, 0, 77, 374, 1, 0, 0, 0, 79, 376, 1, 0, 0, 0, 81, 378, 1, 0, 0, - 0, 83, 380, 1, 0, 0, 0, 85, 382, 1, 0, 0, 0, 87, 393, 1, 0, 0, 0, 89, 407, - 1, 0, 0, 0, 91, 414, 1, 0, 0, 0, 93, 421, 1, 0, 0, 0, 95, 424, 1, 0, 0, - 0, 97, 455, 1, 0, 0, 0, 99, 465, 1, 0, 0, 0, 101, 467, 1, 0, 0, 0, 103, - 476, 1, 0, 0, 0, 105, 486, 1, 0, 0, 0, 107, 496, 1, 0, 0, 0, 109, 502, - 1, 0, 0, 0, 111, 508, 1, 0, 0, 0, 113, 510, 1, 0, 0, 0, 115, 518, 1, 0, - 0, 0, 117, 118, 5, 115, 0, 0, 118, 119, 5, 104, 0, 0, 119, 120, 5, 111, - 0, 0, 120, 121, 5, 119, 0, 0, 121, 2, 1, 0, 0, 0, 122, 123, 5, 100, 0, - 0, 123, 124, 5, 98, 0, 0, 124, 125, 5, 115, 0, 0, 125, 4, 1, 0, 0, 0, 126, - 127, 5, 100, 0, 0, 127, 128, 5, 97, 0, 0, 128, 129, 5, 116, 0, 0, 129, - 130, 5, 97, 0, 0, 130, 131, 5, 98, 0, 0, 131, 132, 5, 97, 0, 0, 132, 133, - 5, 115, 0, 0, 133, 134, 5, 101, 0, 0, 134, 135, 5, 115, 0, 0, 135, 6, 1, - 0, 0, 0, 136, 137, 5, 99, 0, 0, 137, 138, 5, 111, 0, 0, 138, 139, 5, 108, - 0, 0, 139, 140, 5, 108, 0, 0, 140, 141, 5, 101, 0, 0, 141, 142, 5, 99, - 0, 0, 142, 143, 5, 116, 0, 0, 143, 144, 5, 105, 0, 0, 144, 145, 5, 111, - 0, 0, 145, 146, 5, 110, 0, 0, 146, 147, 5, 115, 0, 0, 147, 8, 1, 0, 0, - 0, 148, 149, 5, 100, 0, 0, 149, 150, 5, 98, 0, 0, 150, 10, 1, 0, 0, 0, - 151, 152, 5, 110, 0, 0, 152, 153, 5, 101, 0, 0, 153, 154, 5, 119, 0, 0, - 154, 12, 1, 0, 0, 0, 155, 156, 5, 116, 0, 0, 156, 157, 5, 114, 0, 0, 157, - 158, 5, 117, 0, 0, 158, 159, 5, 101, 0, 0, 159, 14, 1, 0, 0, 0, 160, 161, - 5, 102, 0, 0, 161, 162, 5, 97, 0, 0, 162, 163, 5, 108, 0, 0, 163, 164, - 5, 115, 0, 0, 164, 165, 5, 101, 0, 0, 165, 16, 1, 0, 0, 0, 166, 167, 5, - 110, 0, 0, 167, 168, 5, 117, 0, 0, 168, 169, 5, 108, 0, 0, 169, 170, 5, - 108, 0, 0, 170, 18, 1, 0, 0, 0, 171, 172, 5, 103, 0, 0, 172, 173, 5, 101, - 0, 0, 173, 174, 5, 116, 0, 0, 174, 175, 5, 67, 0, 0, 175, 176, 5, 111, - 0, 0, 176, 177, 5, 108, 0, 0, 177, 178, 5, 108, 0, 0, 178, 179, 5, 101, - 0, 0, 179, 180, 5, 99, 0, 0, 180, 181, 5, 116, 0, 0, 181, 182, 5, 105, - 0, 0, 182, 183, 5, 111, 0, 0, 183, 184, 5, 110, 0, 0, 184, 20, 1, 0, 0, - 0, 185, 186, 5, 103, 0, 0, 186, 187, 5, 101, 0, 0, 187, 188, 5, 116, 0, - 0, 188, 189, 5, 67, 0, 0, 189, 190, 5, 111, 0, 0, 190, 191, 5, 108, 0, - 0, 191, 192, 5, 108, 0, 0, 192, 193, 5, 101, 0, 0, 193, 194, 5, 99, 0, - 0, 194, 195, 5, 116, 0, 0, 195, 196, 5, 105, 0, 0, 196, 197, 5, 111, 0, - 0, 197, 198, 5, 110, 0, 0, 198, 199, 5, 78, 0, 0, 199, 200, 5, 97, 0, 0, - 200, 201, 5, 109, 0, 0, 201, 202, 5, 101, 0, 0, 202, 203, 5, 115, 0, 0, - 203, 22, 1, 0, 0, 0, 204, 205, 5, 79, 0, 0, 205, 206, 5, 98, 0, 0, 206, - 207, 5, 106, 0, 0, 207, 208, 5, 101, 0, 0, 208, 209, 5, 99, 0, 0, 209, - 210, 5, 116, 0, 0, 210, 211, 5, 73, 0, 0, 211, 212, 5, 100, 0, 0, 212, - 24, 1, 0, 0, 0, 213, 214, 5, 73, 0, 0, 214, 215, 5, 83, 0, 0, 215, 216, - 5, 79, 0, 0, 216, 217, 5, 68, 0, 0, 217, 218, 5, 97, 0, 0, 218, 219, 5, - 116, 0, 0, 219, 220, 5, 101, 0, 0, 220, 26, 1, 0, 0, 0, 221, 222, 5, 68, - 0, 0, 222, 223, 5, 97, 0, 0, 223, 224, 5, 116, 0, 0, 224, 225, 5, 101, - 0, 0, 225, 28, 1, 0, 0, 0, 226, 227, 5, 85, 0, 0, 227, 228, 5, 85, 0, 0, - 228, 229, 5, 73, 0, 0, 229, 230, 5, 68, 0, 0, 230, 30, 1, 0, 0, 0, 231, - 232, 5, 76, 0, 0, 232, 233, 5, 111, 0, 0, 233, 234, 5, 110, 0, 0, 234, - 235, 5, 103, 0, 0, 235, 32, 1, 0, 0, 0, 236, 237, 5, 78, 0, 0, 237, 238, - 5, 117, 0, 0, 238, 239, 5, 109, 0, 0, 239, 240, 5, 98, 0, 0, 240, 241, - 5, 101, 0, 0, 241, 242, 5, 114, 0, 0, 242, 243, 5, 76, 0, 0, 243, 244, - 5, 111, 0, 0, 244, 245, 5, 110, 0, 0, 245, 246, 5, 103, 0, 0, 246, 34, - 1, 0, 0, 0, 247, 248, 5, 73, 0, 0, 248, 249, 5, 110, 0, 0, 249, 250, 5, - 116, 0, 0, 250, 251, 5, 51, 0, 0, 251, 252, 5, 50, 0, 0, 252, 36, 1, 0, - 0, 0, 253, 254, 5, 78, 0, 0, 254, 255, 5, 117, 0, 0, 255, 256, 5, 109, - 0, 0, 256, 257, 5, 98, 0, 0, 257, 258, 5, 101, 0, 0, 258, 259, 5, 114, - 0, 0, 259, 260, 5, 73, 0, 0, 260, 261, 5, 110, 0, 0, 261, 262, 5, 116, - 0, 0, 262, 38, 1, 0, 0, 0, 263, 264, 5, 68, 0, 0, 264, 265, 5, 111, 0, - 0, 265, 266, 5, 117, 0, 0, 266, 267, 5, 98, 0, 0, 267, 268, 5, 108, 0, - 0, 268, 269, 5, 101, 0, 0, 269, 40, 1, 0, 0, 0, 270, 271, 5, 68, 0, 0, - 271, 272, 5, 101, 0, 0, 272, 273, 5, 99, 0, 0, 273, 274, 5, 105, 0, 0, - 274, 275, 5, 109, 0, 0, 275, 276, 5, 97, 0, 0, 276, 277, 5, 108, 0, 0, - 277, 278, 5, 49, 0, 0, 278, 279, 5, 50, 0, 0, 279, 280, 5, 56, 0, 0, 280, - 42, 1, 0, 0, 0, 281, 282, 5, 78, 0, 0, 282, 283, 5, 117, 0, 0, 283, 284, - 5, 109, 0, 0, 284, 285, 5, 98, 0, 0, 285, 286, 5, 101, 0, 0, 286, 287, - 5, 114, 0, 0, 287, 288, 5, 68, 0, 0, 288, 289, 5, 101, 0, 0, 289, 290, - 5, 99, 0, 0, 290, 291, 5, 105, 0, 0, 291, 292, 5, 109, 0, 0, 292, 293, - 5, 97, 0, 0, 293, 294, 5, 108, 0, 0, 294, 44, 1, 0, 0, 0, 295, 296, 5, - 84, 0, 0, 296, 297, 5, 105, 0, 0, 297, 298, 5, 109, 0, 0, 298, 299, 5, - 101, 0, 0, 299, 300, 5, 115, 0, 0, 300, 301, 5, 116, 0, 0, 301, 302, 5, - 97, 0, 0, 302, 303, 5, 109, 0, 0, 303, 304, 5, 112, 0, 0, 304, 46, 1, 0, - 0, 0, 305, 306, 5, 82, 0, 0, 306, 307, 5, 101, 0, 0, 307, 308, 5, 103, - 0, 0, 308, 309, 5, 69, 0, 0, 309, 310, 5, 120, 0, 0, 310, 311, 5, 112, - 0, 0, 311, 48, 1, 0, 0, 0, 312, 313, 5, 102, 0, 0, 313, 314, 5, 105, 0, - 0, 314, 315, 5, 110, 0, 0, 315, 316, 5, 100, 0, 0, 316, 50, 1, 0, 0, 0, - 317, 318, 5, 102, 0, 0, 318, 319, 5, 105, 0, 0, 319, 320, 5, 110, 0, 0, - 320, 321, 5, 100, 0, 0, 321, 322, 5, 79, 0, 0, 322, 323, 5, 110, 0, 0, - 323, 324, 5, 101, 0, 0, 324, 52, 1, 0, 0, 0, 325, 326, 5, 115, 0, 0, 326, - 327, 5, 111, 0, 0, 327, 328, 5, 114, 0, 0, 328, 329, 5, 116, 0, 0, 329, - 54, 1, 0, 0, 0, 330, 331, 5, 108, 0, 0, 331, 332, 5, 105, 0, 0, 332, 333, - 5, 109, 0, 0, 333, 334, 5, 105, 0, 0, 334, 335, 5, 116, 0, 0, 335, 56, - 1, 0, 0, 0, 336, 337, 5, 115, 0, 0, 337, 338, 5, 107, 0, 0, 338, 339, 5, - 105, 0, 0, 339, 340, 5, 112, 0, 0, 340, 58, 1, 0, 0, 0, 341, 342, 5, 112, - 0, 0, 342, 343, 5, 114, 0, 0, 343, 344, 5, 111, 0, 0, 344, 345, 5, 106, - 0, 0, 345, 346, 5, 101, 0, 0, 346, 347, 5, 99, 0, 0, 347, 348, 5, 116, - 0, 0, 348, 349, 5, 105, 0, 0, 349, 350, 5, 111, 0, 0, 350, 351, 5, 110, - 0, 0, 351, 60, 1, 0, 0, 0, 352, 353, 5, 112, 0, 0, 353, 354, 5, 114, 0, - 0, 354, 355, 5, 111, 0, 0, 355, 356, 5, 106, 0, 0, 356, 357, 5, 101, 0, - 0, 357, 358, 5, 99, 0, 0, 358, 359, 5, 116, 0, 0, 359, 62, 1, 0, 0, 0, - 360, 361, 5, 40, 0, 0, 361, 64, 1, 0, 0, 0, 362, 363, 5, 41, 0, 0, 363, - 66, 1, 0, 0, 0, 364, 365, 5, 123, 0, 0, 365, 68, 1, 0, 0, 0, 366, 367, - 5, 125, 0, 0, 367, 70, 1, 0, 0, 0, 368, 369, 5, 91, 0, 0, 369, 72, 1, 0, - 0, 0, 370, 371, 5, 93, 0, 0, 371, 74, 1, 0, 0, 0, 372, 373, 5, 58, 0, 0, - 373, 76, 1, 0, 0, 0, 374, 375, 5, 44, 0, 0, 375, 78, 1, 0, 0, 0, 376, 377, - 5, 46, 0, 0, 377, 80, 1, 0, 0, 0, 378, 379, 5, 59, 0, 0, 379, 82, 1, 0, - 0, 0, 380, 381, 5, 36, 0, 0, 381, 84, 1, 0, 0, 0, 382, 383, 5, 47, 0, 0, - 383, 384, 5, 47, 0, 0, 384, 388, 1, 0, 0, 0, 385, 387, 8, 0, 0, 0, 386, - 385, 1, 0, 0, 0, 387, 390, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 388, 389, - 1, 0, 0, 0, 389, 391, 1, 0, 0, 0, 390, 388, 1, 0, 0, 0, 391, 392, 6, 42, - 0, 0, 392, 86, 1, 0, 0, 0, 393, 394, 5, 47, 0, 0, 394, 395, 5, 42, 0, 0, - 395, 399, 1, 0, 0, 0, 396, 398, 9, 0, 0, 0, 397, 396, 1, 0, 0, 0, 398, - 401, 1, 0, 0, 0, 399, 400, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 400, 402, - 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 402, 403, 5, 42, 0, 0, 403, 404, 5, 47, - 0, 0, 404, 405, 1, 0, 0, 0, 405, 406, 6, 43, 0, 0, 406, 88, 1, 0, 0, 0, - 407, 408, 5, 47, 0, 0, 408, 409, 3, 91, 45, 0, 409, 411, 5, 47, 0, 0, 410, - 412, 3, 95, 47, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 90, - 1, 0, 0, 0, 413, 415, 3, 93, 46, 0, 414, 413, 1, 0, 0, 0, 415, 416, 1, - 0, 0, 0, 416, 414, 1, 0, 0, 0, 416, 417, 1, 0, 0, 0, 417, 92, 1, 0, 0, - 0, 418, 422, 8, 1, 0, 0, 419, 420, 5, 92, 0, 0, 420, 422, 9, 0, 0, 0, 421, - 418, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 422, 94, 1, 0, 0, 0, 423, 425, 7, - 2, 0, 0, 424, 423, 1, 0, 0, 0, 425, 426, 1, 0, 0, 0, 426, 424, 1, 0, 0, - 0, 426, 427, 1, 0, 0, 0, 427, 96, 1, 0, 0, 0, 428, 430, 5, 45, 0, 0, 429, - 428, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 438, - 3, 99, 49, 0, 432, 434, 5, 46, 0, 0, 433, 435, 7, 3, 0, 0, 434, 433, 1, - 0, 0, 0, 435, 436, 1, 0, 0, 0, 436, 434, 1, 0, 0, 0, 436, 437, 1, 0, 0, - 0, 437, 439, 1, 0, 0, 0, 438, 432, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, - 441, 1, 0, 0, 0, 440, 442, 3, 101, 50, 0, 441, 440, 1, 0, 0, 0, 441, 442, - 1, 0, 0, 0, 442, 456, 1, 0, 0, 0, 443, 445, 5, 45, 0, 0, 444, 443, 1, 0, - 0, 0, 444, 445, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 448, 5, 46, 0, 0, - 447, 449, 7, 3, 0, 0, 448, 447, 1, 0, 0, 0, 449, 450, 1, 0, 0, 0, 450, - 448, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 453, 1, 0, 0, 0, 452, 454, - 3, 101, 50, 0, 453, 452, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 1, - 0, 0, 0, 455, 429, 1, 0, 0, 0, 455, 444, 1, 0, 0, 0, 456, 98, 1, 0, 0, - 0, 457, 466, 5, 48, 0, 0, 458, 462, 7, 4, 0, 0, 459, 461, 7, 3, 0, 0, 460, - 459, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463, - 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 457, 1, 0, - 0, 0, 465, 458, 1, 0, 0, 0, 466, 100, 1, 0, 0, 0, 467, 469, 7, 5, 0, 0, - 468, 470, 7, 6, 0, 0, 469, 468, 1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, - 472, 1, 0, 0, 0, 471, 473, 7, 3, 0, 0, 472, 471, 1, 0, 0, 0, 473, 474, - 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 102, 1, 0, - 0, 0, 476, 481, 5, 34, 0, 0, 477, 480, 3, 107, 53, 0, 478, 480, 8, 7, 0, - 0, 479, 477, 1, 0, 0, 0, 479, 478, 1, 0, 0, 0, 480, 483, 1, 0, 0, 0, 481, - 479, 1, 0, 0, 0, 481, 482, 1, 0, 0, 0, 482, 484, 1, 0, 0, 0, 483, 481, - 1, 0, 0, 0, 484, 485, 5, 34, 0, 0, 485, 104, 1, 0, 0, 0, 486, 491, 5, 39, - 0, 0, 487, 490, 3, 107, 53, 0, 488, 490, 8, 8, 0, 0, 489, 487, 1, 0, 0, - 0, 489, 488, 1, 0, 0, 0, 490, 493, 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 491, - 492, 1, 0, 0, 0, 492, 494, 1, 0, 0, 0, 493, 491, 1, 0, 0, 0, 494, 495, - 5, 39, 0, 0, 495, 106, 1, 0, 0, 0, 496, 500, 5, 92, 0, 0, 497, 501, 7, - 9, 0, 0, 498, 501, 3, 109, 54, 0, 499, 501, 5, 39, 0, 0, 500, 497, 1, 0, - 0, 0, 500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 108, 1, 0, 0, 0, - 502, 503, 5, 117, 0, 0, 503, 504, 3, 111, 55, 0, 504, 505, 3, 111, 55, - 0, 505, 506, 3, 111, 55, 0, 506, 507, 3, 111, 55, 0, 507, 110, 1, 0, 0, - 0, 508, 509, 7, 10, 0, 0, 509, 112, 1, 0, 0, 0, 510, 514, 7, 11, 0, 0, - 511, 513, 7, 12, 0, 0, 512, 511, 1, 0, 0, 0, 513, 516, 1, 0, 0, 0, 514, - 512, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 114, 1, 0, 0, 0, 516, 514, - 1, 0, 0, 0, 517, 519, 7, 13, 0, 0, 518, 517, 1, 0, 0, 0, 519, 520, 1, 0, - 0, 0, 520, 518, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, - 522, 523, 6, 57, 0, 0, 523, 116, 1, 0, 0, 0, 26, 0, 388, 399, 411, 416, - 421, 426, 429, 436, 438, 441, 444, 450, 453, 455, 462, 465, 469, 474, 479, - 481, 489, 491, 500, 514, 520, 1, 0, 1, 0, + 45, 91, 46, 93, 0, 95, 0, 97, 0, 99, 47, 101, 0, 103, 0, 105, 48, 107, + 49, 109, 0, 111, 0, 113, 0, 115, 50, 117, 51, 1, 0, 14, 2, 0, 10, 10, 13, + 13, 4, 0, 10, 10, 13, 13, 47, 47, 92, 92, 6, 0, 103, 103, 105, 105, 109, + 109, 115, 115, 117, 117, 121, 121, 1, 0, 48, 57, 1, 0, 49, 57, 2, 0, 69, + 69, 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, + 92, 92, 8, 0, 34, 34, 47, 47, 92, 92, 98, 98, 102, 102, 110, 110, 114, + 114, 116, 116, 3, 0, 48, 57, 65, 70, 97, 102, 4, 0, 36, 36, 65, 90, 95, + 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 3, 0, 9, 10, + 13, 13, 32, 32, 562, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, + 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, + 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, + 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, + 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, + 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, + 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, + 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, + 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, + 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, + 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, + 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, + 0, 91, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, + 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 1, 119, 1, 0, 0, 0, 3, 124, + 1, 0, 0, 0, 5, 128, 1, 0, 0, 0, 7, 138, 1, 0, 0, 0, 9, 150, 1, 0, 0, 0, + 11, 153, 1, 0, 0, 0, 13, 157, 1, 0, 0, 0, 15, 162, 1, 0, 0, 0, 17, 168, + 1, 0, 0, 0, 19, 173, 1, 0, 0, 0, 21, 187, 1, 0, 0, 0, 23, 206, 1, 0, 0, + 0, 25, 225, 1, 0, 0, 0, 27, 234, 1, 0, 0, 0, 29, 242, 1, 0, 0, 0, 31, 247, + 1, 0, 0, 0, 33, 252, 1, 0, 0, 0, 35, 257, 1, 0, 0, 0, 37, 268, 1, 0, 0, + 0, 39, 274, 1, 0, 0, 0, 41, 284, 1, 0, 0, 0, 43, 291, 1, 0, 0, 0, 45, 302, + 1, 0, 0, 0, 47, 316, 1, 0, 0, 0, 49, 326, 1, 0, 0, 0, 51, 333, 1, 0, 0, + 0, 53, 338, 1, 0, 0, 0, 55, 346, 1, 0, 0, 0, 57, 351, 1, 0, 0, 0, 59, 357, + 1, 0, 0, 0, 61, 362, 1, 0, 0, 0, 63, 373, 1, 0, 0, 0, 65, 381, 1, 0, 0, + 0, 67, 383, 1, 0, 0, 0, 69, 385, 1, 0, 0, 0, 71, 387, 1, 0, 0, 0, 73, 389, + 1, 0, 0, 0, 75, 391, 1, 0, 0, 0, 77, 393, 1, 0, 0, 0, 79, 395, 1, 0, 0, + 0, 81, 397, 1, 0, 0, 0, 83, 399, 1, 0, 0, 0, 85, 401, 1, 0, 0, 0, 87, 403, + 1, 0, 0, 0, 89, 414, 1, 0, 0, 0, 91, 428, 1, 0, 0, 0, 93, 435, 1, 0, 0, + 0, 95, 442, 1, 0, 0, 0, 97, 445, 1, 0, 0, 0, 99, 476, 1, 0, 0, 0, 101, + 486, 1, 0, 0, 0, 103, 488, 1, 0, 0, 0, 105, 497, 1, 0, 0, 0, 107, 507, + 1, 0, 0, 0, 109, 517, 1, 0, 0, 0, 111, 523, 1, 0, 0, 0, 113, 529, 1, 0, + 0, 0, 115, 531, 1, 0, 0, 0, 117, 539, 1, 0, 0, 0, 119, 120, 5, 115, 0, + 0, 120, 121, 5, 104, 0, 0, 121, 122, 5, 111, 0, 0, 122, 123, 5, 119, 0, + 0, 123, 2, 1, 0, 0, 0, 124, 125, 5, 100, 0, 0, 125, 126, 5, 98, 0, 0, 126, + 127, 5, 115, 0, 0, 127, 4, 1, 0, 0, 0, 128, 129, 5, 100, 0, 0, 129, 130, + 5, 97, 0, 0, 130, 131, 5, 116, 0, 0, 131, 132, 5, 97, 0, 0, 132, 133, 5, + 98, 0, 0, 133, 134, 5, 97, 0, 0, 134, 135, 5, 115, 0, 0, 135, 136, 5, 101, + 0, 0, 136, 137, 5, 115, 0, 0, 137, 6, 1, 0, 0, 0, 138, 139, 5, 99, 0, 0, + 139, 140, 5, 111, 0, 0, 140, 141, 5, 108, 0, 0, 141, 142, 5, 108, 0, 0, + 142, 143, 5, 101, 0, 0, 143, 144, 5, 99, 0, 0, 144, 145, 5, 116, 0, 0, + 145, 146, 5, 105, 0, 0, 146, 147, 5, 111, 0, 0, 147, 148, 5, 110, 0, 0, + 148, 149, 5, 115, 0, 0, 149, 8, 1, 0, 0, 0, 150, 151, 5, 100, 0, 0, 151, + 152, 5, 98, 0, 0, 152, 10, 1, 0, 0, 0, 153, 154, 5, 110, 0, 0, 154, 155, + 5, 101, 0, 0, 155, 156, 5, 119, 0, 0, 156, 12, 1, 0, 0, 0, 157, 158, 5, + 116, 0, 0, 158, 159, 5, 114, 0, 0, 159, 160, 5, 117, 0, 0, 160, 161, 5, + 101, 0, 0, 161, 14, 1, 0, 0, 0, 162, 163, 5, 102, 0, 0, 163, 164, 5, 97, + 0, 0, 164, 165, 5, 108, 0, 0, 165, 166, 5, 115, 0, 0, 166, 167, 5, 101, + 0, 0, 167, 16, 1, 0, 0, 0, 168, 169, 5, 110, 0, 0, 169, 170, 5, 117, 0, + 0, 170, 171, 5, 108, 0, 0, 171, 172, 5, 108, 0, 0, 172, 18, 1, 0, 0, 0, + 173, 174, 5, 103, 0, 0, 174, 175, 5, 101, 0, 0, 175, 176, 5, 116, 0, 0, + 176, 177, 5, 67, 0, 0, 177, 178, 5, 111, 0, 0, 178, 179, 5, 108, 0, 0, + 179, 180, 5, 108, 0, 0, 180, 181, 5, 101, 0, 0, 181, 182, 5, 99, 0, 0, + 182, 183, 5, 116, 0, 0, 183, 184, 5, 105, 0, 0, 184, 185, 5, 111, 0, 0, + 185, 186, 5, 110, 0, 0, 186, 20, 1, 0, 0, 0, 187, 188, 5, 103, 0, 0, 188, + 189, 5, 101, 0, 0, 189, 190, 5, 116, 0, 0, 190, 191, 5, 67, 0, 0, 191, + 192, 5, 111, 0, 0, 192, 193, 5, 108, 0, 0, 193, 194, 5, 108, 0, 0, 194, + 195, 5, 101, 0, 0, 195, 196, 5, 99, 0, 0, 196, 197, 5, 116, 0, 0, 197, + 198, 5, 105, 0, 0, 198, 199, 5, 111, 0, 0, 199, 200, 5, 110, 0, 0, 200, + 201, 5, 78, 0, 0, 201, 202, 5, 97, 0, 0, 202, 203, 5, 109, 0, 0, 203, 204, + 5, 101, 0, 0, 204, 205, 5, 115, 0, 0, 205, 22, 1, 0, 0, 0, 206, 207, 5, + 103, 0, 0, 207, 208, 5, 101, 0, 0, 208, 209, 5, 116, 0, 0, 209, 210, 5, + 67, 0, 0, 210, 211, 5, 111, 0, 0, 211, 212, 5, 108, 0, 0, 212, 213, 5, + 108, 0, 0, 213, 214, 5, 101, 0, 0, 214, 215, 5, 99, 0, 0, 215, 216, 5, + 116, 0, 0, 216, 217, 5, 105, 0, 0, 217, 218, 5, 111, 0, 0, 218, 219, 5, + 110, 0, 0, 219, 220, 5, 73, 0, 0, 220, 221, 5, 110, 0, 0, 221, 222, 5, + 102, 0, 0, 222, 223, 5, 111, 0, 0, 223, 224, 5, 115, 0, 0, 224, 24, 1, + 0, 0, 0, 225, 226, 5, 79, 0, 0, 226, 227, 5, 98, 0, 0, 227, 228, 5, 106, + 0, 0, 228, 229, 5, 101, 0, 0, 229, 230, 5, 99, 0, 0, 230, 231, 5, 116, + 0, 0, 231, 232, 5, 73, 0, 0, 232, 233, 5, 100, 0, 0, 233, 26, 1, 0, 0, + 0, 234, 235, 5, 73, 0, 0, 235, 236, 5, 83, 0, 0, 236, 237, 5, 79, 0, 0, + 237, 238, 5, 68, 0, 0, 238, 239, 5, 97, 0, 0, 239, 240, 5, 116, 0, 0, 240, + 241, 5, 101, 0, 0, 241, 28, 1, 0, 0, 0, 242, 243, 5, 68, 0, 0, 243, 244, + 5, 97, 0, 0, 244, 245, 5, 116, 0, 0, 245, 246, 5, 101, 0, 0, 246, 30, 1, + 0, 0, 0, 247, 248, 5, 85, 0, 0, 248, 249, 5, 85, 0, 0, 249, 250, 5, 73, + 0, 0, 250, 251, 5, 68, 0, 0, 251, 32, 1, 0, 0, 0, 252, 253, 5, 76, 0, 0, + 253, 254, 5, 111, 0, 0, 254, 255, 5, 110, 0, 0, 255, 256, 5, 103, 0, 0, + 256, 34, 1, 0, 0, 0, 257, 258, 5, 78, 0, 0, 258, 259, 5, 117, 0, 0, 259, + 260, 5, 109, 0, 0, 260, 261, 5, 98, 0, 0, 261, 262, 5, 101, 0, 0, 262, + 263, 5, 114, 0, 0, 263, 264, 5, 76, 0, 0, 264, 265, 5, 111, 0, 0, 265, + 266, 5, 110, 0, 0, 266, 267, 5, 103, 0, 0, 267, 36, 1, 0, 0, 0, 268, 269, + 5, 73, 0, 0, 269, 270, 5, 110, 0, 0, 270, 271, 5, 116, 0, 0, 271, 272, + 5, 51, 0, 0, 272, 273, 5, 50, 0, 0, 273, 38, 1, 0, 0, 0, 274, 275, 5, 78, + 0, 0, 275, 276, 5, 117, 0, 0, 276, 277, 5, 109, 0, 0, 277, 278, 5, 98, + 0, 0, 278, 279, 5, 101, 0, 0, 279, 280, 5, 114, 0, 0, 280, 281, 5, 73, + 0, 0, 281, 282, 5, 110, 0, 0, 282, 283, 5, 116, 0, 0, 283, 40, 1, 0, 0, + 0, 284, 285, 5, 68, 0, 0, 285, 286, 5, 111, 0, 0, 286, 287, 5, 117, 0, + 0, 287, 288, 5, 98, 0, 0, 288, 289, 5, 108, 0, 0, 289, 290, 5, 101, 0, + 0, 290, 42, 1, 0, 0, 0, 291, 292, 5, 68, 0, 0, 292, 293, 5, 101, 0, 0, + 293, 294, 5, 99, 0, 0, 294, 295, 5, 105, 0, 0, 295, 296, 5, 109, 0, 0, + 296, 297, 5, 97, 0, 0, 297, 298, 5, 108, 0, 0, 298, 299, 5, 49, 0, 0, 299, + 300, 5, 50, 0, 0, 300, 301, 5, 56, 0, 0, 301, 44, 1, 0, 0, 0, 302, 303, + 5, 78, 0, 0, 303, 304, 5, 117, 0, 0, 304, 305, 5, 109, 0, 0, 305, 306, + 5, 98, 0, 0, 306, 307, 5, 101, 0, 0, 307, 308, 5, 114, 0, 0, 308, 309, + 5, 68, 0, 0, 309, 310, 5, 101, 0, 0, 310, 311, 5, 99, 0, 0, 311, 312, 5, + 105, 0, 0, 312, 313, 5, 109, 0, 0, 313, 314, 5, 97, 0, 0, 314, 315, 5, + 108, 0, 0, 315, 46, 1, 0, 0, 0, 316, 317, 5, 84, 0, 0, 317, 318, 5, 105, + 0, 0, 318, 319, 5, 109, 0, 0, 319, 320, 5, 101, 0, 0, 320, 321, 5, 115, + 0, 0, 321, 322, 5, 116, 0, 0, 322, 323, 5, 97, 0, 0, 323, 324, 5, 109, + 0, 0, 324, 325, 5, 112, 0, 0, 325, 48, 1, 0, 0, 0, 326, 327, 5, 82, 0, + 0, 327, 328, 5, 101, 0, 0, 328, 329, 5, 103, 0, 0, 329, 330, 5, 69, 0, + 0, 330, 331, 5, 120, 0, 0, 331, 332, 5, 112, 0, 0, 332, 50, 1, 0, 0, 0, + 333, 334, 5, 102, 0, 0, 334, 335, 5, 105, 0, 0, 335, 336, 5, 110, 0, 0, + 336, 337, 5, 100, 0, 0, 337, 52, 1, 0, 0, 0, 338, 339, 5, 102, 0, 0, 339, + 340, 5, 105, 0, 0, 340, 341, 5, 110, 0, 0, 341, 342, 5, 100, 0, 0, 342, + 343, 5, 79, 0, 0, 343, 344, 5, 110, 0, 0, 344, 345, 5, 101, 0, 0, 345, + 54, 1, 0, 0, 0, 346, 347, 5, 115, 0, 0, 347, 348, 5, 111, 0, 0, 348, 349, + 5, 114, 0, 0, 349, 350, 5, 116, 0, 0, 350, 56, 1, 0, 0, 0, 351, 352, 5, + 108, 0, 0, 352, 353, 5, 105, 0, 0, 353, 354, 5, 109, 0, 0, 354, 355, 5, + 105, 0, 0, 355, 356, 5, 116, 0, 0, 356, 58, 1, 0, 0, 0, 357, 358, 5, 115, + 0, 0, 358, 359, 5, 107, 0, 0, 359, 360, 5, 105, 0, 0, 360, 361, 5, 112, + 0, 0, 361, 60, 1, 0, 0, 0, 362, 363, 5, 112, 0, 0, 363, 364, 5, 114, 0, + 0, 364, 365, 5, 111, 0, 0, 365, 366, 5, 106, 0, 0, 366, 367, 5, 101, 0, + 0, 367, 368, 5, 99, 0, 0, 368, 369, 5, 116, 0, 0, 369, 370, 5, 105, 0, + 0, 370, 371, 5, 111, 0, 0, 371, 372, 5, 110, 0, 0, 372, 62, 1, 0, 0, 0, + 373, 374, 5, 112, 0, 0, 374, 375, 5, 114, 0, 0, 375, 376, 5, 111, 0, 0, + 376, 377, 5, 106, 0, 0, 377, 378, 5, 101, 0, 0, 378, 379, 5, 99, 0, 0, + 379, 380, 5, 116, 0, 0, 380, 64, 1, 0, 0, 0, 381, 382, 5, 40, 0, 0, 382, + 66, 1, 0, 0, 0, 383, 384, 5, 41, 0, 0, 384, 68, 1, 0, 0, 0, 385, 386, 5, + 123, 0, 0, 386, 70, 1, 0, 0, 0, 387, 388, 5, 125, 0, 0, 388, 72, 1, 0, + 0, 0, 389, 390, 5, 91, 0, 0, 390, 74, 1, 0, 0, 0, 391, 392, 5, 93, 0, 0, + 392, 76, 1, 0, 0, 0, 393, 394, 5, 58, 0, 0, 394, 78, 1, 0, 0, 0, 395, 396, + 5, 44, 0, 0, 396, 80, 1, 0, 0, 0, 397, 398, 5, 46, 0, 0, 398, 82, 1, 0, + 0, 0, 399, 400, 5, 59, 0, 0, 400, 84, 1, 0, 0, 0, 401, 402, 5, 36, 0, 0, + 402, 86, 1, 0, 0, 0, 403, 404, 5, 47, 0, 0, 404, 405, 5, 47, 0, 0, 405, + 409, 1, 0, 0, 0, 406, 408, 8, 0, 0, 0, 407, 406, 1, 0, 0, 0, 408, 411, + 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 409, 410, 1, 0, 0, 0, 410, 412, 1, 0, + 0, 0, 411, 409, 1, 0, 0, 0, 412, 413, 6, 43, 0, 0, 413, 88, 1, 0, 0, 0, + 414, 415, 5, 47, 0, 0, 415, 416, 5, 42, 0, 0, 416, 420, 1, 0, 0, 0, 417, + 419, 9, 0, 0, 0, 418, 417, 1, 0, 0, 0, 419, 422, 1, 0, 0, 0, 420, 421, + 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 421, 423, 1, 0, 0, 0, 422, 420, 1, 0, + 0, 0, 423, 424, 5, 42, 0, 0, 424, 425, 5, 47, 0, 0, 425, 426, 1, 0, 0, + 0, 426, 427, 6, 44, 0, 0, 427, 90, 1, 0, 0, 0, 428, 429, 5, 47, 0, 0, 429, + 430, 3, 93, 46, 0, 430, 432, 5, 47, 0, 0, 431, 433, 3, 97, 48, 0, 432, + 431, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 92, 1, 0, 0, 0, 434, 436, 3, + 95, 47, 0, 435, 434, 1, 0, 0, 0, 436, 437, 1, 0, 0, 0, 437, 435, 1, 0, + 0, 0, 437, 438, 1, 0, 0, 0, 438, 94, 1, 0, 0, 0, 439, 443, 8, 1, 0, 0, + 440, 441, 5, 92, 0, 0, 441, 443, 9, 0, 0, 0, 442, 439, 1, 0, 0, 0, 442, + 440, 1, 0, 0, 0, 443, 96, 1, 0, 0, 0, 444, 446, 7, 2, 0, 0, 445, 444, 1, + 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 445, 1, 0, 0, 0, 447, 448, 1, 0, 0, + 0, 448, 98, 1, 0, 0, 0, 449, 451, 5, 45, 0, 0, 450, 449, 1, 0, 0, 0, 450, + 451, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 459, 3, 101, 50, 0, 453, 455, + 5, 46, 0, 0, 454, 456, 7, 3, 0, 0, 455, 454, 1, 0, 0, 0, 456, 457, 1, 0, + 0, 0, 457, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 460, 1, 0, 0, 0, + 459, 453, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 462, 1, 0, 0, 0, 461, + 463, 3, 103, 51, 0, 462, 461, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 477, + 1, 0, 0, 0, 464, 466, 5, 45, 0, 0, 465, 464, 1, 0, 0, 0, 465, 466, 1, 0, + 0, 0, 466, 467, 1, 0, 0, 0, 467, 469, 5, 46, 0, 0, 468, 470, 7, 3, 0, 0, + 469, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 469, 1, 0, 0, 0, 471, + 472, 1, 0, 0, 0, 472, 474, 1, 0, 0, 0, 473, 475, 3, 103, 51, 0, 474, 473, + 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 477, 1, 0, 0, 0, 476, 450, 1, 0, + 0, 0, 476, 465, 1, 0, 0, 0, 477, 100, 1, 0, 0, 0, 478, 487, 5, 48, 0, 0, + 479, 483, 7, 4, 0, 0, 480, 482, 7, 3, 0, 0, 481, 480, 1, 0, 0, 0, 482, + 485, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 487, + 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, 486, 478, 1, 0, 0, 0, 486, 479, 1, 0, + 0, 0, 487, 102, 1, 0, 0, 0, 488, 490, 7, 5, 0, 0, 489, 491, 7, 6, 0, 0, + 490, 489, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 493, 1, 0, 0, 0, 492, + 494, 7, 3, 0, 0, 493, 492, 1, 0, 0, 0, 494, 495, 1, 0, 0, 0, 495, 493, + 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 104, 1, 0, 0, 0, 497, 502, 5, 34, + 0, 0, 498, 501, 3, 109, 54, 0, 499, 501, 8, 7, 0, 0, 500, 498, 1, 0, 0, + 0, 500, 499, 1, 0, 0, 0, 501, 504, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0, 502, + 503, 1, 0, 0, 0, 503, 505, 1, 0, 0, 0, 504, 502, 1, 0, 0, 0, 505, 506, + 5, 34, 0, 0, 506, 106, 1, 0, 0, 0, 507, 512, 5, 39, 0, 0, 508, 511, 3, + 109, 54, 0, 509, 511, 8, 8, 0, 0, 510, 508, 1, 0, 0, 0, 510, 509, 1, 0, + 0, 0, 511, 514, 1, 0, 0, 0, 512, 510, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, + 513, 515, 1, 0, 0, 0, 514, 512, 1, 0, 0, 0, 515, 516, 5, 39, 0, 0, 516, + 108, 1, 0, 0, 0, 517, 521, 5, 92, 0, 0, 518, 522, 7, 9, 0, 0, 519, 522, + 3, 111, 55, 0, 520, 522, 5, 39, 0, 0, 521, 518, 1, 0, 0, 0, 521, 519, 1, + 0, 0, 0, 521, 520, 1, 0, 0, 0, 522, 110, 1, 0, 0, 0, 523, 524, 5, 117, + 0, 0, 524, 525, 3, 113, 56, 0, 525, 526, 3, 113, 56, 0, 526, 527, 3, 113, + 56, 0, 527, 528, 3, 113, 56, 0, 528, 112, 1, 0, 0, 0, 529, 530, 7, 10, + 0, 0, 530, 114, 1, 0, 0, 0, 531, 535, 7, 11, 0, 0, 532, 534, 7, 12, 0, + 0, 533, 532, 1, 0, 0, 0, 534, 537, 1, 0, 0, 0, 535, 533, 1, 0, 0, 0, 535, + 536, 1, 0, 0, 0, 536, 116, 1, 0, 0, 0, 537, 535, 1, 0, 0, 0, 538, 540, + 7, 13, 0, 0, 539, 538, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 539, 1, 0, + 0, 0, 541, 542, 1, 0, 0, 0, 542, 543, 1, 0, 0, 0, 543, 544, 6, 58, 0, 0, + 544, 118, 1, 0, 0, 0, 26, 0, 409, 420, 432, 437, 442, 447, 450, 457, 459, + 462, 465, 471, 474, 476, 483, 486, 490, 495, 500, 502, 510, 512, 521, 535, + 541, 1, 0, 1, 0, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -362,43 +371,44 @@ const ( MongoShellLexerNULL = 9 MongoShellLexerGET_COLLECTION = 10 MongoShellLexerGET_COLLECTION_NAMES = 11 - MongoShellLexerOBJECT_ID = 12 - MongoShellLexerISO_DATE = 13 - MongoShellLexerDATE = 14 - MongoShellLexerUUID = 15 - MongoShellLexerLONG = 16 - MongoShellLexerNUMBER_LONG = 17 - MongoShellLexerINT32 = 18 - MongoShellLexerNUMBER_INT = 19 - MongoShellLexerDOUBLE = 20 - MongoShellLexerDECIMAL128 = 21 - MongoShellLexerNUMBER_DECIMAL = 22 - MongoShellLexerTIMESTAMP = 23 - MongoShellLexerREG_EXP = 24 - MongoShellLexerFIND = 25 - MongoShellLexerFIND_ONE = 26 - MongoShellLexerSORT = 27 - MongoShellLexerLIMIT = 28 - MongoShellLexerSKIP_ = 29 - MongoShellLexerPROJECTION = 30 - MongoShellLexerPROJECT = 31 - MongoShellLexerLPAREN = 32 - MongoShellLexerRPAREN = 33 - MongoShellLexerLBRACE = 34 - MongoShellLexerRBRACE = 35 - MongoShellLexerLBRACKET = 36 - MongoShellLexerRBRACKET = 37 - MongoShellLexerCOLON = 38 - MongoShellLexerCOMMA = 39 - MongoShellLexerDOT = 40 - MongoShellLexerSEMI = 41 - MongoShellLexerDOLLAR = 42 - MongoShellLexerLINE_COMMENT = 43 - MongoShellLexerBLOCK_COMMENT = 44 - MongoShellLexerREGEX_LITERAL = 45 - MongoShellLexerNUMBER = 46 - MongoShellLexerDOUBLE_QUOTED_STRING = 47 - MongoShellLexerSINGLE_QUOTED_STRING = 48 - MongoShellLexerIDENTIFIER = 49 - MongoShellLexerWS = 50 + MongoShellLexerGET_COLLECTION_INFOS = 12 + MongoShellLexerOBJECT_ID = 13 + MongoShellLexerISO_DATE = 14 + MongoShellLexerDATE = 15 + MongoShellLexerUUID = 16 + MongoShellLexerLONG = 17 + MongoShellLexerNUMBER_LONG = 18 + MongoShellLexerINT32 = 19 + MongoShellLexerNUMBER_INT = 20 + MongoShellLexerDOUBLE = 21 + MongoShellLexerDECIMAL128 = 22 + MongoShellLexerNUMBER_DECIMAL = 23 + MongoShellLexerTIMESTAMP = 24 + MongoShellLexerREG_EXP = 25 + MongoShellLexerFIND = 26 + MongoShellLexerFIND_ONE = 27 + MongoShellLexerSORT = 28 + MongoShellLexerLIMIT = 29 + MongoShellLexerSKIP_ = 30 + MongoShellLexerPROJECTION = 31 + MongoShellLexerPROJECT = 32 + MongoShellLexerLPAREN = 33 + MongoShellLexerRPAREN = 34 + MongoShellLexerLBRACE = 35 + MongoShellLexerRBRACE = 36 + MongoShellLexerLBRACKET = 37 + MongoShellLexerRBRACKET = 38 + MongoShellLexerCOLON = 39 + MongoShellLexerCOMMA = 40 + MongoShellLexerDOT = 41 + MongoShellLexerSEMI = 42 + MongoShellLexerDOLLAR = 43 + MongoShellLexerLINE_COMMENT = 44 + MongoShellLexerBLOCK_COMMENT = 45 + MongoShellLexerREGEX_LITERAL = 46 + MongoShellLexerNUMBER = 47 + MongoShellLexerDOUBLE_QUOTED_STRING = 48 + MongoShellLexerSINGLE_QUOTED_STRING = 49 + MongoShellLexerIDENTIFIER = 50 + MongoShellLexerWS = 51 ) diff --git a/mongodb/mongoshell_parser.go b/mongodb/mongoshell_parser.go index 21a01db..45c355b 100644 --- a/mongodb/mongoshell_parser.go +++ b/mongodb/mongoshell_parser.go @@ -34,22 +34,22 @@ func mongoshellparserParserInit() { staticData.LiteralNames = []string{ "", "'show'", "'dbs'", "'databases'", "'collections'", "'db'", "'new'", "'true'", "'false'", "'null'", "'getCollection'", "'getCollectionNames'", - "'ObjectId'", "'ISODate'", "'Date'", "'UUID'", "'Long'", "'NumberLong'", - "'Int32'", "'NumberInt'", "'Double'", "'Decimal128'", "'NumberDecimal'", - "'Timestamp'", "'RegExp'", "'find'", "'findOne'", "'sort'", "'limit'", - "'skip'", "'projection'", "'project'", "'('", "')'", "'{'", "'}'", "'['", - "']'", "':'", "','", "'.'", "';'", "'$'", + "'getCollectionInfos'", "'ObjectId'", "'ISODate'", "'Date'", "'UUID'", + "'Long'", "'NumberLong'", "'Int32'", "'NumberInt'", "'Double'", "'Decimal128'", + "'NumberDecimal'", "'Timestamp'", "'RegExp'", "'find'", "'findOne'", + "'sort'", "'limit'", "'skip'", "'projection'", "'project'", "'('", "')'", + "'{'", "'}'", "'['", "']'", "':'", "','", "'.'", "';'", "'$'", } staticData.SymbolicNames = []string{ "", "SHOW", "DBS", "DATABASES", "COLLECTIONS", "DB", "NEW", "TRUE", - "FALSE", "NULL", "GET_COLLECTION", "GET_COLLECTION_NAMES", "OBJECT_ID", - "ISO_DATE", "DATE", "UUID", "LONG", "NUMBER_LONG", "INT32", "NUMBER_INT", - "DOUBLE", "DECIMAL128", "NUMBER_DECIMAL", "TIMESTAMP", "REG_EXP", "FIND", - "FIND_ONE", "SORT", "LIMIT", "SKIP_", "PROJECTION", "PROJECT", "LPAREN", - "RPAREN", "LBRACE", "RBRACE", "LBRACKET", "RBRACKET", "COLON", "COMMA", - "DOT", "SEMI", "DOLLAR", "LINE_COMMENT", "BLOCK_COMMENT", "REGEX_LITERAL", - "NUMBER", "DOUBLE_QUOTED_STRING", "SINGLE_QUOTED_STRING", "IDENTIFIER", - "WS", + "FALSE", "NULL", "GET_COLLECTION", "GET_COLLECTION_NAMES", "GET_COLLECTION_INFOS", + "OBJECT_ID", "ISO_DATE", "DATE", "UUID", "LONG", "NUMBER_LONG", "INT32", + "NUMBER_INT", "DOUBLE", "DECIMAL128", "NUMBER_DECIMAL", "TIMESTAMP", + "REG_EXP", "FIND", "FIND_ONE", "SORT", "LIMIT", "SKIP_", "PROJECTION", + "PROJECT", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACKET", "RBRACKET", + "COLON", "COMMA", "DOT", "SEMI", "DOLLAR", "LINE_COMMENT", "BLOCK_COMMENT", + "REGEX_LITERAL", "NUMBER", "DOUBLE_QUOTED_STRING", "SINGLE_QUOTED_STRING", + "IDENTIFIER", "WS", } staticData.RuleNames = []string{ "program", "statement", "shellCommand", "dbStatement", "collectionAccess", @@ -62,7 +62,7 @@ func mongoshellparserParserInit() { } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 1, 50, 388, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, + 4, 1, 51, 400, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, @@ -72,176 +72,182 @@ func mongoshellparserParserInit() { 0, 12, 0, 75, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 81, 8, 1, 1, 1, 1, 1, 3, 1, 85, 8, 1, 3, 1, 87, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 93, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 101, 8, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 3, 3, 107, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, - 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 121, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, - 127, 8, 5, 10, 5, 12, 5, 130, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, - 1, 6, 3, 6, 139, 8, 6, 1, 7, 1, 7, 1, 7, 3, 7, 144, 8, 7, 1, 7, 1, 7, 1, - 8, 1, 8, 1, 8, 3, 8, 151, 8, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, - 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, - 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 178, 8, - 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 5, 14, 185, 8, 14, 10, 14, 12, 14, - 188, 9, 14, 1, 14, 3, 14, 191, 8, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, - 1, 16, 5, 16, 199, 8, 16, 10, 16, 12, 16, 202, 9, 16, 1, 16, 3, 16, 205, - 8, 16, 3, 16, 207, 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, - 18, 1, 18, 3, 18, 217, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, - 3, 19, 225, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 231, 8, 20, 10, 20, - 12, 20, 234, 9, 20, 1, 20, 3, 20, 237, 8, 20, 3, 20, 239, 8, 20, 1, 20, - 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, - 21, 252, 8, 21, 1, 22, 1, 22, 1, 22, 3, 22, 257, 8, 22, 1, 22, 1, 22, 1, - 22, 1, 22, 3, 22, 263, 8, 22, 1, 23, 1, 23, 1, 23, 3, 23, 268, 8, 23, 1, - 23, 1, 23, 1, 23, 1, 23, 3, 23, 274, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, - 3, 24, 280, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 286, 8, 24, 1, 25, - 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 297, 8, - 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, - 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, - 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 327, 8, 30, - 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 334, 8, 31, 1, 31, 1, 31, 1, - 31, 1, 31, 1, 31, 3, 31, 341, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, - 3, 32, 348, 8, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, - 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, + 1, 3, 1, 3, 3, 3, 108, 8, 3, 1, 3, 1, 3, 3, 3, 112, 8, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 3, 3, 118, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, + 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 132, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 5, + 5, 138, 8, 5, 10, 5, 12, 5, 141, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, + 6, 1, 6, 3, 6, 150, 8, 6, 1, 7, 1, 7, 1, 7, 3, 7, 155, 8, 7, 1, 7, 1, 7, + 1, 8, 1, 8, 1, 8, 3, 8, 162, 8, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, + 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, + 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 189, + 8, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 5, 14, 196, 8, 14, 10, 14, 12, + 14, 199, 9, 14, 1, 14, 3, 14, 202, 8, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, + 16, 1, 16, 5, 16, 210, 8, 16, 10, 16, 12, 16, 213, 9, 16, 1, 16, 3, 16, + 216, 8, 16, 3, 16, 218, 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, + 1, 18, 1, 18, 3, 18, 228, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, + 19, 3, 19, 236, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 242, 8, 20, 10, + 20, 12, 20, 245, 9, 20, 1, 20, 3, 20, 248, 8, 20, 3, 20, 250, 8, 20, 1, + 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, + 3, 21, 263, 8, 21, 1, 22, 1, 22, 1, 22, 3, 22, 268, 8, 22, 1, 22, 1, 22, + 1, 22, 1, 22, 3, 22, 274, 8, 22, 1, 23, 1, 23, 1, 23, 3, 23, 279, 8, 23, + 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 285, 8, 23, 1, 24, 1, 24, 1, 24, 1, + 24, 3, 24, 291, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 297, 8, 24, 1, + 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 308, + 8, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, + 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, + 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 338, 8, + 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 345, 8, 31, 1, 31, 1, 31, + 1, 31, 1, 31, 1, 31, 3, 31, 352, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, + 32, 3, 32, 359, 8, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, - 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 386, 8, 34, - 1, 34, 0, 0, 35, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, - 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, - 66, 68, 0, 6, 1, 0, 2, 3, 1, 0, 30, 31, 1, 0, 16, 17, 1, 0, 18, 19, 1, - 0, 21, 22, 1, 0, 47, 48, 440, 0, 73, 1, 0, 0, 0, 2, 86, 1, 0, 0, 0, 4, - 92, 1, 0, 0, 0, 6, 106, 1, 0, 0, 0, 8, 120, 1, 0, 0, 0, 10, 122, 1, 0, - 0, 0, 12, 138, 1, 0, 0, 0, 14, 140, 1, 0, 0, 0, 16, 147, 1, 0, 0, 0, 18, - 154, 1, 0, 0, 0, 20, 159, 1, 0, 0, 0, 22, 164, 1, 0, 0, 0, 24, 169, 1, - 0, 0, 0, 26, 174, 1, 0, 0, 0, 28, 181, 1, 0, 0, 0, 30, 192, 1, 0, 0, 0, - 32, 194, 1, 0, 0, 0, 34, 210, 1, 0, 0, 0, 36, 216, 1, 0, 0, 0, 38, 224, - 1, 0, 0, 0, 40, 226, 1, 0, 0, 0, 42, 251, 1, 0, 0, 0, 44, 262, 1, 0, 0, - 0, 46, 273, 1, 0, 0, 0, 48, 285, 1, 0, 0, 0, 50, 287, 1, 0, 0, 0, 52, 292, - 1, 0, 0, 0, 54, 300, 1, 0, 0, 0, 56, 305, 1, 0, 0, 0, 58, 310, 1, 0, 0, - 0, 60, 326, 1, 0, 0, 0, 62, 340, 1, 0, 0, 0, 64, 347, 1, 0, 0, 0, 66, 349, - 1, 0, 0, 0, 68, 385, 1, 0, 0, 0, 70, 72, 3, 2, 1, 0, 71, 70, 1, 0, 0, 0, + 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, + 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 398, + 8, 34, 1, 34, 0, 0, 35, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, + 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, + 62, 64, 66, 68, 0, 6, 1, 0, 2, 3, 1, 0, 31, 32, 1, 0, 17, 18, 1, 0, 19, + 20, 1, 0, 22, 23, 1, 0, 48, 49, 456, 0, 73, 1, 0, 0, 0, 2, 86, 1, 0, 0, + 0, 4, 92, 1, 0, 0, 0, 6, 117, 1, 0, 0, 0, 8, 131, 1, 0, 0, 0, 10, 133, + 1, 0, 0, 0, 12, 149, 1, 0, 0, 0, 14, 151, 1, 0, 0, 0, 16, 158, 1, 0, 0, + 0, 18, 165, 1, 0, 0, 0, 20, 170, 1, 0, 0, 0, 22, 175, 1, 0, 0, 0, 24, 180, + 1, 0, 0, 0, 26, 185, 1, 0, 0, 0, 28, 192, 1, 0, 0, 0, 30, 203, 1, 0, 0, + 0, 32, 205, 1, 0, 0, 0, 34, 221, 1, 0, 0, 0, 36, 227, 1, 0, 0, 0, 38, 235, + 1, 0, 0, 0, 40, 237, 1, 0, 0, 0, 42, 262, 1, 0, 0, 0, 44, 273, 1, 0, 0, + 0, 46, 284, 1, 0, 0, 0, 48, 296, 1, 0, 0, 0, 50, 298, 1, 0, 0, 0, 52, 303, + 1, 0, 0, 0, 54, 311, 1, 0, 0, 0, 56, 316, 1, 0, 0, 0, 58, 321, 1, 0, 0, + 0, 60, 337, 1, 0, 0, 0, 62, 351, 1, 0, 0, 0, 64, 358, 1, 0, 0, 0, 66, 360, + 1, 0, 0, 0, 68, 397, 1, 0, 0, 0, 70, 72, 3, 2, 1, 0, 71, 70, 1, 0, 0, 0, 72, 75, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 76, 1, 0, 0, 0, 75, 73, 1, 0, 0, 0, 76, 77, 5, 0, 0, 1, 77, 1, 1, 0, 0, 0, 78, - 80, 3, 4, 2, 0, 79, 81, 5, 41, 0, 0, 80, 79, 1, 0, 0, 0, 80, 81, 1, 0, - 0, 0, 81, 87, 1, 0, 0, 0, 82, 84, 3, 6, 3, 0, 83, 85, 5, 41, 0, 0, 84, + 80, 3, 4, 2, 0, 79, 81, 5, 42, 0, 0, 80, 79, 1, 0, 0, 0, 80, 81, 1, 0, + 0, 0, 81, 87, 1, 0, 0, 0, 82, 84, 3, 6, 3, 0, 83, 85, 5, 42, 0, 0, 84, 83, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 87, 1, 0, 0, 0, 86, 78, 1, 0, 0, 0, 86, 82, 1, 0, 0, 0, 87, 3, 1, 0, 0, 0, 88, 89, 5, 1, 0, 0, 89, 93, 7, 0, 0, 0, 90, 91, 5, 1, 0, 0, 91, 93, 5, 4, 0, 0, 92, 88, 1, 0, 0, 0, 92, - 90, 1, 0, 0, 0, 93, 5, 1, 0, 0, 0, 94, 95, 5, 5, 0, 0, 95, 96, 5, 40, 0, - 0, 96, 97, 5, 11, 0, 0, 97, 98, 5, 32, 0, 0, 98, 100, 5, 33, 0, 0, 99, - 101, 3, 10, 5, 0, 100, 99, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 107, - 1, 0, 0, 0, 102, 103, 5, 5, 0, 0, 103, 104, 3, 8, 4, 0, 104, 105, 3, 10, - 5, 0, 105, 107, 1, 0, 0, 0, 106, 94, 1, 0, 0, 0, 106, 102, 1, 0, 0, 0, - 107, 7, 1, 0, 0, 0, 108, 109, 5, 40, 0, 0, 109, 121, 3, 68, 34, 0, 110, - 111, 5, 36, 0, 0, 111, 112, 3, 66, 33, 0, 112, 113, 5, 37, 0, 0, 113, 121, - 1, 0, 0, 0, 114, 115, 5, 40, 0, 0, 115, 116, 5, 10, 0, 0, 116, 117, 5, - 32, 0, 0, 117, 118, 3, 66, 33, 0, 118, 119, 5, 33, 0, 0, 119, 121, 1, 0, - 0, 0, 120, 108, 1, 0, 0, 0, 120, 110, 1, 0, 0, 0, 120, 114, 1, 0, 0, 0, - 121, 9, 1, 0, 0, 0, 122, 123, 5, 40, 0, 0, 123, 128, 3, 12, 6, 0, 124, - 125, 5, 40, 0, 0, 125, 127, 3, 12, 6, 0, 126, 124, 1, 0, 0, 0, 127, 130, - 1, 0, 0, 0, 128, 126, 1, 0, 0, 0, 128, 129, 1, 0, 0, 0, 129, 11, 1, 0, - 0, 0, 130, 128, 1, 0, 0, 0, 131, 139, 3, 14, 7, 0, 132, 139, 3, 16, 8, - 0, 133, 139, 3, 18, 9, 0, 134, 139, 3, 20, 10, 0, 135, 139, 3, 22, 11, - 0, 136, 139, 3, 24, 12, 0, 137, 139, 3, 26, 13, 0, 138, 131, 1, 0, 0, 0, - 138, 132, 1, 0, 0, 0, 138, 133, 1, 0, 0, 0, 138, 134, 1, 0, 0, 0, 138, - 135, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 137, 1, 0, 0, 0, 139, 13, 1, - 0, 0, 0, 140, 141, 5, 25, 0, 0, 141, 143, 5, 32, 0, 0, 142, 144, 3, 30, - 15, 0, 143, 142, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, - 145, 146, 5, 33, 0, 0, 146, 15, 1, 0, 0, 0, 147, 148, 5, 26, 0, 0, 148, - 150, 5, 32, 0, 0, 149, 151, 3, 30, 15, 0, 150, 149, 1, 0, 0, 0, 150, 151, - 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 5, 33, 0, 0, 153, 17, 1, 0, - 0, 0, 154, 155, 5, 27, 0, 0, 155, 156, 5, 32, 0, 0, 156, 157, 3, 32, 16, - 0, 157, 158, 5, 33, 0, 0, 158, 19, 1, 0, 0, 0, 159, 160, 5, 28, 0, 0, 160, - 161, 5, 32, 0, 0, 161, 162, 5, 46, 0, 0, 162, 163, 5, 33, 0, 0, 163, 21, - 1, 0, 0, 0, 164, 165, 5, 29, 0, 0, 165, 166, 5, 32, 0, 0, 166, 167, 5, - 46, 0, 0, 167, 168, 5, 33, 0, 0, 168, 23, 1, 0, 0, 0, 169, 170, 7, 1, 0, - 0, 170, 171, 5, 32, 0, 0, 171, 172, 3, 32, 16, 0, 172, 173, 5, 33, 0, 0, - 173, 25, 1, 0, 0, 0, 174, 175, 3, 68, 34, 0, 175, 177, 5, 32, 0, 0, 176, - 178, 3, 28, 14, 0, 177, 176, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 179, - 1, 0, 0, 0, 179, 180, 5, 33, 0, 0, 180, 27, 1, 0, 0, 0, 181, 186, 3, 30, - 15, 0, 182, 183, 5, 39, 0, 0, 183, 185, 3, 30, 15, 0, 184, 182, 1, 0, 0, - 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, - 190, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 189, 191, 5, 39, 0, 0, 190, 189, - 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 29, 1, 0, 0, 0, 192, 193, 3, 38, - 19, 0, 193, 31, 1, 0, 0, 0, 194, 206, 5, 34, 0, 0, 195, 200, 3, 34, 17, - 0, 196, 197, 5, 39, 0, 0, 197, 199, 3, 34, 17, 0, 198, 196, 1, 0, 0, 0, - 199, 202, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, - 204, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 203, 205, 5, 39, 0, 0, 204, 203, - 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 207, 1, 0, 0, 0, 206, 195, 1, 0, - 0, 0, 206, 207, 1, 0, 0, 0, 207, 208, 1, 0, 0, 0, 208, 209, 5, 35, 0, 0, - 209, 33, 1, 0, 0, 0, 210, 211, 3, 36, 18, 0, 211, 212, 5, 38, 0, 0, 212, - 213, 3, 38, 19, 0, 213, 35, 1, 0, 0, 0, 214, 217, 3, 68, 34, 0, 215, 217, - 3, 66, 33, 0, 216, 214, 1, 0, 0, 0, 216, 215, 1, 0, 0, 0, 217, 37, 1, 0, - 0, 0, 218, 225, 3, 32, 16, 0, 219, 225, 3, 40, 20, 0, 220, 225, 3, 42, - 21, 0, 221, 225, 5, 45, 0, 0, 222, 225, 3, 62, 31, 0, 223, 225, 3, 64, - 32, 0, 224, 218, 1, 0, 0, 0, 224, 219, 1, 0, 0, 0, 224, 220, 1, 0, 0, 0, - 224, 221, 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 224, 223, 1, 0, 0, 0, 225, - 39, 1, 0, 0, 0, 226, 238, 5, 36, 0, 0, 227, 232, 3, 38, 19, 0, 228, 229, - 5, 39, 0, 0, 229, 231, 3, 38, 19, 0, 230, 228, 1, 0, 0, 0, 231, 234, 1, - 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 236, 1, 0, 0, - 0, 234, 232, 1, 0, 0, 0, 235, 237, 5, 39, 0, 0, 236, 235, 1, 0, 0, 0, 236, - 237, 1, 0, 0, 0, 237, 239, 1, 0, 0, 0, 238, 227, 1, 0, 0, 0, 238, 239, - 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 5, 37, 0, 0, 241, 41, 1, 0, - 0, 0, 242, 252, 3, 44, 22, 0, 243, 252, 3, 46, 23, 0, 244, 252, 3, 48, - 24, 0, 245, 252, 3, 50, 25, 0, 246, 252, 3, 52, 26, 0, 247, 252, 3, 54, - 27, 0, 248, 252, 3, 56, 28, 0, 249, 252, 3, 58, 29, 0, 250, 252, 3, 60, - 30, 0, 251, 242, 1, 0, 0, 0, 251, 243, 1, 0, 0, 0, 251, 244, 1, 0, 0, 0, - 251, 245, 1, 0, 0, 0, 251, 246, 1, 0, 0, 0, 251, 247, 1, 0, 0, 0, 251, - 248, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 251, 250, 1, 0, 0, 0, 252, 43, 1, - 0, 0, 0, 253, 254, 5, 12, 0, 0, 254, 256, 5, 32, 0, 0, 255, 257, 3, 66, - 33, 0, 256, 255, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, - 258, 263, 5, 33, 0, 0, 259, 260, 5, 6, 0, 0, 260, 261, 5, 12, 0, 0, 261, - 263, 6, 22, -1, 0, 262, 253, 1, 0, 0, 0, 262, 259, 1, 0, 0, 0, 263, 45, - 1, 0, 0, 0, 264, 265, 5, 13, 0, 0, 265, 267, 5, 32, 0, 0, 266, 268, 3, - 66, 33, 0, 267, 266, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 269, 1, 0, - 0, 0, 269, 274, 5, 33, 0, 0, 270, 271, 5, 6, 0, 0, 271, 272, 5, 13, 0, - 0, 272, 274, 6, 23, -1, 0, 273, 264, 1, 0, 0, 0, 273, 270, 1, 0, 0, 0, - 274, 47, 1, 0, 0, 0, 275, 276, 5, 14, 0, 0, 276, 279, 5, 32, 0, 0, 277, - 280, 3, 66, 33, 0, 278, 280, 5, 46, 0, 0, 279, 277, 1, 0, 0, 0, 279, 278, - 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 286, 5, 33, - 0, 0, 282, 283, 5, 6, 0, 0, 283, 284, 5, 14, 0, 0, 284, 286, 6, 24, -1, - 0, 285, 275, 1, 0, 0, 0, 285, 282, 1, 0, 0, 0, 286, 49, 1, 0, 0, 0, 287, - 288, 5, 15, 0, 0, 288, 289, 5, 32, 0, 0, 289, 290, 3, 66, 33, 0, 290, 291, - 5, 33, 0, 0, 291, 51, 1, 0, 0, 0, 292, 293, 7, 2, 0, 0, 293, 296, 5, 32, - 0, 0, 294, 297, 5, 46, 0, 0, 295, 297, 3, 66, 33, 0, 296, 294, 1, 0, 0, - 0, 296, 295, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 299, 5, 33, 0, 0, 299, - 53, 1, 0, 0, 0, 300, 301, 7, 3, 0, 0, 301, 302, 5, 32, 0, 0, 302, 303, - 5, 46, 0, 0, 303, 304, 5, 33, 0, 0, 304, 55, 1, 0, 0, 0, 305, 306, 5, 20, - 0, 0, 306, 307, 5, 32, 0, 0, 307, 308, 5, 46, 0, 0, 308, 309, 5, 33, 0, - 0, 309, 57, 1, 0, 0, 0, 310, 311, 7, 4, 0, 0, 311, 312, 5, 32, 0, 0, 312, - 313, 3, 66, 33, 0, 313, 314, 5, 33, 0, 0, 314, 59, 1, 0, 0, 0, 315, 316, - 5, 23, 0, 0, 316, 317, 5, 32, 0, 0, 317, 318, 3, 32, 16, 0, 318, 319, 5, - 33, 0, 0, 319, 327, 1, 0, 0, 0, 320, 321, 5, 23, 0, 0, 321, 322, 5, 32, - 0, 0, 322, 323, 5, 46, 0, 0, 323, 324, 5, 39, 0, 0, 324, 325, 5, 46, 0, - 0, 325, 327, 5, 33, 0, 0, 326, 315, 1, 0, 0, 0, 326, 320, 1, 0, 0, 0, 327, - 61, 1, 0, 0, 0, 328, 329, 5, 24, 0, 0, 329, 330, 5, 32, 0, 0, 330, 333, - 3, 66, 33, 0, 331, 332, 5, 39, 0, 0, 332, 334, 3, 66, 33, 0, 333, 331, - 1, 0, 0, 0, 333, 334, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 336, 5, 33, - 0, 0, 336, 341, 1, 0, 0, 0, 337, 338, 5, 6, 0, 0, 338, 339, 5, 24, 0, 0, - 339, 341, 6, 31, -1, 0, 340, 328, 1, 0, 0, 0, 340, 337, 1, 0, 0, 0, 341, - 63, 1, 0, 0, 0, 342, 348, 3, 66, 33, 0, 343, 348, 5, 46, 0, 0, 344, 348, - 5, 7, 0, 0, 345, 348, 5, 8, 0, 0, 346, 348, 5, 9, 0, 0, 347, 342, 1, 0, - 0, 0, 347, 343, 1, 0, 0, 0, 347, 344, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, - 347, 346, 1, 0, 0, 0, 348, 65, 1, 0, 0, 0, 349, 350, 7, 5, 0, 0, 350, 67, - 1, 0, 0, 0, 351, 386, 5, 49, 0, 0, 352, 353, 5, 42, 0, 0, 353, 386, 5, - 49, 0, 0, 354, 386, 5, 1, 0, 0, 355, 386, 5, 2, 0, 0, 356, 386, 5, 3, 0, - 0, 357, 386, 5, 4, 0, 0, 358, 386, 5, 5, 0, 0, 359, 386, 5, 6, 0, 0, 360, - 386, 5, 7, 0, 0, 361, 386, 5, 8, 0, 0, 362, 386, 5, 9, 0, 0, 363, 386, - 5, 25, 0, 0, 364, 386, 5, 26, 0, 0, 365, 386, 5, 27, 0, 0, 366, 386, 5, - 28, 0, 0, 367, 386, 5, 29, 0, 0, 368, 386, 5, 30, 0, 0, 369, 386, 5, 31, - 0, 0, 370, 386, 5, 10, 0, 0, 371, 386, 5, 11, 0, 0, 372, 386, 5, 12, 0, - 0, 373, 386, 5, 13, 0, 0, 374, 386, 5, 14, 0, 0, 375, 386, 5, 15, 0, 0, - 376, 386, 5, 16, 0, 0, 377, 386, 5, 17, 0, 0, 378, 386, 5, 18, 0, 0, 379, - 386, 5, 19, 0, 0, 380, 386, 5, 20, 0, 0, 381, 386, 5, 21, 0, 0, 382, 386, - 5, 22, 0, 0, 383, 386, 5, 23, 0, 0, 384, 386, 5, 24, 0, 0, 385, 351, 1, - 0, 0, 0, 385, 352, 1, 0, 0, 0, 385, 354, 1, 0, 0, 0, 385, 355, 1, 0, 0, - 0, 385, 356, 1, 0, 0, 0, 385, 357, 1, 0, 0, 0, 385, 358, 1, 0, 0, 0, 385, - 359, 1, 0, 0, 0, 385, 360, 1, 0, 0, 0, 385, 361, 1, 0, 0, 0, 385, 362, - 1, 0, 0, 0, 385, 363, 1, 0, 0, 0, 385, 364, 1, 0, 0, 0, 385, 365, 1, 0, - 0, 0, 385, 366, 1, 0, 0, 0, 385, 367, 1, 0, 0, 0, 385, 368, 1, 0, 0, 0, - 385, 369, 1, 0, 0, 0, 385, 370, 1, 0, 0, 0, 385, 371, 1, 0, 0, 0, 385, - 372, 1, 0, 0, 0, 385, 373, 1, 0, 0, 0, 385, 374, 1, 0, 0, 0, 385, 375, - 1, 0, 0, 0, 385, 376, 1, 0, 0, 0, 385, 377, 1, 0, 0, 0, 385, 378, 1, 0, - 0, 0, 385, 379, 1, 0, 0, 0, 385, 380, 1, 0, 0, 0, 385, 381, 1, 0, 0, 0, - 385, 382, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 384, 1, 0, 0, 0, 386, - 69, 1, 0, 0, 0, 36, 73, 80, 84, 86, 92, 100, 106, 120, 128, 138, 143, 150, - 177, 186, 190, 200, 204, 206, 216, 224, 232, 236, 238, 251, 256, 262, 267, - 273, 279, 285, 296, 326, 333, 340, 347, 385, + 90, 1, 0, 0, 0, 93, 5, 1, 0, 0, 0, 94, 95, 5, 5, 0, 0, 95, 96, 5, 41, 0, + 0, 96, 97, 5, 11, 0, 0, 97, 98, 5, 33, 0, 0, 98, 100, 5, 34, 0, 0, 99, + 101, 3, 10, 5, 0, 100, 99, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 118, + 1, 0, 0, 0, 102, 103, 5, 5, 0, 0, 103, 104, 5, 41, 0, 0, 104, 105, 5, 12, + 0, 0, 105, 107, 5, 33, 0, 0, 106, 108, 3, 28, 14, 0, 107, 106, 1, 0, 0, + 0, 107, 108, 1, 0, 0, 0, 108, 109, 1, 0, 0, 0, 109, 111, 5, 34, 0, 0, 110, + 112, 3, 10, 5, 0, 111, 110, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 118, + 1, 0, 0, 0, 113, 114, 5, 5, 0, 0, 114, 115, 3, 8, 4, 0, 115, 116, 3, 10, + 5, 0, 116, 118, 1, 0, 0, 0, 117, 94, 1, 0, 0, 0, 117, 102, 1, 0, 0, 0, + 117, 113, 1, 0, 0, 0, 118, 7, 1, 0, 0, 0, 119, 120, 5, 41, 0, 0, 120, 132, + 3, 68, 34, 0, 121, 122, 5, 37, 0, 0, 122, 123, 3, 66, 33, 0, 123, 124, + 5, 38, 0, 0, 124, 132, 1, 0, 0, 0, 125, 126, 5, 41, 0, 0, 126, 127, 5, + 10, 0, 0, 127, 128, 5, 33, 0, 0, 128, 129, 3, 66, 33, 0, 129, 130, 5, 34, + 0, 0, 130, 132, 1, 0, 0, 0, 131, 119, 1, 0, 0, 0, 131, 121, 1, 0, 0, 0, + 131, 125, 1, 0, 0, 0, 132, 9, 1, 0, 0, 0, 133, 134, 5, 41, 0, 0, 134, 139, + 3, 12, 6, 0, 135, 136, 5, 41, 0, 0, 136, 138, 3, 12, 6, 0, 137, 135, 1, + 0, 0, 0, 138, 141, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, + 0, 140, 11, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 142, 150, 3, 14, 7, 0, 143, + 150, 3, 16, 8, 0, 144, 150, 3, 18, 9, 0, 145, 150, 3, 20, 10, 0, 146, 150, + 3, 22, 11, 0, 147, 150, 3, 24, 12, 0, 148, 150, 3, 26, 13, 0, 149, 142, + 1, 0, 0, 0, 149, 143, 1, 0, 0, 0, 149, 144, 1, 0, 0, 0, 149, 145, 1, 0, + 0, 0, 149, 146, 1, 0, 0, 0, 149, 147, 1, 0, 0, 0, 149, 148, 1, 0, 0, 0, + 150, 13, 1, 0, 0, 0, 151, 152, 5, 26, 0, 0, 152, 154, 5, 33, 0, 0, 153, + 155, 3, 30, 15, 0, 154, 153, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 156, + 1, 0, 0, 0, 156, 157, 5, 34, 0, 0, 157, 15, 1, 0, 0, 0, 158, 159, 5, 27, + 0, 0, 159, 161, 5, 33, 0, 0, 160, 162, 3, 30, 15, 0, 161, 160, 1, 0, 0, + 0, 161, 162, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 164, 5, 34, 0, 0, 164, + 17, 1, 0, 0, 0, 165, 166, 5, 28, 0, 0, 166, 167, 5, 33, 0, 0, 167, 168, + 3, 32, 16, 0, 168, 169, 5, 34, 0, 0, 169, 19, 1, 0, 0, 0, 170, 171, 5, + 29, 0, 0, 171, 172, 5, 33, 0, 0, 172, 173, 5, 47, 0, 0, 173, 174, 5, 34, + 0, 0, 174, 21, 1, 0, 0, 0, 175, 176, 5, 30, 0, 0, 176, 177, 5, 33, 0, 0, + 177, 178, 5, 47, 0, 0, 178, 179, 5, 34, 0, 0, 179, 23, 1, 0, 0, 0, 180, + 181, 7, 1, 0, 0, 181, 182, 5, 33, 0, 0, 182, 183, 3, 32, 16, 0, 183, 184, + 5, 34, 0, 0, 184, 25, 1, 0, 0, 0, 185, 186, 3, 68, 34, 0, 186, 188, 5, + 33, 0, 0, 187, 189, 3, 28, 14, 0, 188, 187, 1, 0, 0, 0, 188, 189, 1, 0, + 0, 0, 189, 190, 1, 0, 0, 0, 190, 191, 5, 34, 0, 0, 191, 27, 1, 0, 0, 0, + 192, 197, 3, 30, 15, 0, 193, 194, 5, 40, 0, 0, 194, 196, 3, 30, 15, 0, + 195, 193, 1, 0, 0, 0, 196, 199, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 197, + 198, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0, 199, 197, 1, 0, 0, 0, 200, 202, + 5, 40, 0, 0, 201, 200, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 29, 1, 0, + 0, 0, 203, 204, 3, 38, 19, 0, 204, 31, 1, 0, 0, 0, 205, 217, 5, 35, 0, + 0, 206, 211, 3, 34, 17, 0, 207, 208, 5, 40, 0, 0, 208, 210, 3, 34, 17, + 0, 209, 207, 1, 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 211, + 212, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 214, 216, + 5, 40, 0, 0, 215, 214, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 218, 1, 0, + 0, 0, 217, 206, 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, + 219, 220, 5, 36, 0, 0, 220, 33, 1, 0, 0, 0, 221, 222, 3, 36, 18, 0, 222, + 223, 5, 39, 0, 0, 223, 224, 3, 38, 19, 0, 224, 35, 1, 0, 0, 0, 225, 228, + 3, 68, 34, 0, 226, 228, 3, 66, 33, 0, 227, 225, 1, 0, 0, 0, 227, 226, 1, + 0, 0, 0, 228, 37, 1, 0, 0, 0, 229, 236, 3, 32, 16, 0, 230, 236, 3, 40, + 20, 0, 231, 236, 3, 42, 21, 0, 232, 236, 5, 46, 0, 0, 233, 236, 3, 62, + 31, 0, 234, 236, 3, 64, 32, 0, 235, 229, 1, 0, 0, 0, 235, 230, 1, 0, 0, + 0, 235, 231, 1, 0, 0, 0, 235, 232, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, + 234, 1, 0, 0, 0, 236, 39, 1, 0, 0, 0, 237, 249, 5, 37, 0, 0, 238, 243, + 3, 38, 19, 0, 239, 240, 5, 40, 0, 0, 240, 242, 3, 38, 19, 0, 241, 239, + 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, + 0, 0, 244, 247, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 248, 5, 40, 0, 0, + 247, 246, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 250, 1, 0, 0, 0, 249, + 238, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 252, + 5, 38, 0, 0, 252, 41, 1, 0, 0, 0, 253, 263, 3, 44, 22, 0, 254, 263, 3, + 46, 23, 0, 255, 263, 3, 48, 24, 0, 256, 263, 3, 50, 25, 0, 257, 263, 3, + 52, 26, 0, 258, 263, 3, 54, 27, 0, 259, 263, 3, 56, 28, 0, 260, 263, 3, + 58, 29, 0, 261, 263, 3, 60, 30, 0, 262, 253, 1, 0, 0, 0, 262, 254, 1, 0, + 0, 0, 262, 255, 1, 0, 0, 0, 262, 256, 1, 0, 0, 0, 262, 257, 1, 0, 0, 0, + 262, 258, 1, 0, 0, 0, 262, 259, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, + 261, 1, 0, 0, 0, 263, 43, 1, 0, 0, 0, 264, 265, 5, 13, 0, 0, 265, 267, + 5, 33, 0, 0, 266, 268, 3, 66, 33, 0, 267, 266, 1, 0, 0, 0, 267, 268, 1, + 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 274, 5, 34, 0, 0, 270, 271, 5, 6, 0, + 0, 271, 272, 5, 13, 0, 0, 272, 274, 6, 22, -1, 0, 273, 264, 1, 0, 0, 0, + 273, 270, 1, 0, 0, 0, 274, 45, 1, 0, 0, 0, 275, 276, 5, 14, 0, 0, 276, + 278, 5, 33, 0, 0, 277, 279, 3, 66, 33, 0, 278, 277, 1, 0, 0, 0, 278, 279, + 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 285, 5, 34, 0, 0, 281, 282, 5, 6, + 0, 0, 282, 283, 5, 14, 0, 0, 283, 285, 6, 23, -1, 0, 284, 275, 1, 0, 0, + 0, 284, 281, 1, 0, 0, 0, 285, 47, 1, 0, 0, 0, 286, 287, 5, 15, 0, 0, 287, + 290, 5, 33, 0, 0, 288, 291, 3, 66, 33, 0, 289, 291, 5, 47, 0, 0, 290, 288, + 1, 0, 0, 0, 290, 289, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 292, 1, 0, + 0, 0, 292, 297, 5, 34, 0, 0, 293, 294, 5, 6, 0, 0, 294, 295, 5, 15, 0, + 0, 295, 297, 6, 24, -1, 0, 296, 286, 1, 0, 0, 0, 296, 293, 1, 0, 0, 0, + 297, 49, 1, 0, 0, 0, 298, 299, 5, 16, 0, 0, 299, 300, 5, 33, 0, 0, 300, + 301, 3, 66, 33, 0, 301, 302, 5, 34, 0, 0, 302, 51, 1, 0, 0, 0, 303, 304, + 7, 2, 0, 0, 304, 307, 5, 33, 0, 0, 305, 308, 5, 47, 0, 0, 306, 308, 3, + 66, 33, 0, 307, 305, 1, 0, 0, 0, 307, 306, 1, 0, 0, 0, 308, 309, 1, 0, + 0, 0, 309, 310, 5, 34, 0, 0, 310, 53, 1, 0, 0, 0, 311, 312, 7, 3, 0, 0, + 312, 313, 5, 33, 0, 0, 313, 314, 5, 47, 0, 0, 314, 315, 5, 34, 0, 0, 315, + 55, 1, 0, 0, 0, 316, 317, 5, 21, 0, 0, 317, 318, 5, 33, 0, 0, 318, 319, + 5, 47, 0, 0, 319, 320, 5, 34, 0, 0, 320, 57, 1, 0, 0, 0, 321, 322, 7, 4, + 0, 0, 322, 323, 5, 33, 0, 0, 323, 324, 3, 66, 33, 0, 324, 325, 5, 34, 0, + 0, 325, 59, 1, 0, 0, 0, 326, 327, 5, 24, 0, 0, 327, 328, 5, 33, 0, 0, 328, + 329, 3, 32, 16, 0, 329, 330, 5, 34, 0, 0, 330, 338, 1, 0, 0, 0, 331, 332, + 5, 24, 0, 0, 332, 333, 5, 33, 0, 0, 333, 334, 5, 47, 0, 0, 334, 335, 5, + 40, 0, 0, 335, 336, 5, 47, 0, 0, 336, 338, 5, 34, 0, 0, 337, 326, 1, 0, + 0, 0, 337, 331, 1, 0, 0, 0, 338, 61, 1, 0, 0, 0, 339, 340, 5, 25, 0, 0, + 340, 341, 5, 33, 0, 0, 341, 344, 3, 66, 33, 0, 342, 343, 5, 40, 0, 0, 343, + 345, 3, 66, 33, 0, 344, 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, + 1, 0, 0, 0, 346, 347, 5, 34, 0, 0, 347, 352, 1, 0, 0, 0, 348, 349, 5, 6, + 0, 0, 349, 350, 5, 25, 0, 0, 350, 352, 6, 31, -1, 0, 351, 339, 1, 0, 0, + 0, 351, 348, 1, 0, 0, 0, 352, 63, 1, 0, 0, 0, 353, 359, 3, 66, 33, 0, 354, + 359, 5, 47, 0, 0, 355, 359, 5, 7, 0, 0, 356, 359, 5, 8, 0, 0, 357, 359, + 5, 9, 0, 0, 358, 353, 1, 0, 0, 0, 358, 354, 1, 0, 0, 0, 358, 355, 1, 0, + 0, 0, 358, 356, 1, 0, 0, 0, 358, 357, 1, 0, 0, 0, 359, 65, 1, 0, 0, 0, + 360, 361, 7, 5, 0, 0, 361, 67, 1, 0, 0, 0, 362, 398, 5, 50, 0, 0, 363, + 364, 5, 43, 0, 0, 364, 398, 5, 50, 0, 0, 365, 398, 5, 1, 0, 0, 366, 398, + 5, 2, 0, 0, 367, 398, 5, 3, 0, 0, 368, 398, 5, 4, 0, 0, 369, 398, 5, 5, + 0, 0, 370, 398, 5, 6, 0, 0, 371, 398, 5, 7, 0, 0, 372, 398, 5, 8, 0, 0, + 373, 398, 5, 9, 0, 0, 374, 398, 5, 26, 0, 0, 375, 398, 5, 27, 0, 0, 376, + 398, 5, 28, 0, 0, 377, 398, 5, 29, 0, 0, 378, 398, 5, 30, 0, 0, 379, 398, + 5, 31, 0, 0, 380, 398, 5, 32, 0, 0, 381, 398, 5, 10, 0, 0, 382, 398, 5, + 11, 0, 0, 383, 398, 5, 12, 0, 0, 384, 398, 5, 13, 0, 0, 385, 398, 5, 14, + 0, 0, 386, 398, 5, 15, 0, 0, 387, 398, 5, 16, 0, 0, 388, 398, 5, 17, 0, + 0, 389, 398, 5, 18, 0, 0, 390, 398, 5, 19, 0, 0, 391, 398, 5, 20, 0, 0, + 392, 398, 5, 21, 0, 0, 393, 398, 5, 22, 0, 0, 394, 398, 5, 23, 0, 0, 395, + 398, 5, 24, 0, 0, 396, 398, 5, 25, 0, 0, 397, 362, 1, 0, 0, 0, 397, 363, + 1, 0, 0, 0, 397, 365, 1, 0, 0, 0, 397, 366, 1, 0, 0, 0, 397, 367, 1, 0, + 0, 0, 397, 368, 1, 0, 0, 0, 397, 369, 1, 0, 0, 0, 397, 370, 1, 0, 0, 0, + 397, 371, 1, 0, 0, 0, 397, 372, 1, 0, 0, 0, 397, 373, 1, 0, 0, 0, 397, + 374, 1, 0, 0, 0, 397, 375, 1, 0, 0, 0, 397, 376, 1, 0, 0, 0, 397, 377, + 1, 0, 0, 0, 397, 378, 1, 0, 0, 0, 397, 379, 1, 0, 0, 0, 397, 380, 1, 0, + 0, 0, 397, 381, 1, 0, 0, 0, 397, 382, 1, 0, 0, 0, 397, 383, 1, 0, 0, 0, + 397, 384, 1, 0, 0, 0, 397, 385, 1, 0, 0, 0, 397, 386, 1, 0, 0, 0, 397, + 387, 1, 0, 0, 0, 397, 388, 1, 0, 0, 0, 397, 389, 1, 0, 0, 0, 397, 390, + 1, 0, 0, 0, 397, 391, 1, 0, 0, 0, 397, 392, 1, 0, 0, 0, 397, 393, 1, 0, + 0, 0, 397, 394, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 396, 1, 0, 0, 0, + 398, 69, 1, 0, 0, 0, 38, 73, 80, 84, 86, 92, 100, 107, 111, 117, 131, 139, + 149, 154, 161, 188, 197, 201, 211, 215, 217, 227, 235, 243, 247, 249, 262, + 267, 273, 278, 284, 290, 296, 307, 337, 344, 351, 358, 397, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -291,45 +297,46 @@ const ( MongoShellParserNULL = 9 MongoShellParserGET_COLLECTION = 10 MongoShellParserGET_COLLECTION_NAMES = 11 - MongoShellParserOBJECT_ID = 12 - MongoShellParserISO_DATE = 13 - MongoShellParserDATE = 14 - MongoShellParserUUID = 15 - MongoShellParserLONG = 16 - MongoShellParserNUMBER_LONG = 17 - MongoShellParserINT32 = 18 - MongoShellParserNUMBER_INT = 19 - MongoShellParserDOUBLE = 20 - MongoShellParserDECIMAL128 = 21 - MongoShellParserNUMBER_DECIMAL = 22 - MongoShellParserTIMESTAMP = 23 - MongoShellParserREG_EXP = 24 - MongoShellParserFIND = 25 - MongoShellParserFIND_ONE = 26 - MongoShellParserSORT = 27 - MongoShellParserLIMIT = 28 - MongoShellParserSKIP_ = 29 - MongoShellParserPROJECTION = 30 - MongoShellParserPROJECT = 31 - MongoShellParserLPAREN = 32 - MongoShellParserRPAREN = 33 - MongoShellParserLBRACE = 34 - MongoShellParserRBRACE = 35 - MongoShellParserLBRACKET = 36 - MongoShellParserRBRACKET = 37 - MongoShellParserCOLON = 38 - MongoShellParserCOMMA = 39 - MongoShellParserDOT = 40 - MongoShellParserSEMI = 41 - MongoShellParserDOLLAR = 42 - MongoShellParserLINE_COMMENT = 43 - MongoShellParserBLOCK_COMMENT = 44 - MongoShellParserREGEX_LITERAL = 45 - MongoShellParserNUMBER = 46 - MongoShellParserDOUBLE_QUOTED_STRING = 47 - MongoShellParserSINGLE_QUOTED_STRING = 48 - MongoShellParserIDENTIFIER = 49 - MongoShellParserWS = 50 + MongoShellParserGET_COLLECTION_INFOS = 12 + MongoShellParserOBJECT_ID = 13 + MongoShellParserISO_DATE = 14 + MongoShellParserDATE = 15 + MongoShellParserUUID = 16 + MongoShellParserLONG = 17 + MongoShellParserNUMBER_LONG = 18 + MongoShellParserINT32 = 19 + MongoShellParserNUMBER_INT = 20 + MongoShellParserDOUBLE = 21 + MongoShellParserDECIMAL128 = 22 + MongoShellParserNUMBER_DECIMAL = 23 + MongoShellParserTIMESTAMP = 24 + MongoShellParserREG_EXP = 25 + MongoShellParserFIND = 26 + MongoShellParserFIND_ONE = 27 + MongoShellParserSORT = 28 + MongoShellParserLIMIT = 29 + MongoShellParserSKIP_ = 30 + MongoShellParserPROJECTION = 31 + MongoShellParserPROJECT = 32 + MongoShellParserLPAREN = 33 + MongoShellParserRPAREN = 34 + MongoShellParserLBRACE = 35 + MongoShellParserRBRACE = 36 + MongoShellParserLBRACKET = 37 + MongoShellParserRBRACKET = 38 + MongoShellParserCOLON = 39 + MongoShellParserCOMMA = 40 + MongoShellParserDOT = 41 + MongoShellParserSEMI = 42 + MongoShellParserDOLLAR = 43 + MongoShellParserLINE_COMMENT = 44 + MongoShellParserBLOCK_COMMENT = 45 + MongoShellParserREGEX_LITERAL = 46 + MongoShellParserNUMBER = 47 + MongoShellParserDOUBLE_QUOTED_STRING = 48 + MongoShellParserSINGLE_QUOTED_STRING = 49 + MongoShellParserIDENTIFIER = 50 + MongoShellParserWS = 51 ) // MongoShellParser rules. @@ -1168,18 +1175,110 @@ func (s *GetCollectionNamesContext) Accept(visitor antlr.ParseTreeVisitor) inter } } +type GetCollectionInfosContext struct { + DbStatementContext +} + +func NewGetCollectionInfosContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *GetCollectionInfosContext { + var p = new(GetCollectionInfosContext) + + InitEmptyDbStatementContext(&p.DbStatementContext) + p.parser = parser + p.CopyAll(ctx.(*DbStatementContext)) + + return p +} + +func (s *GetCollectionInfosContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *GetCollectionInfosContext) DB() antlr.TerminalNode { + return s.GetToken(MongoShellParserDB, 0) +} + +func (s *GetCollectionInfosContext) DOT() antlr.TerminalNode { + return s.GetToken(MongoShellParserDOT, 0) +} + +func (s *GetCollectionInfosContext) GET_COLLECTION_INFOS() antlr.TerminalNode { + return s.GetToken(MongoShellParserGET_COLLECTION_INFOS, 0) +} + +func (s *GetCollectionInfosContext) LPAREN() antlr.TerminalNode { + return s.GetToken(MongoShellParserLPAREN, 0) +} + +func (s *GetCollectionInfosContext) RPAREN() antlr.TerminalNode { + return s.GetToken(MongoShellParserRPAREN, 0) +} + +func (s *GetCollectionInfosContext) Arguments() IArgumentsContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IArgumentsContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IArgumentsContext) +} + +func (s *GetCollectionInfosContext) MethodChain() IMethodChainContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IMethodChainContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IMethodChainContext) +} + +func (s *GetCollectionInfosContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(MongoShellParserListener); ok { + listenerT.EnterGetCollectionInfos(s) + } +} + +func (s *GetCollectionInfosContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(MongoShellParserListener); ok { + listenerT.ExitGetCollectionInfos(s) + } +} + +func (s *GetCollectionInfosContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case MongoShellParserVisitor: + return t.VisitGetCollectionInfos(s) + + default: + return t.VisitChildren(s) + } +} + func (p *MongoShellParser) DbStatement() (localctx IDbStatementContext) { localctx = NewDbStatementContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 6, MongoShellParserRULE_dbStatement) var _la int - p.SetState(106) + p.SetState(117) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 6, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 8, p.GetParserRuleContext()) { case 1: localctx = NewGetCollectionNamesContext(p, localctx) p.EnterOuterAlt(localctx, 1) @@ -1239,7 +1338,7 @@ func (p *MongoShellParser) DbStatement() (localctx IDbStatementContext) { } case 2: - localctx = NewCollectionOperationContext(p, localctx) + localctx = NewGetCollectionInfosContext(p, localctx) p.EnterOuterAlt(localctx, 2) { p.SetState(102) @@ -1251,10 +1350,82 @@ func (p *MongoShellParser) DbStatement() (localctx IDbStatementContext) { } { p.SetState(103) - p.CollectionAccess() + p.Match(MongoShellParserDOT) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } } { p.SetState(104) + p.Match(MongoShellParserGET_COLLECTION_INFOS) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(105) + p.Match(MongoShellParserLPAREN) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + p.SetState(107) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1055703028458432) != 0 { + { + p.SetState(106) + p.Arguments() + } + + } + { + p.SetState(109) + p.Match(MongoShellParserRPAREN) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + p.SetState(111) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + + if _la == MongoShellParserDOT { + { + p.SetState(110) + p.MethodChain() + } + + } + + case 3: + localctx = NewCollectionOperationContext(p, localctx) + p.EnterOuterAlt(localctx, 3) + { + p.SetState(113) + p.Match(MongoShellParserDB) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(114) + p.CollectionAccess() + } + { + p.SetState(115) p.MethodChain() } @@ -1528,18 +1699,18 @@ func (s *BracketAccessContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext) { localctx = NewCollectionAccessContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 8, MongoShellParserRULE_collectionAccess) - p.SetState(120) + p.SetState(131) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 7, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 9, p.GetParserRuleContext()) { case 1: localctx = NewDotAccessContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(108) + p.SetState(119) p.Match(MongoShellParserDOT) if p.HasError() { // Recognition error - abort rule @@ -1547,7 +1718,7 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext } } { - p.SetState(109) + p.SetState(120) p.Identifier() } @@ -1555,7 +1726,7 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext localctx = NewBracketAccessContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(110) + p.SetState(121) p.Match(MongoShellParserLBRACKET) if p.HasError() { // Recognition error - abort rule @@ -1563,11 +1734,11 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext } } { - p.SetState(111) + p.SetState(122) p.StringLiteral() } { - p.SetState(112) + p.SetState(123) p.Match(MongoShellParserRBRACKET) if p.HasError() { // Recognition error - abort rule @@ -1579,7 +1750,7 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext localctx = NewGetCollectionAccessContext(p, localctx) p.EnterOuterAlt(localctx, 3) { - p.SetState(114) + p.SetState(125) p.Match(MongoShellParserDOT) if p.HasError() { // Recognition error - abort rule @@ -1587,7 +1758,7 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext } } { - p.SetState(115) + p.SetState(126) p.Match(MongoShellParserGET_COLLECTION) if p.HasError() { // Recognition error - abort rule @@ -1595,7 +1766,7 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext } } { - p.SetState(116) + p.SetState(127) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -1603,11 +1774,11 @@ func (p *MongoShellParser) CollectionAccess() (localctx ICollectionAccessContext } } { - p.SetState(117) + p.SetState(128) p.StringLiteral() } { - p.SetState(118) + p.SetState(129) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -1767,7 +1938,7 @@ func (p *MongoShellParser) MethodChain() (localctx IMethodChainContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(122) + p.SetState(133) p.Match(MongoShellParserDOT) if p.HasError() { // Recognition error - abort rule @@ -1775,10 +1946,10 @@ func (p *MongoShellParser) MethodChain() (localctx IMethodChainContext) { } } { - p.SetState(123) + p.SetState(134) p.MethodCall() } - p.SetState(128) + p.SetState(139) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -1787,7 +1958,7 @@ func (p *MongoShellParser) MethodChain() (localctx IMethodChainContext) { for _la == MongoShellParserDOT { { - p.SetState(124) + p.SetState(135) p.Match(MongoShellParserDOT) if p.HasError() { // Recognition error - abort rule @@ -1795,11 +1966,11 @@ func (p *MongoShellParser) MethodChain() (localctx IMethodChainContext) { } } { - p.SetState(125) + p.SetState(136) p.MethodCall() } - p.SetState(130) + p.SetState(141) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2017,59 +2188,59 @@ func (s *MethodCallContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *MongoShellParser) MethodCall() (localctx IMethodCallContext) { localctx = NewMethodCallContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 12, MongoShellParserRULE_methodCall) - p.SetState(138) + p.SetState(149) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 9, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 11, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(131) + p.SetState(142) p.FindMethod() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(132) + p.SetState(143) p.FindOneMethod() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(133) + p.SetState(144) p.SortMethod() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(134) + p.SetState(145) p.LimitMethod() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(135) + p.SetState(146) p.SkipMethod() } case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(136) + p.SetState(147) p.ProjectionMethod() } case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(137) + p.SetState(148) p.GenericMethod() } @@ -2204,7 +2375,7 @@ func (p *MongoShellParser) FindMethod() (localctx IFindMethodContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(140) + p.SetState(151) p.Match(MongoShellParserFIND) if p.HasError() { // Recognition error - abort rule @@ -2212,29 +2383,29 @@ func (p *MongoShellParser) FindMethod() (localctx IFindMethodContext) { } } { - p.SetState(141) + p.SetState(152) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(143) + p.SetState(154) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&527851514229696) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1055703028458432) != 0 { { - p.SetState(142) + p.SetState(153) p.Argument() } } { - p.SetState(145) + p.SetState(156) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -2369,7 +2540,7 @@ func (p *MongoShellParser) FindOneMethod() (localctx IFindOneMethodContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(147) + p.SetState(158) p.Match(MongoShellParserFIND_ONE) if p.HasError() { // Recognition error - abort rule @@ -2377,29 +2548,29 @@ func (p *MongoShellParser) FindOneMethod() (localctx IFindOneMethodContext) { } } { - p.SetState(148) + p.SetState(159) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(150) + p.SetState(161) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&527851514229696) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1055703028458432) != 0 { { - p.SetState(149) + p.SetState(160) p.Argument() } } { - p.SetState(152) + p.SetState(163) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -2532,7 +2703,7 @@ func (p *MongoShellParser) SortMethod() (localctx ISortMethodContext) { p.EnterRule(localctx, 18, MongoShellParserRULE_sortMethod) p.EnterOuterAlt(localctx, 1) { - p.SetState(154) + p.SetState(165) p.Match(MongoShellParserSORT) if p.HasError() { // Recognition error - abort rule @@ -2540,7 +2711,7 @@ func (p *MongoShellParser) SortMethod() (localctx ISortMethodContext) { } } { - p.SetState(155) + p.SetState(166) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -2548,11 +2719,11 @@ func (p *MongoShellParser) SortMethod() (localctx ISortMethodContext) { } } { - p.SetState(156) + p.SetState(167) p.Document() } { - p.SetState(157) + p.SetState(168) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -2673,7 +2844,7 @@ func (p *MongoShellParser) LimitMethod() (localctx ILimitMethodContext) { p.EnterRule(localctx, 20, MongoShellParserRULE_limitMethod) p.EnterOuterAlt(localctx, 1) { - p.SetState(159) + p.SetState(170) p.Match(MongoShellParserLIMIT) if p.HasError() { // Recognition error - abort rule @@ -2681,7 +2852,7 @@ func (p *MongoShellParser) LimitMethod() (localctx ILimitMethodContext) { } } { - p.SetState(160) + p.SetState(171) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -2689,7 +2860,7 @@ func (p *MongoShellParser) LimitMethod() (localctx ILimitMethodContext) { } } { - p.SetState(161) + p.SetState(172) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -2697,7 +2868,7 @@ func (p *MongoShellParser) LimitMethod() (localctx ILimitMethodContext) { } } { - p.SetState(162) + p.SetState(173) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -2818,7 +2989,7 @@ func (p *MongoShellParser) SkipMethod() (localctx ISkipMethodContext) { p.EnterRule(localctx, 22, MongoShellParserRULE_skipMethod) p.EnterOuterAlt(localctx, 1) { - p.SetState(164) + p.SetState(175) p.Match(MongoShellParserSKIP_) if p.HasError() { // Recognition error - abort rule @@ -2826,7 +2997,7 @@ func (p *MongoShellParser) SkipMethod() (localctx ISkipMethodContext) { } } { - p.SetState(165) + p.SetState(176) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -2834,7 +3005,7 @@ func (p *MongoShellParser) SkipMethod() (localctx ISkipMethodContext) { } } { - p.SetState(166) + p.SetState(177) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -2842,7 +3013,7 @@ func (p *MongoShellParser) SkipMethod() (localctx ISkipMethodContext) { } } { - p.SetState(167) + p.SetState(178) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -2982,7 +3153,7 @@ func (p *MongoShellParser) ProjectionMethod() (localctx IProjectionMethodContext p.EnterOuterAlt(localctx, 1) { - p.SetState(169) + p.SetState(180) _la = p.GetTokenStream().LA(1) if !(_la == MongoShellParserPROJECTION || _la == MongoShellParserPROJECT) { @@ -2993,7 +3164,7 @@ func (p *MongoShellParser) ProjectionMethod() (localctx IProjectionMethodContext } } { - p.SetState(170) + p.SetState(181) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -3001,11 +3172,11 @@ func (p *MongoShellParser) ProjectionMethod() (localctx IProjectionMethodContext } } { - p.SetState(171) + p.SetState(182) p.Document() } { - p.SetState(172) + p.SetState(183) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -3152,33 +3323,33 @@ func (p *MongoShellParser) GenericMethod() (localctx IGenericMethodContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(174) + p.SetState(185) p.Identifier() } { - p.SetState(175) + p.SetState(186) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(177) + p.SetState(188) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&527851514229696) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1055703028458432) != 0 { { - p.SetState(176) + p.SetState(187) p.Arguments() } } { - p.SetState(179) + p.SetState(190) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -3336,22 +3507,22 @@ func (p *MongoShellParser) Arguments() (localctx IArgumentsContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(181) + p.SetState(192) p.Argument() } - p.SetState(186) + p.SetState(197) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 13, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 15, p.GetParserRuleContext()) if p.HasError() { goto errorExit } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(182) + p.SetState(193) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -3359,22 +3530,22 @@ func (p *MongoShellParser) Arguments() (localctx IArgumentsContext) { } } { - p.SetState(183) + p.SetState(194) p.Argument() } } - p.SetState(188) + p.SetState(199) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 13, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 15, p.GetParserRuleContext()) if p.HasError() { goto errorExit } } - p.SetState(190) + p.SetState(201) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3383,7 +3554,7 @@ func (p *MongoShellParser) Arguments() (localctx IArgumentsContext) { if _la == MongoShellParserCOMMA { { - p.SetState(189) + p.SetState(200) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -3503,7 +3674,7 @@ func (p *MongoShellParser) Argument() (localctx IArgumentContext) { p.EnterRule(localctx, 30, MongoShellParserRULE_argument) p.EnterOuterAlt(localctx, 1) { - p.SetState(192) + p.SetState(203) p.Value() } @@ -3667,38 +3838,38 @@ func (p *MongoShellParser) Document() (localctx IDocumentContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(194) + p.SetState(205) p.Match(MongoShellParserLBRACE) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(206) + p.SetState(217) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&989564759965694) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1979129519931390) != 0 { { - p.SetState(195) + p.SetState(206) p.Pair() } - p.SetState(200) + p.SetState(211) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 15, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 17, p.GetParserRuleContext()) if p.HasError() { goto errorExit } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(196) + p.SetState(207) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -3706,22 +3877,22 @@ func (p *MongoShellParser) Document() (localctx IDocumentContext) { } } { - p.SetState(197) + p.SetState(208) p.Pair() } } - p.SetState(202) + p.SetState(213) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 15, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 17, p.GetParserRuleContext()) if p.HasError() { goto errorExit } } - p.SetState(204) + p.SetState(215) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3730,7 +3901,7 @@ func (p *MongoShellParser) Document() (localctx IDocumentContext) { if _la == MongoShellParserCOMMA { { - p.SetState(203) + p.SetState(214) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -3742,7 +3913,7 @@ func (p *MongoShellParser) Document() (localctx IDocumentContext) { } { - p.SetState(208) + p.SetState(219) p.Match(MongoShellParserRBRACE) if p.HasError() { // Recognition error - abort rule @@ -3882,11 +4053,11 @@ func (p *MongoShellParser) Pair() (localctx IPairContext) { p.EnterRule(localctx, 34, MongoShellParserRULE_pair) p.EnterOuterAlt(localctx, 1) { - p.SetState(210) + p.SetState(221) p.Key() } { - p.SetState(211) + p.SetState(222) p.Match(MongoShellParserCOLON) if p.HasError() { // Recognition error - abort rule @@ -3894,7 +4065,7 @@ func (p *MongoShellParser) Pair() (localctx IPairContext) { } } { - p.SetState(212) + p.SetState(223) p.Value() } @@ -4080,18 +4251,18 @@ func (s *UnquotedKeyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *MongoShellParser) Key() (localctx IKeyContext) { localctx = NewKeyContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 36, MongoShellParserRULE_key) - p.SetState(216) + p.SetState(227) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } switch p.GetTokenStream().LA(1) { - case MongoShellParserSHOW, MongoShellParserDBS, MongoShellParserDATABASES, MongoShellParserCOLLECTIONS, MongoShellParserDB, MongoShellParserNEW, MongoShellParserTRUE, MongoShellParserFALSE, MongoShellParserNULL, MongoShellParserGET_COLLECTION, MongoShellParserGET_COLLECTION_NAMES, MongoShellParserOBJECT_ID, MongoShellParserISO_DATE, MongoShellParserDATE, MongoShellParserUUID, MongoShellParserLONG, MongoShellParserNUMBER_LONG, MongoShellParserINT32, MongoShellParserNUMBER_INT, MongoShellParserDOUBLE, MongoShellParserDECIMAL128, MongoShellParserNUMBER_DECIMAL, MongoShellParserTIMESTAMP, MongoShellParserREG_EXP, MongoShellParserFIND, MongoShellParserFIND_ONE, MongoShellParserSORT, MongoShellParserLIMIT, MongoShellParserSKIP_, MongoShellParserPROJECTION, MongoShellParserPROJECT, MongoShellParserDOLLAR, MongoShellParserIDENTIFIER: + case MongoShellParserSHOW, MongoShellParserDBS, MongoShellParserDATABASES, MongoShellParserCOLLECTIONS, MongoShellParserDB, MongoShellParserNEW, MongoShellParserTRUE, MongoShellParserFALSE, MongoShellParserNULL, MongoShellParserGET_COLLECTION, MongoShellParserGET_COLLECTION_NAMES, MongoShellParserGET_COLLECTION_INFOS, MongoShellParserOBJECT_ID, MongoShellParserISO_DATE, MongoShellParserDATE, MongoShellParserUUID, MongoShellParserLONG, MongoShellParserNUMBER_LONG, MongoShellParserINT32, MongoShellParserNUMBER_INT, MongoShellParserDOUBLE, MongoShellParserDECIMAL128, MongoShellParserNUMBER_DECIMAL, MongoShellParserTIMESTAMP, MongoShellParserREG_EXP, MongoShellParserFIND, MongoShellParserFIND_ONE, MongoShellParserSORT, MongoShellParserLIMIT, MongoShellParserSKIP_, MongoShellParserPROJECTION, MongoShellParserPROJECT, MongoShellParserDOLLAR, MongoShellParserIDENTIFIER: localctx = NewUnquotedKeyContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(214) + p.SetState(225) p.Identifier() } @@ -4099,7 +4270,7 @@ func (p *MongoShellParser) Key() (localctx IKeyContext) { localctx = NewQuotedKeyContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(215) + p.SetState(226) p.StringLiteral() } @@ -4502,18 +4673,18 @@ func (s *LiteralValueContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *MongoShellParser) Value() (localctx IValueContext) { localctx = NewValueContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 38, MongoShellParserRULE_value) - p.SetState(224) + p.SetState(235) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 19, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 21, p.GetParserRuleContext()) { case 1: localctx = NewDocumentValueContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(218) + p.SetState(229) p.Document() } @@ -4521,7 +4692,7 @@ func (p *MongoShellParser) Value() (localctx IValueContext) { localctx = NewArrayValueContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(219) + p.SetState(230) p.Array() } @@ -4529,7 +4700,7 @@ func (p *MongoShellParser) Value() (localctx IValueContext) { localctx = NewHelperValueContext(p, localctx) p.EnterOuterAlt(localctx, 3) { - p.SetState(220) + p.SetState(231) p.HelperFunction() } @@ -4537,7 +4708,7 @@ func (p *MongoShellParser) Value() (localctx IValueContext) { localctx = NewRegexLiteralValueContext(p, localctx) p.EnterOuterAlt(localctx, 4) { - p.SetState(221) + p.SetState(232) p.Match(MongoShellParserREGEX_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -4549,7 +4720,7 @@ func (p *MongoShellParser) Value() (localctx IValueContext) { localctx = NewRegexpConstructorValueContext(p, localctx) p.EnterOuterAlt(localctx, 5) { - p.SetState(222) + p.SetState(233) p.RegExpConstructor() } @@ -4557,7 +4728,7 @@ func (p *MongoShellParser) Value() (localctx IValueContext) { localctx = NewLiteralValueContext(p, localctx) p.EnterOuterAlt(localctx, 6) { - p.SetState(223) + p.SetState(234) p.Literal() } @@ -4725,38 +4896,38 @@ func (p *MongoShellParser) Array() (localctx IArrayContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(226) + p.SetState(237) p.Match(MongoShellParserLBRACKET) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(238) + p.SetState(249) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&527851514229696) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1055703028458432) != 0 { { - p.SetState(227) + p.SetState(238) p.Value() } - p.SetState(232) + p.SetState(243) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 20, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 22, p.GetParserRuleContext()) if p.HasError() { goto errorExit } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(228) + p.SetState(239) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -4764,22 +4935,22 @@ func (p *MongoShellParser) Array() (localctx IArrayContext) { } } { - p.SetState(229) + p.SetState(240) p.Value() } } - p.SetState(234) + p.SetState(245) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 20, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 22, p.GetParserRuleContext()) if p.HasError() { goto errorExit } } - p.SetState(236) + p.SetState(247) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4788,7 +4959,7 @@ func (p *MongoShellParser) Array() (localctx IArrayContext) { if _la == MongoShellParserCOMMA { { - p.SetState(235) + p.SetState(246) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -4800,7 +4971,7 @@ func (p *MongoShellParser) Array() (localctx IArrayContext) { } { - p.SetState(240) + p.SetState(251) p.Match(MongoShellParserRBRACKET) if p.HasError() { // Recognition error - abort rule @@ -5052,73 +5223,73 @@ func (s *HelperFunctionContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *MongoShellParser) HelperFunction() (localctx IHelperFunctionContext) { localctx = NewHelperFunctionContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 42, MongoShellParserRULE_helperFunction) - p.SetState(251) + p.SetState(262) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 23, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 25, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(242) + p.SetState(253) p.ObjectIdHelper() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(243) + p.SetState(254) p.IsoDateHelper() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(244) + p.SetState(255) p.DateHelper() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(245) + p.SetState(256) p.UuidHelper() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(246) + p.SetState(257) p.LongHelper() } case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(247) + p.SetState(258) p.Int32Helper() } case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(248) + p.SetState(259) p.DoubleHelper() } case 8: p.EnterOuterAlt(localctx, 8) { - p.SetState(249) + p.SetState(260) p.Decimal128Helper() } case 9: p.EnterOuterAlt(localctx, 9) { - p.SetState(250) + p.SetState(261) p.TimestampHelper() } @@ -5256,7 +5427,7 @@ func (p *MongoShellParser) ObjectIdHelper() (localctx IObjectIdHelperContext) { p.EnterRule(localctx, 44, MongoShellParserRULE_objectIdHelper) var _la int - p.SetState(262) + p.SetState(273) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5266,7 +5437,7 @@ func (p *MongoShellParser) ObjectIdHelper() (localctx IObjectIdHelperContext) { case MongoShellParserOBJECT_ID: p.EnterOuterAlt(localctx, 1) { - p.SetState(253) + p.SetState(264) p.Match(MongoShellParserOBJECT_ID) if p.HasError() { // Recognition error - abort rule @@ -5274,14 +5445,14 @@ func (p *MongoShellParser) ObjectIdHelper() (localctx IObjectIdHelperContext) { } } { - p.SetState(254) + p.SetState(265) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(256) + p.SetState(267) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5290,13 +5461,13 @@ func (p *MongoShellParser) ObjectIdHelper() (localctx IObjectIdHelperContext) { if _la == MongoShellParserDOUBLE_QUOTED_STRING || _la == MongoShellParserSINGLE_QUOTED_STRING { { - p.SetState(255) + p.SetState(266) p.StringLiteral() } } { - p.SetState(258) + p.SetState(269) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -5307,7 +5478,7 @@ func (p *MongoShellParser) ObjectIdHelper() (localctx IObjectIdHelperContext) { case MongoShellParserNEW: p.EnterOuterAlt(localctx, 2) { - p.SetState(259) + p.SetState(270) p.Match(MongoShellParserNEW) if p.HasError() { // Recognition error - abort rule @@ -5315,7 +5486,7 @@ func (p *MongoShellParser) ObjectIdHelper() (localctx IObjectIdHelperContext) { } } { - p.SetState(260) + p.SetState(271) p.Match(MongoShellParserOBJECT_ID) if p.HasError() { // Recognition error - abort rule @@ -5459,7 +5630,7 @@ func (p *MongoShellParser) IsoDateHelper() (localctx IIsoDateHelperContext) { p.EnterRule(localctx, 46, MongoShellParserRULE_isoDateHelper) var _la int - p.SetState(273) + p.SetState(284) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5469,7 +5640,7 @@ func (p *MongoShellParser) IsoDateHelper() (localctx IIsoDateHelperContext) { case MongoShellParserISO_DATE: p.EnterOuterAlt(localctx, 1) { - p.SetState(264) + p.SetState(275) p.Match(MongoShellParserISO_DATE) if p.HasError() { // Recognition error - abort rule @@ -5477,14 +5648,14 @@ func (p *MongoShellParser) IsoDateHelper() (localctx IIsoDateHelperContext) { } } { - p.SetState(265) + p.SetState(276) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(267) + p.SetState(278) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5493,13 +5664,13 @@ func (p *MongoShellParser) IsoDateHelper() (localctx IIsoDateHelperContext) { if _la == MongoShellParserDOUBLE_QUOTED_STRING || _la == MongoShellParserSINGLE_QUOTED_STRING { { - p.SetState(266) + p.SetState(277) p.StringLiteral() } } { - p.SetState(269) + p.SetState(280) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -5510,7 +5681,7 @@ func (p *MongoShellParser) IsoDateHelper() (localctx IIsoDateHelperContext) { case MongoShellParserNEW: p.EnterOuterAlt(localctx, 2) { - p.SetState(270) + p.SetState(281) p.Match(MongoShellParserNEW) if p.HasError() { // Recognition error - abort rule @@ -5518,7 +5689,7 @@ func (p *MongoShellParser) IsoDateHelper() (localctx IIsoDateHelperContext) { } } { - p.SetState(271) + p.SetState(282) p.Match(MongoShellParserISO_DATE) if p.HasError() { // Recognition error - abort rule @@ -5665,7 +5836,7 @@ func (s *DateHelperContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { localctx = NewDateHelperContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 48, MongoShellParserRULE_dateHelper) - p.SetState(285) + p.SetState(296) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5675,7 +5846,7 @@ func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { case MongoShellParserDATE: p.EnterOuterAlt(localctx, 1) { - p.SetState(275) + p.SetState(286) p.Match(MongoShellParserDATE) if p.HasError() { // Recognition error - abort rule @@ -5683,14 +5854,14 @@ func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { } } { - p.SetState(276) + p.SetState(287) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(279) + p.SetState(290) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5698,13 +5869,13 @@ func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { switch p.GetTokenStream().LA(1) { case MongoShellParserDOUBLE_QUOTED_STRING, MongoShellParserSINGLE_QUOTED_STRING: { - p.SetState(277) + p.SetState(288) p.StringLiteral() } case MongoShellParserNUMBER: { - p.SetState(278) + p.SetState(289) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -5717,7 +5888,7 @@ func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { default: } { - p.SetState(281) + p.SetState(292) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -5728,7 +5899,7 @@ func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { case MongoShellParserNEW: p.EnterOuterAlt(localctx, 2) { - p.SetState(282) + p.SetState(293) p.Match(MongoShellParserNEW) if p.HasError() { // Recognition error - abort rule @@ -5736,7 +5907,7 @@ func (p *MongoShellParser) DateHelper() (localctx IDateHelperContext) { } } { - p.SetState(283) + p.SetState(294) p.Match(MongoShellParserDATE) if p.HasError() { // Recognition error - abort rule @@ -5875,7 +6046,7 @@ func (p *MongoShellParser) UuidHelper() (localctx IUuidHelperContext) { p.EnterRule(localctx, 50, MongoShellParserRULE_uuidHelper) p.EnterOuterAlt(localctx, 1) { - p.SetState(287) + p.SetState(298) p.Match(MongoShellParserUUID) if p.HasError() { // Recognition error - abort rule @@ -5883,7 +6054,7 @@ func (p *MongoShellParser) UuidHelper() (localctx IUuidHelperContext) { } } { - p.SetState(288) + p.SetState(299) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -5891,11 +6062,11 @@ func (p *MongoShellParser) UuidHelper() (localctx IUuidHelperContext) { } } { - p.SetState(289) + p.SetState(300) p.StringLiteral() } { - p.SetState(290) + p.SetState(301) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6040,7 +6211,7 @@ func (p *MongoShellParser) LongHelper() (localctx ILongHelperContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(292) + p.SetState(303) _la = p.GetTokenStream().LA(1) if !(_la == MongoShellParserLONG || _la == MongoShellParserNUMBER_LONG) { @@ -6051,14 +6222,14 @@ func (p *MongoShellParser) LongHelper() (localctx ILongHelperContext) { } } { - p.SetState(293) + p.SetState(304) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(296) + p.SetState(307) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -6067,7 +6238,7 @@ func (p *MongoShellParser) LongHelper() (localctx ILongHelperContext) { switch p.GetTokenStream().LA(1) { case MongoShellParserNUMBER: { - p.SetState(294) + p.SetState(305) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -6077,7 +6248,7 @@ func (p *MongoShellParser) LongHelper() (localctx ILongHelperContext) { case MongoShellParserDOUBLE_QUOTED_STRING, MongoShellParserSINGLE_QUOTED_STRING: { - p.SetState(295) + p.SetState(306) p.StringLiteral() } @@ -6086,7 +6257,7 @@ func (p *MongoShellParser) LongHelper() (localctx ILongHelperContext) { goto errorExit } { - p.SetState(298) + p.SetState(309) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6214,7 +6385,7 @@ func (p *MongoShellParser) Int32Helper() (localctx IInt32HelperContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(300) + p.SetState(311) _la = p.GetTokenStream().LA(1) if !(_la == MongoShellParserINT32 || _la == MongoShellParserNUMBER_INT) { @@ -6225,7 +6396,7 @@ func (p *MongoShellParser) Int32Helper() (localctx IInt32HelperContext) { } } { - p.SetState(301) + p.SetState(312) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -6233,7 +6404,7 @@ func (p *MongoShellParser) Int32Helper() (localctx IInt32HelperContext) { } } { - p.SetState(302) + p.SetState(313) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -6241,7 +6412,7 @@ func (p *MongoShellParser) Int32Helper() (localctx IInt32HelperContext) { } } { - p.SetState(303) + p.SetState(314) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6362,7 +6533,7 @@ func (p *MongoShellParser) DoubleHelper() (localctx IDoubleHelperContext) { p.EnterRule(localctx, 56, MongoShellParserRULE_doubleHelper) p.EnterOuterAlt(localctx, 1) { - p.SetState(305) + p.SetState(316) p.Match(MongoShellParserDOUBLE) if p.HasError() { // Recognition error - abort rule @@ -6370,7 +6541,7 @@ func (p *MongoShellParser) DoubleHelper() (localctx IDoubleHelperContext) { } } { - p.SetState(306) + p.SetState(317) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -6378,7 +6549,7 @@ func (p *MongoShellParser) DoubleHelper() (localctx IDoubleHelperContext) { } } { - p.SetState(307) + p.SetState(318) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -6386,7 +6557,7 @@ func (p *MongoShellParser) DoubleHelper() (localctx IDoubleHelperContext) { } } { - p.SetState(308) + p.SetState(319) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6526,7 +6697,7 @@ func (p *MongoShellParser) Decimal128Helper() (localctx IDecimal128HelperContext p.EnterOuterAlt(localctx, 1) { - p.SetState(310) + p.SetState(321) _la = p.GetTokenStream().LA(1) if !(_la == MongoShellParserDECIMAL128 || _la == MongoShellParserNUMBER_DECIMAL) { @@ -6537,7 +6708,7 @@ func (p *MongoShellParser) Decimal128Helper() (localctx IDecimal128HelperContext } } { - p.SetState(311) + p.SetState(322) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -6545,11 +6716,11 @@ func (p *MongoShellParser) Decimal128Helper() (localctx IDecimal128HelperContext } } { - p.SetState(312) + p.SetState(323) p.StringLiteral() } { - p.SetState(313) + p.SetState(324) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6759,18 +6930,18 @@ func (s *TimestampDocHelperContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) { localctx = NewTimestampHelperContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 60, MongoShellParserRULE_timestampHelper) - p.SetState(326) + p.SetState(337) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 31, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 33, p.GetParserRuleContext()) { case 1: localctx = NewTimestampDocHelperContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(315) + p.SetState(326) p.Match(MongoShellParserTIMESTAMP) if p.HasError() { // Recognition error - abort rule @@ -6778,7 +6949,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(316) + p.SetState(327) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -6786,11 +6957,11 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(317) + p.SetState(328) p.Document() } { - p.SetState(318) + p.SetState(329) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6802,7 +6973,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) localctx = NewTimestampArgsHelperContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(320) + p.SetState(331) p.Match(MongoShellParserTIMESTAMP) if p.HasError() { // Recognition error - abort rule @@ -6810,7 +6981,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(321) + p.SetState(332) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -6818,7 +6989,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(322) + p.SetState(333) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -6826,7 +6997,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(323) + p.SetState(334) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -6834,7 +7005,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(324) + p.SetState(335) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -6842,7 +7013,7 @@ func (p *MongoShellParser) TimestampHelper() (localctx ITimestampHelperContext) } } { - p.SetState(325) + p.SetState(336) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -7015,7 +7186,7 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte p.EnterRule(localctx, 62, MongoShellParserRULE_regExpConstructor) var _la int - p.SetState(340) + p.SetState(351) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7025,7 +7196,7 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte case MongoShellParserREG_EXP: p.EnterOuterAlt(localctx, 1) { - p.SetState(328) + p.SetState(339) p.Match(MongoShellParserREG_EXP) if p.HasError() { // Recognition error - abort rule @@ -7033,7 +7204,7 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte } } { - p.SetState(329) + p.SetState(340) p.Match(MongoShellParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -7041,10 +7212,10 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte } } { - p.SetState(330) + p.SetState(341) p.StringLiteral() } - p.SetState(333) + p.SetState(344) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7053,7 +7224,7 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte if _la == MongoShellParserCOMMA { { - p.SetState(331) + p.SetState(342) p.Match(MongoShellParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -7061,13 +7232,13 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte } } { - p.SetState(332) + p.SetState(343) p.StringLiteral() } } { - p.SetState(335) + p.SetState(346) p.Match(MongoShellParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -7078,7 +7249,7 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte case MongoShellParserNEW: p.EnterOuterAlt(localctx, 2) { - p.SetState(337) + p.SetState(348) p.Match(MongoShellParserNEW) if p.HasError() { // Recognition error - abort rule @@ -7086,7 +7257,7 @@ func (p *MongoShellParser) RegExpConstructor() (localctx IRegExpConstructorConte } } { - p.SetState(338) + p.SetState(349) p.Match(MongoShellParserREG_EXP) if p.HasError() { // Recognition error - abort rule @@ -7402,7 +7573,7 @@ func (s *NumberLiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *MongoShellParser) Literal() (localctx ILiteralContext) { localctx = NewLiteralContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 64, MongoShellParserRULE_literal) - p.SetState(347) + p.SetState(358) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7413,7 +7584,7 @@ func (p *MongoShellParser) Literal() (localctx ILiteralContext) { localctx = NewStringLiteralValueContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(342) + p.SetState(353) p.StringLiteral() } @@ -7421,7 +7592,7 @@ func (p *MongoShellParser) Literal() (localctx ILiteralContext) { localctx = NewNumberLiteralContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(343) + p.SetState(354) p.Match(MongoShellParserNUMBER) if p.HasError() { // Recognition error - abort rule @@ -7433,7 +7604,7 @@ func (p *MongoShellParser) Literal() (localctx ILiteralContext) { localctx = NewTrueLiteralContext(p, localctx) p.EnterOuterAlt(localctx, 3) { - p.SetState(344) + p.SetState(355) p.Match(MongoShellParserTRUE) if p.HasError() { // Recognition error - abort rule @@ -7445,7 +7616,7 @@ func (p *MongoShellParser) Literal() (localctx ILiteralContext) { localctx = NewFalseLiteralContext(p, localctx) p.EnterOuterAlt(localctx, 4) { - p.SetState(345) + p.SetState(356) p.Match(MongoShellParserFALSE) if p.HasError() { // Recognition error - abort rule @@ -7457,7 +7628,7 @@ func (p *MongoShellParser) Literal() (localctx ILiteralContext) { localctx = NewNullLiteralContext(p, localctx) p.EnterOuterAlt(localctx, 5) { - p.SetState(346) + p.SetState(357) p.Match(MongoShellParserNULL) if p.HasError() { // Recognition error - abort rule @@ -7575,7 +7746,7 @@ func (p *MongoShellParser) StringLiteral() (localctx IStringLiteralContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(349) + p.SetState(360) _la = p.GetTokenStream().LA(1) if !(_la == MongoShellParserDOUBLE_QUOTED_STRING || _la == MongoShellParserSINGLE_QUOTED_STRING) { @@ -7627,6 +7798,7 @@ type IIdentifierContext interface { PROJECT() antlr.TerminalNode GET_COLLECTION() antlr.TerminalNode GET_COLLECTION_NAMES() antlr.TerminalNode + GET_COLLECTION_INFOS() antlr.TerminalNode OBJECT_ID() antlr.TerminalNode ISO_DATE() antlr.TerminalNode DATE() antlr.TerminalNode @@ -7757,6 +7929,10 @@ func (s *IdentifierContext) GET_COLLECTION_NAMES() antlr.TerminalNode { return s.GetToken(MongoShellParserGET_COLLECTION_NAMES, 0) } +func (s *IdentifierContext) GET_COLLECTION_INFOS() antlr.TerminalNode { + return s.GetToken(MongoShellParserGET_COLLECTION_INFOS, 0) +} + func (s *IdentifierContext) OBJECT_ID() antlr.TerminalNode { return s.GetToken(MongoShellParserOBJECT_ID, 0) } @@ -7842,7 +8018,7 @@ func (s *IdentifierContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { localctx = NewIdentifierContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 68, MongoShellParserRULE_identifier) - p.SetState(385) + p.SetState(397) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7852,7 +8028,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserIDENTIFIER: p.EnterOuterAlt(localctx, 1) { - p.SetState(351) + p.SetState(362) p.Match(MongoShellParserIDENTIFIER) if p.HasError() { // Recognition error - abort rule @@ -7863,7 +8039,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserDOLLAR: p.EnterOuterAlt(localctx, 2) { - p.SetState(352) + p.SetState(363) p.Match(MongoShellParserDOLLAR) if p.HasError() { // Recognition error - abort rule @@ -7871,7 +8047,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } } { - p.SetState(353) + p.SetState(364) p.Match(MongoShellParserIDENTIFIER) if p.HasError() { // Recognition error - abort rule @@ -7882,7 +8058,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserSHOW: p.EnterOuterAlt(localctx, 3) { - p.SetState(354) + p.SetState(365) p.Match(MongoShellParserSHOW) if p.HasError() { // Recognition error - abort rule @@ -7893,7 +8069,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserDBS: p.EnterOuterAlt(localctx, 4) { - p.SetState(355) + p.SetState(366) p.Match(MongoShellParserDBS) if p.HasError() { // Recognition error - abort rule @@ -7904,7 +8080,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserDATABASES: p.EnterOuterAlt(localctx, 5) { - p.SetState(356) + p.SetState(367) p.Match(MongoShellParserDATABASES) if p.HasError() { // Recognition error - abort rule @@ -7915,7 +8091,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserCOLLECTIONS: p.EnterOuterAlt(localctx, 6) { - p.SetState(357) + p.SetState(368) p.Match(MongoShellParserCOLLECTIONS) if p.HasError() { // Recognition error - abort rule @@ -7926,7 +8102,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserDB: p.EnterOuterAlt(localctx, 7) { - p.SetState(358) + p.SetState(369) p.Match(MongoShellParserDB) if p.HasError() { // Recognition error - abort rule @@ -7937,7 +8113,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserNEW: p.EnterOuterAlt(localctx, 8) { - p.SetState(359) + p.SetState(370) p.Match(MongoShellParserNEW) if p.HasError() { // Recognition error - abort rule @@ -7948,7 +8124,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserTRUE: p.EnterOuterAlt(localctx, 9) { - p.SetState(360) + p.SetState(371) p.Match(MongoShellParserTRUE) if p.HasError() { // Recognition error - abort rule @@ -7959,7 +8135,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserFALSE: p.EnterOuterAlt(localctx, 10) { - p.SetState(361) + p.SetState(372) p.Match(MongoShellParserFALSE) if p.HasError() { // Recognition error - abort rule @@ -7970,7 +8146,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserNULL: p.EnterOuterAlt(localctx, 11) { - p.SetState(362) + p.SetState(373) p.Match(MongoShellParserNULL) if p.HasError() { // Recognition error - abort rule @@ -7981,7 +8157,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserFIND: p.EnterOuterAlt(localctx, 12) { - p.SetState(363) + p.SetState(374) p.Match(MongoShellParserFIND) if p.HasError() { // Recognition error - abort rule @@ -7992,7 +8168,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserFIND_ONE: p.EnterOuterAlt(localctx, 13) { - p.SetState(364) + p.SetState(375) p.Match(MongoShellParserFIND_ONE) if p.HasError() { // Recognition error - abort rule @@ -8003,7 +8179,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserSORT: p.EnterOuterAlt(localctx, 14) { - p.SetState(365) + p.SetState(376) p.Match(MongoShellParserSORT) if p.HasError() { // Recognition error - abort rule @@ -8014,7 +8190,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserLIMIT: p.EnterOuterAlt(localctx, 15) { - p.SetState(366) + p.SetState(377) p.Match(MongoShellParserLIMIT) if p.HasError() { // Recognition error - abort rule @@ -8025,7 +8201,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserSKIP_: p.EnterOuterAlt(localctx, 16) { - p.SetState(367) + p.SetState(378) p.Match(MongoShellParserSKIP_) if p.HasError() { // Recognition error - abort rule @@ -8036,7 +8212,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserPROJECTION: p.EnterOuterAlt(localctx, 17) { - p.SetState(368) + p.SetState(379) p.Match(MongoShellParserPROJECTION) if p.HasError() { // Recognition error - abort rule @@ -8047,7 +8223,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserPROJECT: p.EnterOuterAlt(localctx, 18) { - p.SetState(369) + p.SetState(380) p.Match(MongoShellParserPROJECT) if p.HasError() { // Recognition error - abort rule @@ -8058,7 +8234,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserGET_COLLECTION: p.EnterOuterAlt(localctx, 19) { - p.SetState(370) + p.SetState(381) p.Match(MongoShellParserGET_COLLECTION) if p.HasError() { // Recognition error - abort rule @@ -8069,7 +8245,7 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { case MongoShellParserGET_COLLECTION_NAMES: p.EnterOuterAlt(localctx, 20) { - p.SetState(371) + p.SetState(382) p.Match(MongoShellParserGET_COLLECTION_NAMES) if p.HasError() { // Recognition error - abort rule @@ -8077,10 +8253,21 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } } - case MongoShellParserOBJECT_ID: + case MongoShellParserGET_COLLECTION_INFOS: p.EnterOuterAlt(localctx, 21) { - p.SetState(372) + p.SetState(383) + p.Match(MongoShellParserGET_COLLECTION_INFOS) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case MongoShellParserOBJECT_ID: + p.EnterOuterAlt(localctx, 22) + { + p.SetState(384) p.Match(MongoShellParserOBJECT_ID) if p.HasError() { // Recognition error - abort rule @@ -8089,9 +8276,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserISO_DATE: - p.EnterOuterAlt(localctx, 22) + p.EnterOuterAlt(localctx, 23) { - p.SetState(373) + p.SetState(385) p.Match(MongoShellParserISO_DATE) if p.HasError() { // Recognition error - abort rule @@ -8100,9 +8287,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserDATE: - p.EnterOuterAlt(localctx, 23) + p.EnterOuterAlt(localctx, 24) { - p.SetState(374) + p.SetState(386) p.Match(MongoShellParserDATE) if p.HasError() { // Recognition error - abort rule @@ -8111,9 +8298,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserUUID: - p.EnterOuterAlt(localctx, 24) + p.EnterOuterAlt(localctx, 25) { - p.SetState(375) + p.SetState(387) p.Match(MongoShellParserUUID) if p.HasError() { // Recognition error - abort rule @@ -8122,9 +8309,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserLONG: - p.EnterOuterAlt(localctx, 25) + p.EnterOuterAlt(localctx, 26) { - p.SetState(376) + p.SetState(388) p.Match(MongoShellParserLONG) if p.HasError() { // Recognition error - abort rule @@ -8133,9 +8320,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserNUMBER_LONG: - p.EnterOuterAlt(localctx, 26) + p.EnterOuterAlt(localctx, 27) { - p.SetState(377) + p.SetState(389) p.Match(MongoShellParserNUMBER_LONG) if p.HasError() { // Recognition error - abort rule @@ -8144,9 +8331,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserINT32: - p.EnterOuterAlt(localctx, 27) + p.EnterOuterAlt(localctx, 28) { - p.SetState(378) + p.SetState(390) p.Match(MongoShellParserINT32) if p.HasError() { // Recognition error - abort rule @@ -8155,9 +8342,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserNUMBER_INT: - p.EnterOuterAlt(localctx, 28) + p.EnterOuterAlt(localctx, 29) { - p.SetState(379) + p.SetState(391) p.Match(MongoShellParserNUMBER_INT) if p.HasError() { // Recognition error - abort rule @@ -8166,9 +8353,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserDOUBLE: - p.EnterOuterAlt(localctx, 29) + p.EnterOuterAlt(localctx, 30) { - p.SetState(380) + p.SetState(392) p.Match(MongoShellParserDOUBLE) if p.HasError() { // Recognition error - abort rule @@ -8177,9 +8364,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserDECIMAL128: - p.EnterOuterAlt(localctx, 30) + p.EnterOuterAlt(localctx, 31) { - p.SetState(381) + p.SetState(393) p.Match(MongoShellParserDECIMAL128) if p.HasError() { // Recognition error - abort rule @@ -8188,9 +8375,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserNUMBER_DECIMAL: - p.EnterOuterAlt(localctx, 31) + p.EnterOuterAlt(localctx, 32) { - p.SetState(382) + p.SetState(394) p.Match(MongoShellParserNUMBER_DECIMAL) if p.HasError() { // Recognition error - abort rule @@ -8199,9 +8386,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserTIMESTAMP: - p.EnterOuterAlt(localctx, 32) + p.EnterOuterAlt(localctx, 33) { - p.SetState(383) + p.SetState(395) p.Match(MongoShellParserTIMESTAMP) if p.HasError() { // Recognition error - abort rule @@ -8210,9 +8397,9 @@ func (p *MongoShellParser) Identifier() (localctx IIdentifierContext) { } case MongoShellParserREG_EXP: - p.EnterOuterAlt(localctx, 33) + p.EnterOuterAlt(localctx, 34) { - p.SetState(384) + p.SetState(396) p.Match(MongoShellParserREG_EXP) if p.HasError() { // Recognition error - abort rule diff --git a/mongodb/mongoshellparser_base_listener.go b/mongodb/mongoshellparser_base_listener.go index 3e7477c..2aa24ad 100644 --- a/mongodb/mongoshellparser_base_listener.go +++ b/mongodb/mongoshellparser_base_listener.go @@ -50,6 +50,12 @@ func (s *BaseMongoShellParserListener) EnterGetCollectionNames(ctx *GetCollectio // ExitGetCollectionNames is called when production getCollectionNames is exited. func (s *BaseMongoShellParserListener) ExitGetCollectionNames(ctx *GetCollectionNamesContext) {} +// EnterGetCollectionInfos is called when production getCollectionInfos is entered. +func (s *BaseMongoShellParserListener) EnterGetCollectionInfos(ctx *GetCollectionInfosContext) {} + +// ExitGetCollectionInfos is called when production getCollectionInfos is exited. +func (s *BaseMongoShellParserListener) ExitGetCollectionInfos(ctx *GetCollectionInfosContext) {} + // EnterCollectionOperation is called when production collectionOperation is entered. func (s *BaseMongoShellParserListener) EnterCollectionOperation(ctx *CollectionOperationContext) {} diff --git a/mongodb/mongoshellparser_base_visitor.go b/mongodb/mongoshellparser_base_visitor.go index e89d258..2b987a4 100644 --- a/mongodb/mongoshellparser_base_visitor.go +++ b/mongodb/mongoshellparser_base_visitor.go @@ -27,6 +27,10 @@ func (v *BaseMongoShellParserVisitor) VisitGetCollectionNames(ctx *GetCollection return v.VisitChildren(ctx) } +func (v *BaseMongoShellParserVisitor) VisitGetCollectionInfos(ctx *GetCollectionInfosContext) interface{} { + return v.VisitChildren(ctx) +} + func (v *BaseMongoShellParserVisitor) VisitCollectionOperation(ctx *CollectionOperationContext) interface{} { return v.VisitChildren(ctx) } diff --git a/mongodb/mongoshellparser_listener.go b/mongodb/mongoshellparser_listener.go index 2e7f99b..0cd4ecf 100644 --- a/mongodb/mongoshellparser_listener.go +++ b/mongodb/mongoshellparser_listener.go @@ -22,6 +22,9 @@ type MongoShellParserListener interface { // EnterGetCollectionNames is called when entering the getCollectionNames production. EnterGetCollectionNames(c *GetCollectionNamesContext) + // EnterGetCollectionInfos is called when entering the getCollectionInfos production. + EnterGetCollectionInfos(c *GetCollectionInfosContext) + // EnterCollectionOperation is called when entering the collectionOperation production. EnterCollectionOperation(c *CollectionOperationContext) @@ -172,6 +175,9 @@ type MongoShellParserListener interface { // ExitGetCollectionNames is called when exiting the getCollectionNames production. ExitGetCollectionNames(c *GetCollectionNamesContext) + // ExitGetCollectionInfos is called when exiting the getCollectionInfos production. + ExitGetCollectionInfos(c *GetCollectionInfosContext) + // ExitCollectionOperation is called when exiting the collectionOperation production. ExitCollectionOperation(c *CollectionOperationContext) diff --git a/mongodb/mongoshellparser_visitor.go b/mongodb/mongoshellparser_visitor.go index 6e525c7..488c3c0 100644 --- a/mongodb/mongoshellparser_visitor.go +++ b/mongodb/mongoshellparser_visitor.go @@ -22,6 +22,9 @@ type MongoShellParserVisitor interface { // Visit a parse tree produced by MongoShellParser#getCollectionNames. VisitGetCollectionNames(ctx *GetCollectionNamesContext) interface{} + // Visit a parse tree produced by MongoShellParser#getCollectionInfos. + VisitGetCollectionInfos(ctx *GetCollectionInfosContext) interface{} + // Visit a parse tree produced by MongoShellParser#collectionOperation. VisitCollectionOperation(ctx *CollectionOperationContext) interface{} diff --git a/mongodb/parser_test.go b/mongodb/parser_test.go index 8d6dbb1..974fa36 100644 --- a/mongodb/parser_test.go +++ b/mongodb/parser_test.go @@ -149,6 +149,9 @@ func TestCollectionAccess(t *testing.T) { `db["user-logs"].find()`, `db.getCollection("my.collection").find()`, `db.getCollectionNames()`, + `db.getCollectionInfos()`, + `db.getCollectionInfos({ name: "users" })`, + `db.getCollectionInfos({}, { nameOnly: true })`, } for _, tc := range tests {