From 0de38ebfaddeb9f957ea392009b55d28ad9b4f0b Mon Sep 17 00:00:00 2001 From: Marco Salazar Date: Fri, 28 Feb 2025 09:22:07 -0500 Subject: [PATCH 1/2] suggest plus after digits --- .../src/selection/SelectionAutoComplete.g4 | 5 +- .../selection/SelectionAutoCompleteVisitor.ts | 26 +- .../selection/SelectionInputHighlighter.ts | 2 +- .../__tests__/SelectionAutoComplete.test.ts | 8 + .../generated/SelectionAutoComplete.interp | 3 +- .../SelectionAutoCompleteListener.ts | 26 + .../generated/SelectionAutoCompleteParser.ts | 665 +++++++++++------- .../generated/SelectionAutoCompleteVisitor.ts | 17 + 8 files changed, 486 insertions(+), 266 deletions(-) diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoComplete.g4 b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoComplete.g4 index dcc29fe38a6b8..94f8089c09534 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoComplete.g4 +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoComplete.g4 @@ -46,7 +46,8 @@ incompleteExpr: | leftParenToken postLogicalOperatorWhitespace expr # UnclosedParenthesizedExpression | expressionLessParenthesizedExpr # ExpressionlessParenthesizedExpressionWrapper | leftParenToken postLogicalOperatorWhitespace # UnclosedExpressionlessParenthesizedExpression - | PLUS postNeighborTraversalWhitespace # IncompletePlusTraversalExpression + | DIGITS? PLUS postNeighborTraversalWhitespace # IncompletePlusTraversalExpression + | DIGITS postDigitsWhitespace # IncompleteUpTraversalExpression | colonToken attributeValue postExpressionWhitespace # IncompleteAttributeExpressionMissingKey; expressionLessParenthesizedExpr: @@ -97,6 +98,8 @@ postUpwardTraversalWhitespace: WS*; postDownwardTraversalWhitespace: WS*; +postDigitsWhitespace: WS*; + // Value can be a quoted string, unquoted string, or identifier value: QUOTED_STRING # QuotedStringValue diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts index 0aa0bbf511f4f..7c54a14a2265d 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts @@ -17,8 +17,10 @@ import { FunctionNameContext, IncompleteAttributeExpressionMissingValueContext, IncompletePlusTraversalExpressionContext, + IncompleteUpTraversalExpressionContext, LeftParenTokenContext, OrTokenContext, + PostDigitsWhitespaceContext, PostDownwardTraversalWhitespaceContext, PostLogicalOperatorWhitespaceContext, PostNeighborTraversalWhitespaceContext, @@ -30,8 +32,7 @@ import { const DEFAULT_TEXT_CALLBACK = (value: string) => value; -// set to true for debug output if desired -const DEBUG = false; +const DEBUG = true; export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { private getAttributeResultsMatchingQuery: SelectionAutoCompleteProvider['getAttributeResultsMatchingQuery']; @@ -43,7 +44,6 @@ export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { public list: Array = []; - // Replacement indices from the original code public _startReplacementIndex: number; public _stopReplacementIndex: number; @@ -78,8 +78,8 @@ export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { this._stopReplacementIndex = cursorIndex; } - // Keep the same accessors and logging as before set startReplacementIndex(newValue: number) { + debugger; if (DEBUG) { console.log('Autocomplete suggestions being set by stack:', new Error()); } @@ -255,6 +255,12 @@ export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { } } + public visitIncompleteUpTraversalExpression(_ctx: IncompleteUpTraversalExpressionContext) { + this.list.push( + this.createOperatorSuggestion({text: '+', type: 'up-traversal', displayText: '+'}), + ); + } + public visitIncompletePlusTraversalExpression(ctx: IncompletePlusTraversalExpressionContext) { if ( this.nodeIncludesCursor(ctx.postNeighborTraversalWhitespace()) && @@ -306,6 +312,18 @@ export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { } } + public visitPostDigitsWhitespace(ctx: PostDigitsWhitespaceContext) { + this.startReplacementIndex = ctx.start.startIndex; + this.stopReplacementIndex = ctx.stop!.stopIndex; + this.list.push( + this.createOperatorSuggestion({ + text: '+', + type: 'up-traversal', + displayText: '+', + }), + ); + } + public visitPostLogicalOperatorWhitespace(ctx: PostLogicalOperatorWhitespaceContext) { if (!this.list.length) { const isAfterNot = this.line.slice(0, this.cursorIndex).trim().toLowerCase().endsWith('not'); diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionInputHighlighter.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionInputHighlighter.ts index 4cfb30a5e3c01..ef0881bdae2b7 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionInputHighlighter.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionInputHighlighter.ts @@ -44,7 +44,7 @@ export class SyntaxHighlightingVisitor private addClass(ctx: ParserRuleContext, klass: string) { const from = this.cm.posFromIndex(this.startOffset + ctx.start.startIndex); - const to = this.cm.posFromIndex(this.startOffset + ctx.stop!.stopIndex + 1); + const to = this.cm.posFromIndex(from.ch + ctx.text.length); this.cm.markText(from, to, {className: klass}); } diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/__tests__/SelectionAutoComplete.test.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/__tests__/SelectionAutoComplete.test.ts index 38b3532c44e6f..e5f5979867046 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/__tests__/SelectionAutoComplete.test.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/__tests__/SelectionAutoComplete.test.ts @@ -1065,4 +1065,12 @@ describe('createAssetSelectionHint', () => { to: 12, }); }); + + it('suggests + after digits', () => { + expect(testAutocomplete('1234|')).toEqual({ + from: 4, + list: [expect.objectContaining({text: '+'})], + to: 4, + }); + }); }); diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoComplete.interp b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoComplete.interp index 6d8401721e62c..4ceba33773693 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoComplete.interp +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoComplete.interp @@ -62,8 +62,9 @@ postLogicalOperatorWhitespace postNeighborTraversalWhitespace postUpwardTraversalWhitespace postDownwardTraversalWhitespace +postDigitsWhitespace value atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 17, 262, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 86, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 106, 10, 3, 12, 3, 14, 3, 109, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 116, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 125, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 168, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 5, 10, 182, 10, 10, 3, 10, 3, 10, 3, 11, 3, 11, 5, 11, 188, 10, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 7, 21, 209, 10, 21, 12, 21, 14, 21, 212, 11, 21, 3, 22, 7, 22, 215, 10, 22, 12, 22, 14, 22, 218, 11, 22, 3, 23, 7, 23, 221, 10, 23, 12, 23, 14, 23, 224, 11, 23, 3, 24, 7, 24, 227, 10, 24, 12, 24, 14, 24, 230, 11, 24, 3, 25, 7, 25, 233, 10, 25, 12, 25, 14, 25, 236, 11, 25, 3, 26, 7, 26, 239, 10, 26, 12, 26, 14, 26, 242, 11, 26, 3, 27, 7, 27, 245, 10, 27, 12, 27, 14, 27, 248, 11, 27, 3, 28, 7, 28, 251, 10, 28, 12, 28, 14, 28, 254, 11, 28, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 260, 10, 29, 3, 29, 2, 2, 3, 4, 30, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 2, 2, 2, 270, 2, 58, 3, 2, 2, 2, 4, 85, 3, 2, 2, 2, 6, 124, 3, 2, 2, 2, 8, 126, 3, 2, 2, 2, 10, 167, 3, 2, 2, 2, 12, 169, 3, 2, 2, 2, 14, 174, 3, 2, 2, 2, 16, 177, 3, 2, 2, 2, 18, 181, 3, 2, 2, 2, 20, 185, 3, 2, 2, 2, 22, 189, 3, 2, 2, 2, 24, 191, 3, 2, 2, 2, 26, 193, 3, 2, 2, 2, 28, 195, 3, 2, 2, 2, 30, 197, 3, 2, 2, 2, 32, 199, 3, 2, 2, 2, 34, 201, 3, 2, 2, 2, 36, 203, 3, 2, 2, 2, 38, 205, 3, 2, 2, 2, 40, 210, 3, 2, 2, 2, 42, 216, 3, 2, 2, 2, 44, 222, 3, 2, 2, 2, 46, 228, 3, 2, 2, 2, 48, 234, 3, 2, 2, 2, 50, 240, 3, 2, 2, 2, 52, 246, 3, 2, 2, 2, 54, 252, 3, 2, 2, 2, 56, 259, 3, 2, 2, 2, 58, 59, 5, 4, 3, 2, 59, 60, 7, 2, 2, 3, 60, 3, 3, 2, 2, 2, 61, 62, 8, 3, 1, 2, 62, 86, 5, 6, 4, 2, 63, 64, 5, 14, 8, 2, 64, 65, 5, 6, 4, 2, 65, 66, 5, 16, 9, 2, 66, 86, 3, 2, 2, 2, 67, 68, 5, 14, 8, 2, 68, 69, 5, 6, 4, 2, 69, 86, 3, 2, 2, 2, 70, 71, 5, 6, 4, 2, 71, 72, 5, 16, 9, 2, 72, 86, 3, 2, 2, 2, 73, 74, 5, 32, 17, 2, 74, 75, 5, 46, 24, 2, 75, 76, 5, 4, 3, 10, 76, 86, 3, 2, 2, 2, 77, 78, 5, 32, 17, 2, 78, 79, 5, 46, 24, 2, 79, 86, 3, 2, 2, 2, 80, 81, 7, 6, 2, 2, 81, 86, 5, 44, 23, 2, 82, 83, 5, 56, 29, 2, 83, 84, 5, 44, 23, 2, 84, 86, 3, 2, 2, 2, 85, 61, 3, 2, 2, 2, 85, 63, 3, 2, 2, 2, 85, 67, 3, 2, 2, 2, 85, 70, 3, 2, 2, 2, 85, 73, 3, 2, 2, 2, 85, 77, 3, 2, 2, 2, 85, 80, 3, 2, 2, 2, 85, 82, 3, 2, 2, 2, 86, 107, 3, 2, 2, 2, 87, 88, 12, 9, 2, 2, 88, 89, 5, 30, 16, 2, 89, 90, 5, 48, 25, 2, 90, 91, 5, 4, 3, 10, 91, 106, 3, 2, 2, 2, 92, 93, 12, 8, 2, 2, 93, 94, 5, 28, 15, 2, 94, 95, 5, 48, 25, 2, 95, 96, 5, 4, 3, 9, 96, 106, 3, 2, 2, 2, 97, 98, 12, 7, 2, 2, 98, 99, 5, 30, 16, 2, 99, 100, 5, 48, 25, 2, 100, 106, 3, 2, 2, 2, 101, 102, 12, 6, 2, 2, 102, 103, 5, 28, 15, 2, 103, 104, 5, 48, 25, 2, 104, 106, 3, 2, 2, 2, 105, 87, 3, 2, 2, 2, 105, 92, 3, 2, 2, 2, 105, 97, 3, 2, 2, 2, 105, 101, 3, 2, 2, 2, 106, 109, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 5, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 110, 111, 5, 22, 12, 2, 111, 112, 5, 34, 18, 2, 112, 115, 5, 24, 13, 2, 113, 114, 7, 15, 2, 2, 114, 116, 5, 24, 13, 2, 115, 113, 3, 2, 2, 2, 115, 116, 3, 2, 2, 2, 116, 117, 3, 2, 2, 2, 117, 118, 5, 42, 22, 2, 118, 125, 3, 2, 2, 2, 119, 120, 5, 26, 14, 2, 120, 121, 5, 8, 5, 2, 121, 125, 3, 2, 2, 2, 122, 125, 5, 8, 5, 2, 123, 125, 5, 10, 6, 2, 124, 110, 3, 2, 2, 2, 124, 119, 3, 2, 2, 2, 124, 122, 3, 2, 2, 2, 124, 123, 3, 2, 2, 2, 125, 7, 3, 2, 2, 2, 126, 127, 5, 36, 19, 2, 127, 128, 5, 48, 25, 2, 128, 129, 5, 4, 3, 2, 129, 130, 5, 38, 20, 2, 130, 131, 5, 44, 23, 2, 131, 9, 3, 2, 2, 2, 132, 133, 5, 22, 12, 2, 133, 134, 5, 34, 18, 2, 134, 135, 5, 24, 13, 2, 135, 136, 7, 15, 2, 2, 136, 137, 5, 40, 21, 2, 137, 168, 3, 2, 2, 2, 138, 139, 5, 22, 12, 2, 139, 140, 5, 34, 18, 2, 140, 141, 5, 40, 21, 2, 141, 168, 3, 2, 2, 2, 142, 143, 5, 26, 14, 2, 143, 144, 5, 12, 7, 2, 144, 168, 3, 2, 2, 2, 145, 146, 5, 26, 14, 2, 146, 147, 5, 36, 19, 2, 147, 148, 5, 48, 25, 2, 148, 168, 3, 2, 2, 2, 149, 150, 5, 26, 14, 2, 150, 151, 5, 36, 19, 2, 151, 152, 5, 4, 3, 2, 152, 168, 3, 2, 2, 2, 153, 154, 5, 36, 19, 2, 154, 155, 5, 48, 25, 2, 155, 156, 5, 4, 3, 2, 156, 168, 3, 2, 2, 2, 157, 168, 5, 12, 7, 2, 158, 159, 5, 36, 19, 2, 159, 160, 5, 48, 25, 2, 160, 168, 3, 2, 2, 2, 161, 162, 7, 7, 2, 2, 162, 168, 5, 50, 26, 2, 163, 164, 5, 34, 18, 2, 164, 165, 5, 24, 13, 2, 165, 166, 5, 44, 23, 2, 166, 168, 3, 2, 2, 2, 167, 132, 3, 2, 2, 2, 167, 138, 3, 2, 2, 2, 167, 142, 3, 2, 2, 2, 167, 145, 3, 2, 2, 2, 167, 149, 3, 2, 2, 2, 167, 153, 3, 2, 2, 2, 167, 157, 3, 2, 2, 2, 167, 158, 3, 2, 2, 2, 167, 161, 3, 2, 2, 2, 167, 163, 3, 2, 2, 2, 168, 11, 3, 2, 2, 2, 169, 170, 5, 36, 19, 2, 170, 171, 5, 48, 25, 2, 171, 172, 5, 38, 20, 2, 172, 173, 5, 44, 23, 2, 173, 13, 3, 2, 2, 2, 174, 175, 5, 18, 10, 2, 175, 176, 5, 52, 27, 2, 176, 15, 3, 2, 2, 2, 177, 178, 5, 20, 11, 2, 178, 179, 5, 54, 28, 2, 179, 17, 3, 2, 2, 2, 180, 182, 7, 8, 2, 2, 181, 180, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 184, 7, 7, 2, 2, 184, 19, 3, 2, 2, 2, 185, 187, 7, 7, 2, 2, 186, 188, 7, 8, 2, 2, 187, 186, 3, 2, 2, 2, 187, 188, 3, 2, 2, 2, 188, 21, 3, 2, 2, 2, 189, 190, 7, 16, 2, 2, 190, 23, 3, 2, 2, 2, 191, 192, 5, 56, 29, 2, 192, 25, 3, 2, 2, 2, 193, 194, 7, 16, 2, 2, 194, 27, 3, 2, 2, 2, 195, 196, 7, 4, 2, 2, 196, 29, 3, 2, 2, 2, 197, 198, 7, 3, 2, 2, 198, 31, 3, 2, 2, 2, 199, 200, 7, 5, 2, 2, 200, 33, 3, 2, 2, 2, 201, 202, 7, 9, 2, 2, 202, 35, 3, 2, 2, 2, 203, 204, 7, 10, 2, 2, 204, 37, 3, 2, 2, 2, 205, 206, 7, 11, 2, 2, 206, 39, 3, 2, 2, 2, 207, 209, 7, 17, 2, 2, 208, 207, 3, 2, 2, 2, 209, 212, 3, 2, 2, 2, 210, 208, 3, 2, 2, 2, 210, 211, 3, 2, 2, 2, 211, 41, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 213, 215, 7, 17, 2, 2, 214, 213, 3, 2, 2, 2, 215, 218, 3, 2, 2, 2, 216, 214, 3, 2, 2, 2, 216, 217, 3, 2, 2, 2, 217, 43, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 219, 221, 7, 17, 2, 2, 220, 219, 3, 2, 2, 2, 221, 224, 3, 2, 2, 2, 222, 220, 3, 2, 2, 2, 222, 223, 3, 2, 2, 2, 223, 45, 3, 2, 2, 2, 224, 222, 3, 2, 2, 2, 225, 227, 7, 17, 2, 2, 226, 225, 3, 2, 2, 2, 227, 230, 3, 2, 2, 2, 228, 226, 3, 2, 2, 2, 228, 229, 3, 2, 2, 2, 229, 47, 3, 2, 2, 2, 230, 228, 3, 2, 2, 2, 231, 233, 7, 17, 2, 2, 232, 231, 3, 2, 2, 2, 233, 236, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 234, 235, 3, 2, 2, 2, 235, 49, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 237, 239, 7, 17, 2, 2, 238, 237, 3, 2, 2, 2, 239, 242, 3, 2, 2, 2, 240, 238, 3, 2, 2, 2, 240, 241, 3, 2, 2, 2, 241, 51, 3, 2, 2, 2, 242, 240, 3, 2, 2, 2, 243, 245, 7, 17, 2, 2, 244, 243, 3, 2, 2, 2, 245, 248, 3, 2, 2, 2, 246, 244, 3, 2, 2, 2, 246, 247, 3, 2, 2, 2, 247, 53, 3, 2, 2, 2, 248, 246, 3, 2, 2, 2, 249, 251, 7, 17, 2, 2, 250, 249, 3, 2, 2, 2, 251, 254, 3, 2, 2, 2, 252, 250, 3, 2, 2, 2, 252, 253, 3, 2, 2, 2, 253, 55, 3, 2, 2, 2, 254, 252, 3, 2, 2, 2, 255, 260, 7, 12, 2, 2, 256, 260, 7, 13, 2, 2, 257, 260, 7, 14, 2, 2, 258, 260, 7, 16, 2, 2, 259, 255, 3, 2, 2, 2, 259, 256, 3, 2, 2, 2, 259, 257, 3, 2, 2, 2, 259, 258, 3, 2, 2, 2, 260, 57, 3, 2, 2, 2, 19, 85, 105, 107, 115, 124, 167, 181, 187, 210, 216, 222, 228, 234, 240, 246, 252, 259] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 17, 275, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 88, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 108, 10, 3, 12, 3, 14, 3, 111, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 118, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 127, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 165, 10, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 175, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 5, 10, 189, 10, 10, 3, 10, 3, 10, 3, 11, 3, 11, 5, 11, 195, 10, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 7, 21, 216, 10, 21, 12, 21, 14, 21, 219, 11, 21, 3, 22, 7, 22, 222, 10, 22, 12, 22, 14, 22, 225, 11, 22, 3, 23, 7, 23, 228, 10, 23, 12, 23, 14, 23, 231, 11, 23, 3, 24, 7, 24, 234, 10, 24, 12, 24, 14, 24, 237, 11, 24, 3, 25, 7, 25, 240, 10, 25, 12, 25, 14, 25, 243, 11, 25, 3, 26, 7, 26, 246, 10, 26, 12, 26, 14, 26, 249, 11, 26, 3, 27, 7, 27, 252, 10, 27, 12, 27, 14, 27, 255, 11, 27, 3, 28, 7, 28, 258, 10, 28, 12, 28, 14, 28, 261, 11, 28, 3, 29, 7, 29, 264, 10, 29, 12, 29, 14, 29, 267, 11, 29, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 273, 10, 30, 3, 30, 2, 2, 3, 4, 31, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 2, 2, 2, 285, 2, 60, 3, 2, 2, 2, 4, 87, 3, 2, 2, 2, 6, 126, 3, 2, 2, 2, 8, 128, 3, 2, 2, 2, 10, 174, 3, 2, 2, 2, 12, 176, 3, 2, 2, 2, 14, 181, 3, 2, 2, 2, 16, 184, 3, 2, 2, 2, 18, 188, 3, 2, 2, 2, 20, 192, 3, 2, 2, 2, 22, 196, 3, 2, 2, 2, 24, 198, 3, 2, 2, 2, 26, 200, 3, 2, 2, 2, 28, 202, 3, 2, 2, 2, 30, 204, 3, 2, 2, 2, 32, 206, 3, 2, 2, 2, 34, 208, 3, 2, 2, 2, 36, 210, 3, 2, 2, 2, 38, 212, 3, 2, 2, 2, 40, 217, 3, 2, 2, 2, 42, 223, 3, 2, 2, 2, 44, 229, 3, 2, 2, 2, 46, 235, 3, 2, 2, 2, 48, 241, 3, 2, 2, 2, 50, 247, 3, 2, 2, 2, 52, 253, 3, 2, 2, 2, 54, 259, 3, 2, 2, 2, 56, 265, 3, 2, 2, 2, 58, 272, 3, 2, 2, 2, 60, 61, 5, 4, 3, 2, 61, 62, 7, 2, 2, 3, 62, 3, 3, 2, 2, 2, 63, 64, 8, 3, 1, 2, 64, 88, 5, 6, 4, 2, 65, 66, 5, 14, 8, 2, 66, 67, 5, 6, 4, 2, 67, 68, 5, 16, 9, 2, 68, 88, 3, 2, 2, 2, 69, 70, 5, 14, 8, 2, 70, 71, 5, 6, 4, 2, 71, 88, 3, 2, 2, 2, 72, 73, 5, 6, 4, 2, 73, 74, 5, 16, 9, 2, 74, 88, 3, 2, 2, 2, 75, 76, 5, 32, 17, 2, 76, 77, 5, 46, 24, 2, 77, 78, 5, 4, 3, 10, 78, 88, 3, 2, 2, 2, 79, 80, 5, 32, 17, 2, 80, 81, 5, 46, 24, 2, 81, 88, 3, 2, 2, 2, 82, 83, 7, 6, 2, 2, 83, 88, 5, 44, 23, 2, 84, 85, 5, 58, 30, 2, 85, 86, 5, 44, 23, 2, 86, 88, 3, 2, 2, 2, 87, 63, 3, 2, 2, 2, 87, 65, 3, 2, 2, 2, 87, 69, 3, 2, 2, 2, 87, 72, 3, 2, 2, 2, 87, 75, 3, 2, 2, 2, 87, 79, 3, 2, 2, 2, 87, 82, 3, 2, 2, 2, 87, 84, 3, 2, 2, 2, 88, 109, 3, 2, 2, 2, 89, 90, 12, 9, 2, 2, 90, 91, 5, 30, 16, 2, 91, 92, 5, 48, 25, 2, 92, 93, 5, 4, 3, 10, 93, 108, 3, 2, 2, 2, 94, 95, 12, 8, 2, 2, 95, 96, 5, 28, 15, 2, 96, 97, 5, 48, 25, 2, 97, 98, 5, 4, 3, 9, 98, 108, 3, 2, 2, 2, 99, 100, 12, 7, 2, 2, 100, 101, 5, 30, 16, 2, 101, 102, 5, 48, 25, 2, 102, 108, 3, 2, 2, 2, 103, 104, 12, 6, 2, 2, 104, 105, 5, 28, 15, 2, 105, 106, 5, 48, 25, 2, 106, 108, 3, 2, 2, 2, 107, 89, 3, 2, 2, 2, 107, 94, 3, 2, 2, 2, 107, 99, 3, 2, 2, 2, 107, 103, 3, 2, 2, 2, 108, 111, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 109, 110, 3, 2, 2, 2, 110, 5, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 112, 113, 5, 22, 12, 2, 113, 114, 5, 34, 18, 2, 114, 117, 5, 24, 13, 2, 115, 116, 7, 15, 2, 2, 116, 118, 5, 24, 13, 2, 117, 115, 3, 2, 2, 2, 117, 118, 3, 2, 2, 2, 118, 119, 3, 2, 2, 2, 119, 120, 5, 42, 22, 2, 120, 127, 3, 2, 2, 2, 121, 122, 5, 26, 14, 2, 122, 123, 5, 8, 5, 2, 123, 127, 3, 2, 2, 2, 124, 127, 5, 8, 5, 2, 125, 127, 5, 10, 6, 2, 126, 112, 3, 2, 2, 2, 126, 121, 3, 2, 2, 2, 126, 124, 3, 2, 2, 2, 126, 125, 3, 2, 2, 2, 127, 7, 3, 2, 2, 2, 128, 129, 5, 36, 19, 2, 129, 130, 5, 48, 25, 2, 130, 131, 5, 4, 3, 2, 131, 132, 5, 38, 20, 2, 132, 133, 5, 44, 23, 2, 133, 9, 3, 2, 2, 2, 134, 135, 5, 22, 12, 2, 135, 136, 5, 34, 18, 2, 136, 137, 5, 24, 13, 2, 137, 138, 7, 15, 2, 2, 138, 139, 5, 40, 21, 2, 139, 175, 3, 2, 2, 2, 140, 141, 5, 22, 12, 2, 141, 142, 5, 34, 18, 2, 142, 143, 5, 40, 21, 2, 143, 175, 3, 2, 2, 2, 144, 145, 5, 26, 14, 2, 145, 146, 5, 12, 7, 2, 146, 175, 3, 2, 2, 2, 147, 148, 5, 26, 14, 2, 148, 149, 5, 36, 19, 2, 149, 150, 5, 48, 25, 2, 150, 175, 3, 2, 2, 2, 151, 152, 5, 26, 14, 2, 152, 153, 5, 36, 19, 2, 153, 154, 5, 4, 3, 2, 154, 175, 3, 2, 2, 2, 155, 156, 5, 36, 19, 2, 156, 157, 5, 48, 25, 2, 157, 158, 5, 4, 3, 2, 158, 175, 3, 2, 2, 2, 159, 175, 5, 12, 7, 2, 160, 161, 5, 36, 19, 2, 161, 162, 5, 48, 25, 2, 162, 175, 3, 2, 2, 2, 163, 165, 7, 8, 2, 2, 164, 163, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 166, 3, 2, 2, 2, 166, 167, 7, 7, 2, 2, 167, 175, 5, 50, 26, 2, 168, 169, 7, 8, 2, 2, 169, 175, 5, 56, 29, 2, 170, 171, 5, 34, 18, 2, 171, 172, 5, 24, 13, 2, 172, 173, 5, 44, 23, 2, 173, 175, 3, 2, 2, 2, 174, 134, 3, 2, 2, 2, 174, 140, 3, 2, 2, 2, 174, 144, 3, 2, 2, 2, 174, 147, 3, 2, 2, 2, 174, 151, 3, 2, 2, 2, 174, 155, 3, 2, 2, 2, 174, 159, 3, 2, 2, 2, 174, 160, 3, 2, 2, 2, 174, 164, 3, 2, 2, 2, 174, 168, 3, 2, 2, 2, 174, 170, 3, 2, 2, 2, 175, 11, 3, 2, 2, 2, 176, 177, 5, 36, 19, 2, 177, 178, 5, 48, 25, 2, 178, 179, 5, 38, 20, 2, 179, 180, 5, 44, 23, 2, 180, 13, 3, 2, 2, 2, 181, 182, 5, 18, 10, 2, 182, 183, 5, 52, 27, 2, 183, 15, 3, 2, 2, 2, 184, 185, 5, 20, 11, 2, 185, 186, 5, 54, 28, 2, 186, 17, 3, 2, 2, 2, 187, 189, 7, 8, 2, 2, 188, 187, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 191, 7, 7, 2, 2, 191, 19, 3, 2, 2, 2, 192, 194, 7, 7, 2, 2, 193, 195, 7, 8, 2, 2, 194, 193, 3, 2, 2, 2, 194, 195, 3, 2, 2, 2, 195, 21, 3, 2, 2, 2, 196, 197, 7, 16, 2, 2, 197, 23, 3, 2, 2, 2, 198, 199, 5, 58, 30, 2, 199, 25, 3, 2, 2, 2, 200, 201, 7, 16, 2, 2, 201, 27, 3, 2, 2, 2, 202, 203, 7, 4, 2, 2, 203, 29, 3, 2, 2, 2, 204, 205, 7, 3, 2, 2, 205, 31, 3, 2, 2, 2, 206, 207, 7, 5, 2, 2, 207, 33, 3, 2, 2, 2, 208, 209, 7, 9, 2, 2, 209, 35, 3, 2, 2, 2, 210, 211, 7, 10, 2, 2, 211, 37, 3, 2, 2, 2, 212, 213, 7, 11, 2, 2, 213, 39, 3, 2, 2, 2, 214, 216, 7, 17, 2, 2, 215, 214, 3, 2, 2, 2, 216, 219, 3, 2, 2, 2, 217, 215, 3, 2, 2, 2, 217, 218, 3, 2, 2, 2, 218, 41, 3, 2, 2, 2, 219, 217, 3, 2, 2, 2, 220, 222, 7, 17, 2, 2, 221, 220, 3, 2, 2, 2, 222, 225, 3, 2, 2, 2, 223, 221, 3, 2, 2, 2, 223, 224, 3, 2, 2, 2, 224, 43, 3, 2, 2, 2, 225, 223, 3, 2, 2, 2, 226, 228, 7, 17, 2, 2, 227, 226, 3, 2, 2, 2, 228, 231, 3, 2, 2, 2, 229, 227, 3, 2, 2, 2, 229, 230, 3, 2, 2, 2, 230, 45, 3, 2, 2, 2, 231, 229, 3, 2, 2, 2, 232, 234, 7, 17, 2, 2, 233, 232, 3, 2, 2, 2, 234, 237, 3, 2, 2, 2, 235, 233, 3, 2, 2, 2, 235, 236, 3, 2, 2, 2, 236, 47, 3, 2, 2, 2, 237, 235, 3, 2, 2, 2, 238, 240, 7, 17, 2, 2, 239, 238, 3, 2, 2, 2, 240, 243, 3, 2, 2, 2, 241, 239, 3, 2, 2, 2, 241, 242, 3, 2, 2, 2, 242, 49, 3, 2, 2, 2, 243, 241, 3, 2, 2, 2, 244, 246, 7, 17, 2, 2, 245, 244, 3, 2, 2, 2, 246, 249, 3, 2, 2, 2, 247, 245, 3, 2, 2, 2, 247, 248, 3, 2, 2, 2, 248, 51, 3, 2, 2, 2, 249, 247, 3, 2, 2, 2, 250, 252, 7, 17, 2, 2, 251, 250, 3, 2, 2, 2, 252, 255, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 253, 254, 3, 2, 2, 2, 254, 53, 3, 2, 2, 2, 255, 253, 3, 2, 2, 2, 256, 258, 7, 17, 2, 2, 257, 256, 3, 2, 2, 2, 258, 261, 3, 2, 2, 2, 259, 257, 3, 2, 2, 2, 259, 260, 3, 2, 2, 2, 260, 55, 3, 2, 2, 2, 261, 259, 3, 2, 2, 2, 262, 264, 7, 17, 2, 2, 263, 262, 3, 2, 2, 2, 264, 267, 3, 2, 2, 2, 265, 263, 3, 2, 2, 2, 265, 266, 3, 2, 2, 2, 266, 57, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2, 268, 273, 7, 12, 2, 2, 269, 273, 7, 13, 2, 2, 270, 273, 7, 14, 2, 2, 271, 273, 7, 16, 2, 2, 272, 268, 3, 2, 2, 2, 272, 269, 3, 2, 2, 2, 272, 270, 3, 2, 2, 2, 272, 271, 3, 2, 2, 2, 273, 59, 3, 2, 2, 2, 21, 87, 107, 109, 117, 126, 164, 174, 188, 194, 217, 223, 229, 235, 241, 247, 253, 259, 265, 272] \ No newline at end of file diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteListener.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteListener.ts index e15b75a28ab05..93053cc3a39a0 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteListener.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteListener.ts @@ -33,6 +33,7 @@ import { IncompleteOrExpressionContext, IncompletePlusTraversalExpressionContext, IncompleteRightQuotedStringValueContext, + IncompleteUpTraversalExpressionContext, LeftParenTokenContext, NotExpressionContext, NotTokenContext, @@ -41,6 +42,7 @@ import { ParenthesizedExprContext, ParenthesizedExpressionContext, PostAttributeValueWhitespaceContext, + PostDigitsWhitespaceContext, PostDownwardTraversalWhitespaceContext, PostExpressionWhitespaceContext, PostLogicalOperatorWhitespaceContext, @@ -529,6 +531,19 @@ export interface SelectionAutoCompleteListener extends ParseTreeListener { */ exitIncompletePlusTraversalExpression?: (ctx: IncompletePlusTraversalExpressionContext) => void; + /** + * Enter a parse tree produced by the `IncompleteUpTraversalExpression` + * labeled alternative in `SelectionAutoCompleteParser.incompleteExpr`. + * @param ctx the parse tree + */ + enterIncompleteUpTraversalExpression?: (ctx: IncompleteUpTraversalExpressionContext) => void; + /** + * Exit a parse tree produced by the `IncompleteUpTraversalExpression` + * labeled alternative in `SelectionAutoCompleteParser.incompleteExpr`. + * @param ctx the parse tree + */ + exitIncompleteUpTraversalExpression?: (ctx: IncompleteUpTraversalExpressionContext) => void; + /** * Enter a parse tree produced by the `IncompleteAttributeExpressionMissingKey` * labeled alternative in `SelectionAutoCompleteParser.incompleteExpr`. @@ -843,6 +858,17 @@ export interface SelectionAutoCompleteListener extends ParseTreeListener { */ exitPostDownwardTraversalWhitespace?: (ctx: PostDownwardTraversalWhitespaceContext) => void; + /** + * Enter a parse tree produced by `SelectionAutoCompleteParser.postDigitsWhitespace`. + * @param ctx the parse tree + */ + enterPostDigitsWhitespace?: (ctx: PostDigitsWhitespaceContext) => void; + /** + * Exit a parse tree produced by `SelectionAutoCompleteParser.postDigitsWhitespace`. + * @param ctx the parse tree + */ + exitPostDigitsWhitespace?: (ctx: PostDigitsWhitespaceContext) => void; + /** * Enter a parse tree produced by `SelectionAutoCompleteParser.value`. * @param ctx the parse tree diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteParser.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteParser.ts index c199c4fe0f24c..7cb2dca42f31a 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteParser.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteParser.ts @@ -62,7 +62,8 @@ export class SelectionAutoCompleteParser extends Parser { public static readonly RULE_postNeighborTraversalWhitespace = 24; public static readonly RULE_postUpwardTraversalWhitespace = 25; public static readonly RULE_postDownwardTraversalWhitespace = 26; - public static readonly RULE_value = 27; + public static readonly RULE_postDigitsWhitespace = 27; + public static readonly RULE_value = 28; // tslint:disable:no-trailing-whitespace public static readonly ruleNames: string[] = [ 'start', @@ -92,6 +93,7 @@ export class SelectionAutoCompleteParser extends Parser { 'postNeighborTraversalWhitespace', 'postUpwardTraversalWhitespace', 'postDownwardTraversalWhitespace', + 'postDigitsWhitespace', 'value', ]; @@ -175,9 +177,9 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 56; + this.state = 58; this.expr(0); - this.state = 57; + this.state = 59; this.match(SelectionAutoCompleteParser.EOF); } } catch (re) { @@ -212,7 +214,7 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 83; + this.state = 85; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 0, this._ctx)) { case 1: @@ -221,7 +223,7 @@ export class SelectionAutoCompleteParser extends Parser { this._ctx = _localctx; _prevctx = _localctx; - this.state = 60; + this.state = 62; this.traversalAllowedExpr(); } break; @@ -231,11 +233,11 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UpAndDownTraversalExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 61; + this.state = 63; this.upTraversalExpr(); - this.state = 62; + this.state = 64; this.traversalAllowedExpr(); - this.state = 63; + this.state = 65; this.downTraversalExpr(); } break; @@ -245,9 +247,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UpTraversalExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 65; + this.state = 67; this.upTraversalExpr(); - this.state = 66; + this.state = 68; this.traversalAllowedExpr(); } break; @@ -257,9 +259,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new DownTraversalExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 68; + this.state = 70; this.traversalAllowedExpr(); - this.state = 69; + this.state = 71; this.downTraversalExpr(); } break; @@ -269,11 +271,11 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new NotExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 71; + this.state = 73; this.notToken(); - this.state = 72; + this.state = 74; this.postNotOperatorWhitespace(); - this.state = 73; + this.state = 75; this.expr(8); } break; @@ -283,9 +285,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new IncompleteNotExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 75; + this.state = 77; this.notToken(); - this.state = 76; + this.state = 78; this.postNotOperatorWhitespace(); } break; @@ -295,9 +297,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new AllExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 78; + this.state = 80; this.match(SelectionAutoCompleteParser.STAR); - this.state = 79; + this.state = 81; this.postExpressionWhitespace(); } break; @@ -307,15 +309,15 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UnmatchedValueContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 80; + this.state = 82; this.value(); - this.state = 81; + this.state = 83; this.postExpressionWhitespace(); } break; } this._ctx._stop = this._input.tryLT(-1); - this.state = 105; + this.state = 107; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 2, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -325,7 +327,7 @@ export class SelectionAutoCompleteParser extends Parser { } _prevctx = _localctx; { - this.state = 103; + this.state = 105; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 1, this._ctx)) { case 1: @@ -336,15 +338,15 @@ export class SelectionAutoCompleteParser extends Parser { _startState, SelectionAutoCompleteParser.RULE_expr, ); - this.state = 85; + this.state = 87; if (!this.precpred(this._ctx, 7)) { throw this.createFailedPredicateException('this.precpred(this._ctx, 7)'); } - this.state = 86; + this.state = 88; this.andToken(); - this.state = 87; + this.state = 89; this.postLogicalOperatorWhitespace(); - this.state = 88; + this.state = 90; this.expr(8); } break; @@ -357,15 +359,15 @@ export class SelectionAutoCompleteParser extends Parser { _startState, SelectionAutoCompleteParser.RULE_expr, ); - this.state = 90; + this.state = 92; if (!this.precpred(this._ctx, 6)) { throw this.createFailedPredicateException('this.precpred(this._ctx, 6)'); } - this.state = 91; + this.state = 93; this.orToken(); - this.state = 92; + this.state = 94; this.postLogicalOperatorWhitespace(); - this.state = 93; + this.state = 95; this.expr(7); } break; @@ -380,13 +382,13 @@ export class SelectionAutoCompleteParser extends Parser { _startState, SelectionAutoCompleteParser.RULE_expr, ); - this.state = 95; + this.state = 97; if (!this.precpred(this._ctx, 5)) { throw this.createFailedPredicateException('this.precpred(this._ctx, 5)'); } - this.state = 96; + this.state = 98; this.andToken(); - this.state = 97; + this.state = 99; this.postLogicalOperatorWhitespace(); } break; @@ -401,20 +403,20 @@ export class SelectionAutoCompleteParser extends Parser { _startState, SelectionAutoCompleteParser.RULE_expr, ); - this.state = 99; + this.state = 101; if (!this.precpred(this._ctx, 4)) { throw this.createFailedPredicateException('this.precpred(this._ctx, 4)'); } - this.state = 100; + this.state = 102; this.orToken(); - this.state = 101; + this.state = 103; this.postLogicalOperatorWhitespace(); } break; } } } - this.state = 107; + this.state = 109; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 2, this._ctx); } @@ -440,32 +442,32 @@ export class SelectionAutoCompleteParser extends Parser { ); this.enterRule(_localctx, 4, SelectionAutoCompleteParser.RULE_traversalAllowedExpr); try { - this.state = 122; + this.state = 124; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 4, this._ctx)) { case 1: _localctx = new AttributeExpressionContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 108; + this.state = 110; this.attributeName(); - this.state = 109; + this.state = 111; this.colonToken(); - this.state = 110; + this.state = 112; this.attributeValue(); - this.state = 113; + this.state = 115; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 3, this._ctx)) { case 1: { - this.state = 111; + this.state = 113; this.match(SelectionAutoCompleteParser.EQUAL); - this.state = 112; + this.state = 114; this.attributeValue(); } break; } - this.state = 115; + this.state = 117; this.postAttributeValueWhitespace(); } break; @@ -474,9 +476,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new FunctionCallExpressionContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 117; + this.state = 119; this.functionName(); - this.state = 118; + this.state = 120; this.parenthesizedExpr(); } break; @@ -485,7 +487,7 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new TraversalAllowedParenthesizedExpressionContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 120; + this.state = 122; this.parenthesizedExpr(); } break; @@ -494,7 +496,7 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new IncompleteExpressionContext(_localctx); this.enterOuterAlt(_localctx, 4); { - this.state = 121; + this.state = 123; this.incompleteExpr(); } break; @@ -520,15 +522,15 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new ParenthesizedExpressionContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 124; + this.state = 126; this.leftParenToken(); - this.state = 125; + this.state = 127; this.postLogicalOperatorWhitespace(); - this.state = 126; + this.state = 128; this.expr(0); - this.state = 127; + this.state = 129; this.rightParenToken(); - this.state = 128; + this.state = 130; this.postExpressionWhitespace(); } } catch (re) { @@ -548,23 +550,24 @@ export class SelectionAutoCompleteParser extends Parser { public incompleteExpr(): IncompleteExprContext { let _localctx: IncompleteExprContext = new IncompleteExprContext(this._ctx, this.state); this.enterRule(_localctx, 8, SelectionAutoCompleteParser.RULE_incompleteExpr); + let _la: number; try { - this.state = 165; + this.state = 172; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 5, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 6, this._ctx)) { case 1: _localctx = new IncompleteAttributeExpressionMissingSecondValueContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 130; + this.state = 132; this.attributeName(); - this.state = 131; + this.state = 133; this.colonToken(); - this.state = 132; + this.state = 134; this.attributeValue(); - this.state = 133; + this.state = 135; this.match(SelectionAutoCompleteParser.EQUAL); - this.state = 134; + this.state = 136; this.attributeValueWhitespace(); } break; @@ -573,11 +576,11 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new IncompleteAttributeExpressionMissingValueContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 136; + this.state = 138; this.attributeName(); - this.state = 137; + this.state = 139; this.colonToken(); - this.state = 138; + this.state = 140; this.attributeValueWhitespace(); } break; @@ -586,9 +589,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new ExpressionlessFunctionExpressionContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 140; + this.state = 142; this.functionName(); - this.state = 141; + this.state = 143; this.expressionLessParenthesizedExpr(); } break; @@ -597,11 +600,11 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UnclosedExpressionlessFunctionExpressionContext(_localctx); this.enterOuterAlt(_localctx, 4); { - this.state = 143; + this.state = 145; this.functionName(); - this.state = 144; + this.state = 146; this.leftParenToken(); - this.state = 145; + this.state = 147; this.postLogicalOperatorWhitespace(); } break; @@ -610,11 +613,11 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UnclosedFunctionExpressionContext(_localctx); this.enterOuterAlt(_localctx, 5); { - this.state = 147; + this.state = 149; this.functionName(); - this.state = 148; + this.state = 150; this.leftParenToken(); - this.state = 149; + this.state = 151; this.expr(0); } break; @@ -623,11 +626,11 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UnclosedParenthesizedExpressionContext(_localctx); this.enterOuterAlt(_localctx, 6); { - this.state = 151; + this.state = 153; this.leftParenToken(); - this.state = 152; + this.state = 154; this.postLogicalOperatorWhitespace(); - this.state = 153; + this.state = 155; this.expr(0); } break; @@ -636,7 +639,7 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new ExpressionlessParenthesizedExpressionWrapperContext(_localctx); this.enterOuterAlt(_localctx, 7); { - this.state = 155; + this.state = 157; this.expressionLessParenthesizedExpr(); } break; @@ -645,9 +648,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UnclosedExpressionlessParenthesizedExpressionContext(_localctx); this.enterOuterAlt(_localctx, 8); { - this.state = 156; + this.state = 158; this.leftParenToken(); - this.state = 157; + this.state = 159; this.postLogicalOperatorWhitespace(); } break; @@ -656,22 +659,43 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new IncompletePlusTraversalExpressionContext(_localctx); this.enterOuterAlt(_localctx, 9); { - this.state = 159; + this.state = 162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === SelectionAutoCompleteParser.DIGITS) { + { + this.state = 161; + this.match(SelectionAutoCompleteParser.DIGITS); + } + } + + this.state = 164; this.match(SelectionAutoCompleteParser.PLUS); - this.state = 160; + this.state = 165; this.postNeighborTraversalWhitespace(); } break; case 10: - _localctx = new IncompleteAttributeExpressionMissingKeyContext(_localctx); + _localctx = new IncompleteUpTraversalExpressionContext(_localctx); this.enterOuterAlt(_localctx, 10); { - this.state = 161; + this.state = 166; + this.match(SelectionAutoCompleteParser.DIGITS); + this.state = 167; + this.postDigitsWhitespace(); + } + break; + + case 11: + _localctx = new IncompleteAttributeExpressionMissingKeyContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 168; this.colonToken(); - this.state = 162; + this.state = 169; this.attributeValue(); - this.state = 163; + this.state = 170; this.postExpressionWhitespace(); } break; @@ -698,13 +722,13 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new ExpressionlessParenthesizedExpressionContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 167; + this.state = 174; this.leftParenToken(); - this.state = 168; + this.state = 175; this.postLogicalOperatorWhitespace(); - this.state = 169; + this.state = 176; this.rightParenToken(); - this.state = 170; + this.state = 177; this.postExpressionWhitespace(); } } catch (re) { @@ -728,9 +752,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UpTraversalContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 172; + this.state = 179; this.upTraversalToken(); - this.state = 173; + this.state = 180; this.postUpwardTraversalWhitespace(); } } catch (re) { @@ -754,9 +778,9 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new DownTraversalContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 175; + this.state = 182; this.downTraversalToken(); - this.state = 176; + this.state = 183; this.postDownwardTraversalWhitespace(); } } catch (re) { @@ -780,17 +804,17 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 179; + this.state = 186; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SelectionAutoCompleteParser.DIGITS) { { - this.state = 178; + this.state = 185; this.match(SelectionAutoCompleteParser.DIGITS); } } - this.state = 181; + this.state = 188; this.match(SelectionAutoCompleteParser.PLUS); } } catch (re) { @@ -816,14 +840,14 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 183; + this.state = 190; this.match(SelectionAutoCompleteParser.PLUS); - this.state = 185; + this.state = 192; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 7, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 8, this._ctx)) { case 1: { - this.state = 184; + this.state = 191; this.match(SelectionAutoCompleteParser.DIGITS); } break; @@ -849,7 +873,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 187; + this.state = 194; this.match(SelectionAutoCompleteParser.IDENTIFIER); } } catch (re) { @@ -872,7 +896,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 189; + this.state = 196; this.value(); } } catch (re) { @@ -895,7 +919,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 191; + this.state = 198; this.match(SelectionAutoCompleteParser.IDENTIFIER); } } catch (re) { @@ -918,7 +942,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 193; + this.state = 200; this.match(SelectionAutoCompleteParser.OR); } } catch (re) { @@ -941,7 +965,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 195; + this.state = 202; this.match(SelectionAutoCompleteParser.AND); } } catch (re) { @@ -964,7 +988,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 197; + this.state = 204; this.match(SelectionAutoCompleteParser.NOT); } } catch (re) { @@ -987,7 +1011,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 199; + this.state = 206; this.match(SelectionAutoCompleteParser.COLON); } } catch (re) { @@ -1010,7 +1034,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 201; + this.state = 208; this.match(SelectionAutoCompleteParser.LPAREN); } } catch (re) { @@ -1033,7 +1057,7 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 203; + this.state = 210; this.match(SelectionAutoCompleteParser.RPAREN); } } catch (re) { @@ -1060,21 +1084,21 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 208; + this.state = 215; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 8, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 9, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 205; + this.state = 212; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 210; + this.state = 217; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 8, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 9, this._ctx); } } } catch (re) { @@ -1101,21 +1125,21 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 214; + this.state = 221; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 9, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 10, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 211; + this.state = 218; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 216; + this.state = 223; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 9, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 10, this._ctx); } } } catch (re) { @@ -1142,21 +1166,21 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 220; + this.state = 227; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 10, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 217; + this.state = 224; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 222; + this.state = 229; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 10, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); } } } catch (re) { @@ -1183,21 +1207,21 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 226; + this.state = 233; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 12, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 223; + this.state = 230; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 228; + this.state = 235; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 12, this._ctx); } } } catch (re) { @@ -1222,21 +1246,21 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 232; + this.state = 239; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 12, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 13, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 229; + this.state = 236; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 234; + this.state = 241; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 12, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 13, this._ctx); } } } catch (re) { @@ -1261,21 +1285,21 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 238; + this.state = 245; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 13, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 14, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 235; + this.state = 242; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 240; + this.state = 247; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 13, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 14, this._ctx); } } } catch (re) { @@ -1300,17 +1324,17 @@ export class SelectionAutoCompleteParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 244; + this.state = 251; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === SelectionAutoCompleteParser.WS) { { { - this.state = 241; + this.state = 248; this.match(SelectionAutoCompleteParser.WS); } } - this.state = 246; + this.state = 253; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -1337,21 +1361,62 @@ export class SelectionAutoCompleteParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 250; + this.state = 257; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 254; + this.match(SelectionAutoCompleteParser.WS); + } + } + } + this.state = 259; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx); + } + } + } catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public postDigitsWhitespace(): PostDigitsWhitespaceContext { + const _localctx: PostDigitsWhitespaceContext = new PostDigitsWhitespaceContext( + this._ctx, + this.state, + ); + this.enterRule(_localctx, 54, SelectionAutoCompleteParser.RULE_postDigitsWhitespace); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 263; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 17, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 247; + this.state = 260; this.match(SelectionAutoCompleteParser.WS); } } } - this.state = 252; + this.state = 265; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 17, this._ctx); } } } catch (re) { @@ -1370,16 +1435,16 @@ export class SelectionAutoCompleteParser extends Parser { // @RuleVersion(0) public value(): ValueContext { let _localctx: ValueContext = new ValueContext(this._ctx, this.state); - this.enterRule(_localctx, 54, SelectionAutoCompleteParser.RULE_value); + this.enterRule(_localctx, 56, SelectionAutoCompleteParser.RULE_value); try { - this.state = 257; + this.state = 270; this._errHandler.sync(this); switch (this._input.LA(1)) { case SelectionAutoCompleteParser.QUOTED_STRING: _localctx = new QuotedStringValueContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 253; + this.state = 266; this.match(SelectionAutoCompleteParser.QUOTED_STRING); } break; @@ -1387,7 +1452,7 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new IncompleteLeftQuotedStringValueContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 254; + this.state = 267; this.match(SelectionAutoCompleteParser.INCOMPLETE_LEFT_QUOTED_STRING); } break; @@ -1395,7 +1460,7 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new IncompleteRightQuotedStringValueContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 255; + this.state = 268; this.match(SelectionAutoCompleteParser.INCOMPLETE_RIGHT_QUOTED_STRING); } break; @@ -1403,7 +1468,7 @@ export class SelectionAutoCompleteParser extends Parser { _localctx = new UnquotedStringValueContext(_localctx); this.enterOuterAlt(_localctx, 4); { - this.state = 256; + this.state = 269; this.match(SelectionAutoCompleteParser.IDENTIFIER); } break; @@ -1449,120 +1514,128 @@ export class SelectionAutoCompleteParser extends Parser { } public static readonly _serializedATN: string = - '\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x11\u0106\x04' + + '\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x11\u0113\x04' + '\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04' + '\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r' + '\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12' + '\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17' + '\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C' + - '\x04\x1D\t\x1D\x03\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03' + + '\x04\x1D\t\x1D\x04\x1E\t\x1E\x03\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03' + '\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03' + '\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03' + - '\x03\x03\x03\x03\x05\x03V\n\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03' + + '\x03\x03\x03\x03\x03\x03\x03\x05\x03X\n\x03\x03\x03\x03\x03\x03\x03\x03' + '\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03' + - '\x03\x03\x03\x03\x03\x03\x03\x03\x07\x03j\n\x03\f\x03\x0E\x03m\v\x03\x03' + - '\x04\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04t\n\x04\x03\x04\x03\x04\x03' + - '\x04\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04}\n\x04\x03\x05\x03\x05\x03' + - '\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03' + - '\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03' + - '\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03' + - '\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03' + - '\x06\x03\x06\x03\x06\x05\x06\xA8\n\x06\x03\x07\x03\x07\x03\x07\x03\x07' + - '\x03\x07\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\n\x05\n\xB6\n\n\x03\n' + - '\x03\n\x03\v\x03\v\x05\v\xBC\n\v\x03\f\x03\f\x03\r\x03\r\x03\x0E\x03\x0E' + - '\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13' + - '\x03\x13\x03\x14\x03\x14\x03\x15\x07\x15\xD1\n\x15\f\x15\x0E\x15\xD4\v' + - '\x15\x03\x16\x07\x16\xD7\n\x16\f\x16\x0E\x16\xDA\v\x16\x03\x17\x07\x17' + - '\xDD\n\x17\f\x17\x0E\x17\xE0\v\x17\x03\x18\x07\x18\xE3\n\x18\f\x18\x0E' + - '\x18\xE6\v\x18\x03\x19\x07\x19\xE9\n\x19\f\x19\x0E\x19\xEC\v\x19\x03\x1A' + - '\x07\x1A\xEF\n\x1A\f\x1A\x0E\x1A\xF2\v\x1A\x03\x1B\x07\x1B\xF5\n\x1B\f' + - '\x1B\x0E\x1B\xF8\v\x1B\x03\x1C\x07\x1C\xFB\n\x1C\f\x1C\x0E\x1C\xFE\v\x1C' + - '\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x05\x1D\u0104\n\x1D\x03\x1D\x02\x02\x03' + - '\x04\x1E\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12' + - '\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02"\x02$\x02&' + - '\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02\x02\x02\x02\u010E\x02' + - ':\x03\x02\x02\x02\x04U\x03\x02\x02\x02\x06|\x03\x02\x02\x02\b~\x03\x02' + - '\x02\x02\n\xA7\x03\x02\x02\x02\f\xA9\x03\x02\x02\x02\x0E\xAE\x03\x02\x02' + - '\x02\x10\xB1\x03\x02\x02\x02\x12\xB5\x03\x02\x02\x02\x14\xB9\x03\x02\x02' + - '\x02\x16\xBD\x03\x02\x02\x02\x18\xBF\x03\x02\x02\x02\x1A\xC1\x03\x02\x02' + - '\x02\x1C\xC3\x03\x02\x02\x02\x1E\xC5\x03\x02\x02\x02 \xC7\x03\x02\x02' + - '\x02"\xC9\x03\x02\x02\x02$\xCB\x03\x02\x02\x02&\xCD\x03\x02\x02\x02(' + - '\xD2\x03\x02\x02\x02*\xD8\x03\x02\x02\x02,\xDE\x03\x02\x02\x02.\xE4\x03' + - '\x02\x02\x020\xEA\x03\x02\x02\x022\xF0\x03\x02\x02\x024\xF6\x03\x02\x02' + - '\x026\xFC\x03\x02\x02\x028\u0103\x03\x02\x02\x02:;\x05\x04\x03\x02;<\x07' + - '\x02\x02\x03<\x03\x03\x02\x02\x02=>\b\x03\x01\x02>V\x05\x06\x04\x02?@' + - '\x05\x0E\b\x02@A\x05\x06\x04\x02AB\x05\x10\t\x02BV\x03\x02\x02\x02CD\x05' + - '\x0E\b\x02DE\x05\x06\x04\x02EV\x03\x02\x02\x02FG\x05\x06\x04\x02GH\x05' + - '\x10\t\x02HV\x03\x02\x02\x02IJ\x05 \x11\x02JK\x05.\x18\x02KL\x05\x04\x03' + - '\nLV\x03\x02\x02\x02MN\x05 \x11\x02NO\x05.\x18\x02OV\x03\x02\x02\x02P' + - 'Q\x07\x06\x02\x02QV\x05,\x17\x02RS\x058\x1D\x02ST\x05,\x17\x02TV\x03\x02' + - '\x02\x02U=\x03\x02\x02\x02U?\x03\x02\x02\x02UC\x03\x02\x02\x02UF\x03\x02' + - '\x02\x02UI\x03\x02\x02\x02UM\x03\x02\x02\x02UP\x03\x02\x02\x02UR\x03\x02' + - '\x02\x02Vk\x03\x02\x02\x02WX\f\t\x02\x02XY\x05\x1E\x10\x02YZ\x050\x19' + - '\x02Z[\x05\x04\x03\n[j\x03\x02\x02\x02\\]\f\b\x02\x02]^\x05\x1C\x0F\x02' + - '^_\x050\x19\x02_`\x05\x04\x03\t`j\x03\x02\x02\x02ab\f\x07\x02\x02bc\x05' + - '\x1E\x10\x02cd\x050\x19\x02dj\x03\x02\x02\x02ef\f\x06\x02\x02fg\x05\x1C' + - '\x0F\x02gh\x050\x19\x02hj\x03\x02\x02\x02iW\x03\x02\x02\x02i\\\x03\x02' + - '\x02\x02ia\x03\x02\x02\x02ie\x03\x02\x02\x02jm\x03\x02\x02\x02ki\x03\x02' + - '\x02\x02kl\x03\x02\x02\x02l\x05\x03\x02\x02\x02mk\x03\x02\x02\x02no\x05' + - '\x16\f\x02op\x05"\x12\x02ps\x05\x18\r\x02qr\x07\x0F\x02\x02rt\x05\x18' + - '\r\x02sq\x03\x02\x02\x02st\x03\x02\x02\x02tu\x03\x02\x02\x02uv\x05*\x16' + - '\x02v}\x03\x02\x02\x02wx\x05\x1A\x0E\x02xy\x05\b\x05\x02y}\x03\x02\x02' + - '\x02z}\x05\b\x05\x02{}\x05\n\x06\x02|n\x03\x02\x02\x02|w\x03\x02\x02\x02' + - '|z\x03\x02\x02\x02|{\x03\x02\x02\x02}\x07\x03\x02\x02\x02~\x7F\x05$\x13' + - '\x02\x7F\x80\x050\x19\x02\x80\x81\x05\x04\x03\x02\x81\x82\x05&\x14\x02' + - '\x82\x83\x05,\x17\x02\x83\t\x03\x02\x02\x02\x84\x85\x05\x16\f\x02\x85' + - '\x86\x05"\x12\x02\x86\x87\x05\x18\r\x02\x87\x88\x07\x0F\x02\x02\x88\x89' + - '\x05(\x15\x02\x89\xA8\x03\x02\x02\x02\x8A\x8B\x05\x16\f\x02\x8B\x8C\x05' + - '"\x12\x02\x8C\x8D\x05(\x15\x02\x8D\xA8\x03\x02\x02\x02\x8E\x8F\x05\x1A' + - '\x0E\x02\x8F\x90\x05\f\x07\x02\x90\xA8\x03\x02\x02\x02\x91\x92\x05\x1A' + - '\x0E\x02\x92\x93\x05$\x13\x02\x93\x94\x050\x19\x02\x94\xA8\x03\x02\x02' + - '\x02\x95\x96\x05\x1A\x0E\x02\x96\x97\x05$\x13\x02\x97\x98\x05\x04\x03' + - '\x02\x98\xA8\x03\x02\x02\x02\x99\x9A\x05$\x13\x02\x9A\x9B\x050\x19\x02' + - '\x9B\x9C\x05\x04\x03\x02\x9C\xA8\x03\x02\x02\x02\x9D\xA8\x05\f\x07\x02' + - '\x9E\x9F\x05$\x13\x02\x9F\xA0\x050\x19\x02\xA0\xA8\x03\x02\x02\x02\xA1' + - '\xA2\x07\x07\x02\x02\xA2\xA8\x052\x1A\x02\xA3\xA4\x05"\x12\x02\xA4\xA5' + - '\x05\x18\r\x02\xA5\xA6\x05,\x17\x02\xA6\xA8\x03\x02\x02\x02\xA7\x84\x03' + - '\x02\x02\x02\xA7\x8A\x03\x02\x02\x02\xA7\x8E\x03\x02\x02\x02\xA7\x91\x03' + - '\x02\x02\x02\xA7\x95\x03\x02\x02\x02\xA7\x99\x03\x02\x02\x02\xA7\x9D\x03' + - '\x02\x02\x02\xA7\x9E\x03\x02\x02\x02\xA7\xA1\x03\x02\x02\x02\xA7\xA3\x03' + - '\x02\x02\x02\xA8\v\x03\x02\x02\x02\xA9\xAA\x05$\x13\x02\xAA\xAB\x050\x19' + - '\x02\xAB\xAC\x05&\x14\x02\xAC\xAD\x05,\x17\x02\xAD\r\x03\x02\x02\x02\xAE' + - '\xAF\x05\x12\n\x02\xAF\xB0\x054\x1B\x02\xB0\x0F\x03\x02\x02\x02\xB1\xB2' + - '\x05\x14\v\x02\xB2\xB3\x056\x1C\x02\xB3\x11\x03\x02\x02\x02\xB4\xB6\x07' + - '\b\x02\x02\xB5\xB4\x03\x02\x02\x02\xB5\xB6\x03\x02\x02\x02\xB6\xB7\x03' + - '\x02\x02\x02\xB7\xB8\x07\x07\x02\x02\xB8\x13\x03\x02\x02\x02\xB9\xBB\x07' + - '\x07\x02\x02\xBA\xBC\x07\b\x02\x02\xBB\xBA\x03\x02\x02\x02\xBB\xBC\x03' + - '\x02\x02\x02\xBC\x15\x03\x02\x02\x02\xBD\xBE\x07\x10\x02\x02\xBE\x17\x03' + - '\x02\x02\x02\xBF\xC0\x058\x1D\x02\xC0\x19\x03\x02\x02\x02\xC1\xC2\x07' + - '\x10\x02\x02\xC2\x1B\x03\x02\x02\x02\xC3\xC4\x07\x04\x02\x02\xC4\x1D\x03' + - '\x02\x02\x02\xC5\xC6\x07\x03\x02\x02\xC6\x1F\x03\x02\x02\x02\xC7\xC8\x07' + - '\x05\x02\x02\xC8!\x03\x02\x02\x02\xC9\xCA\x07\t\x02\x02\xCA#\x03\x02\x02' + - '\x02\xCB\xCC\x07\n\x02\x02\xCC%\x03\x02\x02\x02\xCD\xCE\x07\v\x02\x02' + - "\xCE'\x03\x02\x02\x02\xCF\xD1\x07\x11\x02\x02\xD0\xCF\x03\x02\x02\x02" + - '\xD1\xD4\x03\x02\x02\x02\xD2\xD0\x03\x02\x02\x02\xD2\xD3\x03\x02\x02\x02' + - '\xD3)\x03\x02\x02\x02\xD4\xD2\x03\x02\x02\x02\xD5\xD7\x07\x11\x02\x02' + - '\xD6\xD5\x03\x02\x02\x02\xD7\xDA\x03\x02\x02\x02\xD8\xD6\x03\x02\x02\x02' + - '\xD8\xD9\x03\x02\x02\x02\xD9+\x03\x02\x02\x02\xDA\xD8\x03\x02\x02\x02' + - '\xDB\xDD\x07\x11\x02\x02\xDC\xDB\x03\x02\x02\x02\xDD\xE0\x03\x02\x02\x02' + - '\xDE\xDC\x03\x02\x02\x02\xDE\xDF\x03\x02\x02\x02\xDF-\x03\x02\x02\x02' + - '\xE0\xDE\x03\x02\x02\x02\xE1\xE3\x07\x11\x02\x02\xE2\xE1\x03\x02\x02\x02' + - '\xE3\xE6\x03\x02\x02\x02\xE4\xE2\x03\x02\x02\x02\xE4\xE5\x03\x02\x02\x02' + - '\xE5/\x03\x02\x02\x02\xE6\xE4\x03\x02\x02\x02\xE7\xE9\x07\x11\x02\x02' + - '\xE8\xE7\x03\x02\x02\x02\xE9\xEC\x03\x02\x02\x02\xEA\xE8\x03\x02\x02\x02' + - '\xEA\xEB\x03\x02\x02\x02\xEB1\x03\x02\x02\x02\xEC\xEA\x03\x02\x02\x02' + - '\xED\xEF\x07\x11\x02\x02\xEE\xED\x03\x02\x02\x02\xEF\xF2\x03\x02\x02\x02' + - '\xF0\xEE\x03\x02\x02\x02\xF0\xF1\x03\x02\x02\x02\xF13\x03\x02\x02\x02' + - '\xF2\xF0\x03\x02\x02\x02\xF3\xF5\x07\x11\x02\x02\xF4\xF3\x03\x02\x02\x02' + - '\xF5\xF8\x03\x02\x02\x02\xF6\xF4\x03\x02\x02\x02\xF6\xF7\x03\x02\x02\x02' + - '\xF75\x03\x02\x02\x02\xF8\xF6\x03\x02\x02\x02\xF9\xFB\x07\x11\x02\x02' + - '\xFA\xF9\x03\x02\x02\x02\xFB\xFE\x03\x02\x02\x02\xFC\xFA\x03\x02\x02\x02' + - '\xFC\xFD\x03\x02\x02\x02\xFD7\x03\x02\x02\x02\xFE\xFC\x03\x02\x02\x02' + - '\xFF\u0104\x07\f\x02\x02\u0100\u0104\x07\r\x02\x02\u0101\u0104\x07\x0E' + - '\x02\x02\u0102\u0104\x07\x10\x02\x02\u0103\xFF\x03\x02\x02\x02\u0103\u0100' + - '\x03\x02\x02\x02\u0103\u0101\x03\x02\x02\x02\u0103\u0102\x03\x02\x02\x02' + - '\u01049\x03\x02\x02\x02\x13Uiks|\xA7\xB5\xBB\xD2\xD8\xDE\xE4\xEA\xF0\xF6' + - '\xFC\u0103'; + '\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x07\x03l\n\x03\f\x03\x0E' + + '\x03o\v\x03\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04v\n\x04\x03' + + '\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04\x7F\n\x04' + + '\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06' + + '\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06' + + '\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06' + + '\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06' + + '\x05\x06\xA5\n\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03' + + '\x06\x03\x06\x05\x06\xAF\n\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07' + + '\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\n\x05\n\xBD\n\n\x03\n\x03\n\x03' + + '\v\x03\v\x05\v\xC3\n\v\x03\f\x03\f\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0F' + + '\x03\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03\x13' + + '\x03\x14\x03\x14\x03\x15\x07\x15\xD8\n\x15\f\x15\x0E\x15\xDB\v\x15\x03' + + '\x16\x07\x16\xDE\n\x16\f\x16\x0E\x16\xE1\v\x16\x03\x17\x07\x17\xE4\n\x17' + + '\f\x17\x0E\x17\xE7\v\x17\x03\x18\x07\x18\xEA\n\x18\f\x18\x0E\x18\xED\v' + + '\x18\x03\x19\x07\x19\xF0\n\x19\f\x19\x0E\x19\xF3\v\x19\x03\x1A\x07\x1A' + + '\xF6\n\x1A\f\x1A\x0E\x1A\xF9\v\x1A\x03\x1B\x07\x1B\xFC\n\x1B\f\x1B\x0E' + + '\x1B\xFF\v\x1B\x03\x1C\x07\x1C\u0102\n\x1C\f\x1C\x0E\x1C\u0105\v\x1C\x03' + + '\x1D\x07\x1D\u0108\n\x1D\f\x1D\x0E\x1D\u010B\v\x1D\x03\x1E\x03\x1E\x03' + + '\x1E\x03\x1E\x05\x1E\u0111\n\x1E\x03\x1E\x02\x02\x03\x04\x1F\x02\x02\x04' + + '\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02\x14\x02\x16\x02' + + '\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02"\x02$\x02&\x02(\x02*\x02,\x02.' + + '\x020\x022\x024\x026\x028\x02:\x02\x02\x02\x02\u011D\x02<\x03\x02\x02' + + '\x02\x04W\x03\x02\x02\x02\x06~\x03\x02\x02\x02\b\x80\x03\x02\x02\x02\n' + + '\xAE\x03\x02\x02\x02\f\xB0\x03\x02\x02\x02\x0E\xB5\x03\x02\x02\x02\x10' + + '\xB8\x03\x02\x02\x02\x12\xBC\x03\x02\x02\x02\x14\xC0\x03\x02\x02\x02\x16' + + '\xC4\x03\x02\x02\x02\x18\xC6\x03\x02\x02\x02\x1A\xC8\x03\x02\x02\x02\x1C' + + '\xCA\x03\x02\x02\x02\x1E\xCC\x03\x02\x02\x02 \xCE\x03\x02\x02\x02"\xD0' + + '\x03\x02\x02\x02$\xD2\x03\x02\x02\x02&\xD4\x03\x02\x02\x02(\xD9\x03\x02' + + '\x02\x02*\xDF\x03\x02\x02\x02,\xE5\x03\x02\x02\x02.\xEB\x03\x02\x02\x02' + + '0\xF1\x03\x02\x02\x022\xF7\x03\x02\x02\x024\xFD\x03\x02\x02\x026\u0103' + + '\x03\x02\x02\x028\u0109\x03\x02\x02\x02:\u0110\x03\x02\x02\x02<=\x05\x04' + + '\x03\x02=>\x07\x02\x02\x03>\x03\x03\x02\x02\x02?@\b\x03\x01\x02@X\x05' + + '\x06\x04\x02AB\x05\x0E\b\x02BC\x05\x06\x04\x02CD\x05\x10\t\x02DX\x03\x02' + + '\x02\x02EF\x05\x0E\b\x02FG\x05\x06\x04\x02GX\x03\x02\x02\x02HI\x05\x06' + + '\x04\x02IJ\x05\x10\t\x02JX\x03\x02\x02\x02KL\x05 \x11\x02LM\x05.\x18\x02' + + 'MN\x05\x04\x03\nNX\x03\x02\x02\x02OP\x05 \x11\x02PQ\x05.\x18\x02QX\x03' + + '\x02\x02\x02RS\x07\x06\x02\x02SX\x05,\x17\x02TU\x05:\x1E\x02UV\x05,\x17' + + '\x02VX\x03\x02\x02\x02W?\x03\x02\x02\x02WA\x03\x02\x02\x02WE\x03\x02\x02' + + '\x02WH\x03\x02\x02\x02WK\x03\x02\x02\x02WO\x03\x02\x02\x02WR\x03\x02\x02' + + '\x02WT\x03\x02\x02\x02Xm\x03\x02\x02\x02YZ\f\t\x02\x02Z[\x05\x1E\x10\x02' + + '[\\\x050\x19\x02\\]\x05\x04\x03\n]l\x03\x02\x02\x02^_\f\b\x02\x02_`\x05' + + '\x1C\x0F\x02`a\x050\x19\x02ab\x05\x04\x03\tbl\x03\x02\x02\x02cd\f\x07' + + '\x02\x02de\x05\x1E\x10\x02ef\x050\x19\x02fl\x03\x02\x02\x02gh\f\x06\x02' + + '\x02hi\x05\x1C\x0F\x02ij\x050\x19\x02jl\x03\x02\x02\x02kY\x03\x02\x02' + + '\x02k^\x03\x02\x02\x02kc\x03\x02\x02\x02kg\x03\x02\x02\x02lo\x03\x02\x02' + + '\x02mk\x03\x02\x02\x02mn\x03\x02\x02\x02n\x05\x03\x02\x02\x02om\x03\x02' + + '\x02\x02pq\x05\x16\f\x02qr\x05"\x12\x02ru\x05\x18\r\x02st\x07\x0F\x02' + + '\x02tv\x05\x18\r\x02us\x03\x02\x02\x02uv\x03\x02\x02\x02vw\x03\x02\x02' + + '\x02wx\x05*\x16\x02x\x7F\x03\x02\x02\x02yz\x05\x1A\x0E\x02z{\x05\b\x05' + + '\x02{\x7F\x03\x02\x02\x02|\x7F\x05\b\x05\x02}\x7F\x05\n\x06\x02~p\x03' + + '\x02\x02\x02~y\x03\x02\x02\x02~|\x03\x02\x02\x02~}\x03\x02\x02\x02\x7F' + + '\x07\x03\x02\x02\x02\x80\x81\x05$\x13\x02\x81\x82\x050\x19\x02\x82\x83' + + '\x05\x04\x03\x02\x83\x84\x05&\x14\x02\x84\x85\x05,\x17\x02\x85\t\x03\x02' + + '\x02\x02\x86\x87\x05\x16\f\x02\x87\x88\x05"\x12\x02\x88\x89\x05\x18\r' + + '\x02\x89\x8A\x07\x0F\x02\x02\x8A\x8B\x05(\x15\x02\x8B\xAF\x03\x02\x02' + + '\x02\x8C\x8D\x05\x16\f\x02\x8D\x8E\x05"\x12\x02\x8E\x8F\x05(\x15\x02' + + '\x8F\xAF\x03\x02\x02\x02\x90\x91\x05\x1A\x0E\x02\x91\x92\x05\f\x07\x02' + + '\x92\xAF\x03\x02\x02\x02\x93\x94\x05\x1A\x0E\x02\x94\x95\x05$\x13\x02' + + '\x95\x96\x050\x19\x02\x96\xAF\x03\x02\x02\x02\x97\x98\x05\x1A\x0E\x02' + + '\x98\x99\x05$\x13\x02\x99\x9A\x05\x04\x03\x02\x9A\xAF\x03\x02\x02\x02' + + '\x9B\x9C\x05$\x13\x02\x9C\x9D\x050\x19\x02\x9D\x9E\x05\x04\x03\x02\x9E' + + '\xAF\x03\x02\x02\x02\x9F\xAF\x05\f\x07\x02\xA0\xA1\x05$\x13\x02\xA1\xA2' + + '\x050\x19\x02\xA2\xAF\x03\x02\x02\x02\xA3\xA5\x07\b\x02\x02\xA4\xA3\x03' + + '\x02\x02\x02\xA4\xA5\x03\x02\x02\x02\xA5\xA6\x03\x02\x02\x02\xA6\xA7\x07' + + '\x07\x02\x02\xA7\xAF\x052\x1A\x02\xA8\xA9\x07\b\x02\x02\xA9\xAF\x058\x1D' + + '\x02\xAA\xAB\x05"\x12\x02\xAB\xAC\x05\x18\r\x02\xAC\xAD\x05,\x17\x02' + + '\xAD\xAF\x03\x02\x02\x02\xAE\x86\x03\x02\x02\x02\xAE\x8C\x03\x02\x02\x02' + + '\xAE\x90\x03\x02\x02\x02\xAE\x93\x03\x02\x02\x02\xAE\x97\x03\x02\x02\x02' + + '\xAE\x9B\x03\x02\x02\x02\xAE\x9F\x03\x02\x02\x02\xAE\xA0\x03\x02\x02\x02' + + '\xAE\xA4\x03\x02\x02\x02\xAE\xA8\x03\x02\x02\x02\xAE\xAA\x03\x02\x02\x02' + + '\xAF\v\x03\x02\x02\x02\xB0\xB1\x05$\x13\x02\xB1\xB2\x050\x19\x02\xB2\xB3' + + '\x05&\x14\x02\xB3\xB4\x05,\x17\x02\xB4\r\x03\x02\x02\x02\xB5\xB6\x05\x12' + + '\n\x02\xB6\xB7\x054\x1B\x02\xB7\x0F\x03\x02\x02\x02\xB8\xB9\x05\x14\v' + + '\x02\xB9\xBA\x056\x1C\x02\xBA\x11\x03\x02\x02\x02\xBB\xBD\x07\b\x02\x02' + + '\xBC\xBB\x03\x02\x02\x02\xBC\xBD\x03\x02\x02\x02\xBD\xBE\x03\x02\x02\x02' + + '\xBE\xBF\x07\x07\x02\x02\xBF\x13\x03\x02\x02\x02\xC0\xC2\x07\x07\x02\x02' + + '\xC1\xC3\x07\b\x02\x02\xC2\xC1\x03\x02\x02\x02\xC2\xC3\x03\x02\x02\x02' + + '\xC3\x15\x03\x02\x02\x02\xC4\xC5\x07\x10\x02\x02\xC5\x17\x03\x02\x02\x02' + + '\xC6\xC7\x05:\x1E\x02\xC7\x19\x03\x02\x02\x02\xC8\xC9\x07\x10\x02\x02' + + '\xC9\x1B\x03\x02\x02\x02\xCA\xCB\x07\x04\x02\x02\xCB\x1D\x03\x02\x02\x02' + + '\xCC\xCD\x07\x03\x02\x02\xCD\x1F\x03\x02\x02\x02\xCE\xCF\x07\x05\x02\x02' + + '\xCF!\x03\x02\x02\x02\xD0\xD1\x07\t\x02\x02\xD1#\x03\x02\x02\x02\xD2\xD3' + + "\x07\n\x02\x02\xD3%\x03\x02\x02\x02\xD4\xD5\x07\v\x02\x02\xD5'\x03\x02" + + '\x02\x02\xD6\xD8\x07\x11\x02\x02\xD7\xD6\x03\x02\x02\x02\xD8\xDB\x03\x02' + + '\x02\x02\xD9\xD7\x03\x02\x02\x02\xD9\xDA\x03\x02\x02\x02\xDA)\x03\x02' + + '\x02\x02\xDB\xD9\x03\x02\x02\x02\xDC\xDE\x07\x11\x02\x02\xDD\xDC\x03\x02' + + '\x02\x02\xDE\xE1\x03\x02\x02\x02\xDF\xDD\x03\x02\x02\x02\xDF\xE0\x03\x02' + + '\x02\x02\xE0+\x03\x02\x02\x02\xE1\xDF\x03\x02\x02\x02\xE2\xE4\x07\x11' + + '\x02\x02\xE3\xE2\x03\x02\x02\x02\xE4\xE7\x03\x02\x02\x02\xE5\xE3\x03\x02' + + '\x02\x02\xE5\xE6\x03\x02\x02\x02\xE6-\x03\x02\x02\x02\xE7\xE5\x03\x02' + + '\x02\x02\xE8\xEA\x07\x11\x02\x02\xE9\xE8\x03\x02\x02\x02\xEA\xED\x03\x02' + + '\x02\x02\xEB\xE9\x03\x02\x02\x02\xEB\xEC\x03\x02\x02\x02\xEC/\x03\x02' + + '\x02\x02\xED\xEB\x03\x02\x02\x02\xEE\xF0\x07\x11\x02\x02\xEF\xEE\x03\x02' + + '\x02\x02\xF0\xF3\x03\x02\x02\x02\xF1\xEF\x03\x02\x02\x02\xF1\xF2\x03\x02' + + '\x02\x02\xF21\x03\x02\x02\x02\xF3\xF1\x03\x02\x02\x02\xF4\xF6\x07\x11' + + '\x02\x02\xF5\xF4\x03\x02\x02\x02\xF6\xF9\x03\x02\x02\x02\xF7\xF5\x03\x02' + + '\x02\x02\xF7\xF8\x03\x02\x02\x02\xF83\x03\x02\x02\x02\xF9\xF7\x03\x02' + + '\x02\x02\xFA\xFC\x07\x11\x02\x02\xFB\xFA\x03\x02\x02\x02\xFC\xFF\x03\x02' + + '\x02\x02\xFD\xFB\x03\x02\x02\x02\xFD\xFE\x03\x02\x02\x02\xFE5\x03\x02' + + '\x02\x02\xFF\xFD\x03\x02\x02\x02\u0100\u0102\x07\x11\x02\x02\u0101\u0100' + + '\x03\x02\x02\x02\u0102\u0105\x03\x02\x02\x02\u0103\u0101\x03\x02\x02\x02' + + '\u0103\u0104\x03\x02\x02\x02\u01047\x03\x02\x02\x02\u0105\u0103\x03\x02' + + '\x02\x02\u0106\u0108\x07\x11\x02\x02\u0107\u0106\x03\x02\x02\x02\u0108' + + '\u010B\x03\x02\x02\x02\u0109\u0107\x03\x02\x02\x02\u0109\u010A\x03\x02' + + '\x02\x02\u010A9\x03\x02\x02\x02\u010B\u0109\x03\x02\x02\x02\u010C\u0111' + + '\x07\f\x02\x02\u010D\u0111\x07\r\x02\x02\u010E\u0111\x07\x0E\x02\x02\u010F' + + '\u0111\x07\x10\x02\x02\u0110\u010C\x03\x02\x02\x02\u0110\u010D\x03\x02' + + '\x02\x02\u0110\u010E\x03\x02\x02\x02\u0110\u010F\x03\x02\x02\x02\u0111' + + ';\x03\x02\x02\x02\x15Wkmu~\xA4\xAE\xBC\xC2\xD9\xDF\xE5\xEB\xF1\xF7\xFD' + + '\u0103\u0109\u0110'; public static __ATN: ATN; public static get _ATN(): ATN { if (!SelectionAutoCompleteParser.__ATN) { @@ -2532,6 +2605,9 @@ export class IncompletePlusTraversalExpressionContext extends IncompleteExprCont public postNeighborTraversalWhitespace(): PostNeighborTraversalWhitespaceContext { return this.getRuleContext(0, PostNeighborTraversalWhitespaceContext); } + public DIGITS(): TerminalNode | undefined { + return this.tryGetToken(SelectionAutoCompleteParser.DIGITS, 0); + } constructor(ctx: IncompleteExprContext) { super(ctx.parent, ctx.invokingState); this.copyFrom(ctx); @@ -2557,6 +2633,38 @@ export class IncompletePlusTraversalExpressionContext extends IncompleteExprCont } } } +export class IncompleteUpTraversalExpressionContext extends IncompleteExprContext { + public DIGITS(): TerminalNode { + return this.getToken(SelectionAutoCompleteParser.DIGITS, 0); + } + public postDigitsWhitespace(): PostDigitsWhitespaceContext { + return this.getRuleContext(0, PostDigitsWhitespaceContext); + } + constructor(ctx: IncompleteExprContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: SelectionAutoCompleteListener): void { + if (listener.enterIncompleteUpTraversalExpression) { + listener.enterIncompleteUpTraversalExpression(this); + } + } + // @Override + public exitRule(listener: SelectionAutoCompleteListener): void { + if (listener.exitIncompleteUpTraversalExpression) { + listener.exitIncompleteUpTraversalExpression(this); + } + } + // @Override + public accept(visitor: SelectionAutoCompleteVisitor): Result { + if (visitor.visitIncompleteUpTraversalExpression) { + return visitor.visitIncompleteUpTraversalExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} export class IncompleteAttributeExpressionMissingKeyContext extends IncompleteExprContext { public colonToken(): ColonTokenContext { return this.getRuleContext(0, ColonTokenContext); @@ -3415,6 +3523,45 @@ export class PostDownwardTraversalWhitespaceContext extends ParserRuleContext { } } +export class PostDigitsWhitespaceContext extends ParserRuleContext { + public WS(): TerminalNode[]; + public WS(i: number): TerminalNode; + public WS(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(SelectionAutoCompleteParser.WS); + } else { + return this.getToken(SelectionAutoCompleteParser.WS, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { + return SelectionAutoCompleteParser.RULE_postDigitsWhitespace; + } + // @Override + public enterRule(listener: SelectionAutoCompleteListener): void { + if (listener.enterPostDigitsWhitespace) { + listener.enterPostDigitsWhitespace(this); + } + } + // @Override + public exitRule(listener: SelectionAutoCompleteListener): void { + if (listener.exitPostDigitsWhitespace) { + listener.exitPostDigitsWhitespace(this); + } + } + // @Override + public accept(visitor: SelectionAutoCompleteVisitor): Result { + if (visitor.visitPostDigitsWhitespace) { + return visitor.visitPostDigitsWhitespace(this); + } else { + return visitor.visitChildren(this); + } + } +} + export class ValueContext extends ParserRuleContext { constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteVisitor.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteVisitor.ts index 05cf35a890c4d..e8e821d518bff 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteVisitor.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/generated/SelectionAutoCompleteVisitor.ts @@ -33,6 +33,7 @@ import { IncompleteOrExpressionContext, IncompletePlusTraversalExpressionContext, IncompleteRightQuotedStringValueContext, + IncompleteUpTraversalExpressionContext, LeftParenTokenContext, NotExpressionContext, NotTokenContext, @@ -41,6 +42,7 @@ import { ParenthesizedExprContext, ParenthesizedExpressionContext, PostAttributeValueWhitespaceContext, + PostDigitsWhitespaceContext, PostDownwardTraversalWhitespaceContext, PostExpressionWhitespaceContext, PostLogicalOperatorWhitespaceContext, @@ -355,6 +357,14 @@ export interface SelectionAutoCompleteVisitor extends ParseTreeVisitor Result; + /** + * Visit a parse tree produced by the `IncompleteUpTraversalExpression` + * labeled alternative in `SelectionAutoCompleteParser.incompleteExpr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIncompleteUpTraversalExpression?: (ctx: IncompleteUpTraversalExpressionContext) => Result; + /** * Visit a parse tree produced by the `IncompleteAttributeExpressionMissingKey` * labeled alternative in `SelectionAutoCompleteParser.incompleteExpr`. @@ -554,6 +564,13 @@ export interface SelectionAutoCompleteVisitor extends ParseTreeVisitor Result; + /** + * Visit a parse tree produced by `SelectionAutoCompleteParser.postDigitsWhitespace`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPostDigitsWhitespace?: (ctx: PostDigitsWhitespaceContext) => Result; + /** * Visit a parse tree produced by `SelectionAutoCompleteParser.value`. * @param ctx the parse tree From da55f9c3210bd22f975d7df7c0caf809c2d1f280 Mon Sep 17 00:00:00 2001 From: Marco Salazar Date: Fri, 28 Feb 2025 09:22:45 -0500 Subject: [PATCH 2/2] suggest plus after digits --- .../ui-core/src/selection/SelectionAutoCompleteVisitor.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts index 7c54a14a2265d..86d8e202c207b 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/selection/SelectionAutoCompleteVisitor.ts @@ -32,7 +32,7 @@ import { const DEFAULT_TEXT_CALLBACK = (value: string) => value; -const DEBUG = true; +const DEBUG = false; export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { private getAttributeResultsMatchingQuery: SelectionAutoCompleteProvider['getAttributeResultsMatchingQuery']; @@ -79,7 +79,6 @@ export class SelectionAutoCompleteVisitor extends BaseSelectionVisitor { } set startReplacementIndex(newValue: number) { - debugger; if (DEBUG) { console.log('Autocomplete suggestions being set by stack:', new Error()); }