diff --git a/Sources/tart/OCI/Reference/Generated/Reference.interp b/Sources/tart/OCI/Reference/Generated/Reference.interp index bdbefb0..604baf1 100644 --- a/Sources/tart/OCI/Reference/Generated/Reference.interp +++ b/Sources/tart/OCI/Reference/Generated/Reference.interp @@ -3,8 +3,8 @@ null ':' '/' '.' -'@' '-' +'@' '_' null null @@ -24,6 +24,7 @@ rule names: root host port +host_component namespace namespace_component reference @@ -33,4 +34,4 @@ name atn: -[4, 1, 8, 85, 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, 1, 0, 1, 0, 1, 0, 3, 0, 22, 8, 0, 1, 0, 1, 0, 1, 0, 3, 0, 27, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 5, 1, 34, 8, 1, 10, 1, 12, 1, 37, 9, 1, 1, 2, 4, 2, 40, 8, 2, 11, 2, 12, 2, 41, 1, 3, 1, 3, 1, 3, 5, 3, 47, 8, 3, 10, 3, 12, 3, 50, 9, 3, 1, 4, 1, 4, 3, 4, 54, 8, 4, 4, 4, 56, 8, 4, 11, 4, 12, 4, 57, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 67, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 73, 8, 6, 10, 6, 12, 6, 76, 9, 6, 1, 7, 1, 7, 1, 8, 4, 8, 81, 8, 8, 11, 8, 12, 8, 82, 1, 8, 0, 0, 9, 0, 2, 4, 6, 8, 10, 12, 14, 16, 0, 2, 2, 0, 3, 3, 5, 6, 1, 0, 7, 8, 85, 0, 18, 1, 0, 0, 0, 2, 30, 1, 0, 0, 0, 4, 39, 1, 0, 0, 0, 6, 43, 1, 0, 0, 0, 8, 55, 1, 0, 0, 0, 10, 66, 1, 0, 0, 0, 12, 68, 1, 0, 0, 0, 14, 77, 1, 0, 0, 0, 16, 80, 1, 0, 0, 0, 18, 21, 3, 2, 1, 0, 19, 20, 5, 1, 0, 0, 20, 22, 3, 4, 2, 0, 21, 19, 1, 0, 0, 0, 21, 22, 1, 0, 0, 0, 22, 23, 1, 0, 0, 0, 23, 24, 5, 2, 0, 0, 24, 26, 3, 6, 3, 0, 25, 27, 3, 10, 5, 0, 26, 25, 1, 0, 0, 0, 26, 27, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 29, 5, 0, 0, 1, 29, 1, 1, 0, 0, 0, 30, 35, 3, 16, 8, 0, 31, 32, 5, 3, 0, 0, 32, 34, 3, 16, 8, 0, 33, 31, 1, 0, 0, 0, 34, 37, 1, 0, 0, 0, 35, 33, 1, 0, 0, 0, 35, 36, 1, 0, 0, 0, 36, 3, 1, 0, 0, 0, 37, 35, 1, 0, 0, 0, 38, 40, 5, 7, 0, 0, 39, 38, 1, 0, 0, 0, 40, 41, 1, 0, 0, 0, 41, 39, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 5, 1, 0, 0, 0, 43, 48, 3, 8, 4, 0, 44, 45, 5, 2, 0, 0, 45, 47, 3, 8, 4, 0, 46, 44, 1, 0, 0, 0, 47, 50, 1, 0, 0, 0, 48, 46, 1, 0, 0, 0, 48, 49, 1, 0, 0, 0, 49, 7, 1, 0, 0, 0, 50, 48, 1, 0, 0, 0, 51, 53, 3, 16, 8, 0, 52, 54, 3, 14, 7, 0, 53, 52, 1, 0, 0, 0, 53, 54, 1, 0, 0, 0, 54, 56, 1, 0, 0, 0, 55, 51, 1, 0, 0, 0, 56, 57, 1, 0, 0, 0, 57, 55, 1, 0, 0, 0, 57, 58, 1, 0, 0, 0, 58, 9, 1, 0, 0, 0, 59, 60, 5, 1, 0, 0, 60, 67, 3, 12, 6, 0, 61, 62, 5, 4, 0, 0, 62, 63, 3, 16, 8, 0, 63, 64, 5, 1, 0, 0, 64, 65, 3, 16, 8, 0, 65, 67, 1, 0, 0, 0, 66, 59, 1, 0, 0, 0, 66, 61, 1, 0, 0, 0, 67, 11, 1, 0, 0, 0, 68, 74, 3, 16, 8, 0, 69, 70, 3, 14, 7, 0, 70, 71, 3, 16, 8, 0, 71, 73, 1, 0, 0, 0, 72, 69, 1, 0, 0, 0, 73, 76, 1, 0, 0, 0, 74, 72, 1, 0, 0, 0, 74, 75, 1, 0, 0, 0, 75, 13, 1, 0, 0, 0, 76, 74, 1, 0, 0, 0, 77, 78, 7, 0, 0, 0, 78, 15, 1, 0, 0, 0, 79, 81, 7, 1, 0, 0, 80, 79, 1, 0, 0, 0, 81, 82, 1, 0, 0, 0, 82, 80, 1, 0, 0, 0, 82, 83, 1, 0, 0, 0, 83, 17, 1, 0, 0, 0, 10, 21, 26, 35, 41, 48, 53, 57, 66, 74, 82] \ No newline at end of file +[4, 1, 8, 95, 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, 1, 0, 1, 0, 1, 0, 3, 0, 24, 8, 0, 1, 0, 1, 0, 1, 0, 3, 0, 29, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 5, 1, 36, 8, 1, 10, 1, 12, 1, 39, 9, 1, 1, 2, 4, 2, 42, 8, 2, 11, 2, 12, 2, 43, 1, 3, 1, 3, 1, 3, 5, 3, 49, 8, 3, 10, 3, 12, 3, 52, 9, 3, 1, 4, 1, 4, 1, 4, 5, 4, 57, 8, 4, 10, 4, 12, 4, 60, 9, 4, 1, 5, 1, 5, 3, 5, 64, 8, 5, 4, 5, 66, 8, 5, 11, 5, 12, 5, 67, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 77, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 83, 8, 7, 10, 7, 12, 7, 86, 9, 7, 1, 8, 1, 8, 1, 9, 4, 9, 91, 8, 9, 11, 9, 12, 9, 92, 1, 9, 0, 0, 10, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 0, 2, 2, 0, 3, 4, 6, 6, 1, 0, 7, 8, 95, 0, 20, 1, 0, 0, 0, 2, 32, 1, 0, 0, 0, 4, 41, 1, 0, 0, 0, 6, 45, 1, 0, 0, 0, 8, 53, 1, 0, 0, 0, 10, 65, 1, 0, 0, 0, 12, 76, 1, 0, 0, 0, 14, 78, 1, 0, 0, 0, 16, 87, 1, 0, 0, 0, 18, 90, 1, 0, 0, 0, 20, 23, 3, 2, 1, 0, 21, 22, 5, 1, 0, 0, 22, 24, 3, 4, 2, 0, 23, 21, 1, 0, 0, 0, 23, 24, 1, 0, 0, 0, 24, 25, 1, 0, 0, 0, 25, 26, 5, 2, 0, 0, 26, 28, 3, 8, 4, 0, 27, 29, 3, 12, 6, 0, 28, 27, 1, 0, 0, 0, 28, 29, 1, 0, 0, 0, 29, 30, 1, 0, 0, 0, 30, 31, 5, 0, 0, 1, 31, 1, 1, 0, 0, 0, 32, 37, 3, 6, 3, 0, 33, 34, 5, 3, 0, 0, 34, 36, 3, 6, 3, 0, 35, 33, 1, 0, 0, 0, 36, 39, 1, 0, 0, 0, 37, 35, 1, 0, 0, 0, 37, 38, 1, 0, 0, 0, 38, 3, 1, 0, 0, 0, 39, 37, 1, 0, 0, 0, 40, 42, 5, 7, 0, 0, 41, 40, 1, 0, 0, 0, 42, 43, 1, 0, 0, 0, 43, 41, 1, 0, 0, 0, 43, 44, 1, 0, 0, 0, 44, 5, 1, 0, 0, 0, 45, 50, 3, 18, 9, 0, 46, 47, 5, 4, 0, 0, 47, 49, 3, 18, 9, 0, 48, 46, 1, 0, 0, 0, 49, 52, 1, 0, 0, 0, 50, 48, 1, 0, 0, 0, 50, 51, 1, 0, 0, 0, 51, 7, 1, 0, 0, 0, 52, 50, 1, 0, 0, 0, 53, 58, 3, 10, 5, 0, 54, 55, 5, 2, 0, 0, 55, 57, 3, 10, 5, 0, 56, 54, 1, 0, 0, 0, 57, 60, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 9, 1, 0, 0, 0, 60, 58, 1, 0, 0, 0, 61, 63, 3, 18, 9, 0, 62, 64, 3, 16, 8, 0, 63, 62, 1, 0, 0, 0, 63, 64, 1, 0, 0, 0, 64, 66, 1, 0, 0, 0, 65, 61, 1, 0, 0, 0, 66, 67, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 11, 1, 0, 0, 0, 69, 70, 5, 1, 0, 0, 70, 77, 3, 14, 7, 0, 71, 72, 5, 5, 0, 0, 72, 73, 3, 18, 9, 0, 73, 74, 5, 1, 0, 0, 74, 75, 3, 18, 9, 0, 75, 77, 1, 0, 0, 0, 76, 69, 1, 0, 0, 0, 76, 71, 1, 0, 0, 0, 77, 13, 1, 0, 0, 0, 78, 84, 3, 18, 9, 0, 79, 80, 3, 16, 8, 0, 80, 81, 3, 18, 9, 0, 81, 83, 1, 0, 0, 0, 82, 79, 1, 0, 0, 0, 83, 86, 1, 0, 0, 0, 84, 82, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 15, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, 87, 88, 7, 0, 0, 0, 88, 17, 1, 0, 0, 0, 89, 91, 7, 1, 0, 0, 90, 89, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 90, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 19, 1, 0, 0, 0, 11, 23, 28, 37, 43, 50, 58, 63, 67, 76, 84, 92] \ No newline at end of file diff --git a/Sources/tart/OCI/Reference/Generated/Reference.tokens b/Sources/tart/OCI/Reference/Generated/Reference.tokens index ec279c9..6785f3d 100644 --- a/Sources/tart/OCI/Reference/Generated/Reference.tokens +++ b/Sources/tart/OCI/Reference/Generated/Reference.tokens @@ -9,6 +9,6 @@ LETTER=8 ':'=1 '/'=2 '.'=3 -'@'=4 -'-'=5 +'-'=4 +'@'=5 '_'=6 diff --git a/Sources/tart/OCI/Reference/Generated/ReferenceBaseListener.swift b/Sources/tart/OCI/Reference/Generated/ReferenceBaseListener.swift index 191c5ce..5137173 100644 --- a/Sources/tart/OCI/Reference/Generated/ReferenceBaseListener.swift +++ b/Sources/tart/OCI/Reference/Generated/ReferenceBaseListener.swift @@ -49,6 +49,19 @@ open class ReferenceBaseListener: ReferenceListener { */ open func exitPort(_ ctx: ReferenceParser.PortContext) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + open func enterHost_component(_ ctx: ReferenceParser.Host_componentContext) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + open func exitHost_component(_ ctx: ReferenceParser.Host_componentContext) { } + /** * {@inheritDoc} * diff --git a/Sources/tart/OCI/Reference/Generated/ReferenceLexer.interp b/Sources/tart/OCI/Reference/Generated/ReferenceLexer.interp index 2ad7109..c3aa1ff 100644 --- a/Sources/tart/OCI/Reference/Generated/ReferenceLexer.interp +++ b/Sources/tart/OCI/Reference/Generated/ReferenceLexer.interp @@ -3,8 +3,8 @@ null ':' '/' '.' -'@' '-' +'@' '_' null null @@ -38,4 +38,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 8, 33, 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, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 0, 0, 8, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 1, 0, 2, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 32, 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, 1, 17, 1, 0, 0, 0, 3, 19, 1, 0, 0, 0, 5, 21, 1, 0, 0, 0, 7, 23, 1, 0, 0, 0, 9, 25, 1, 0, 0, 0, 11, 27, 1, 0, 0, 0, 13, 29, 1, 0, 0, 0, 15, 31, 1, 0, 0, 0, 17, 18, 5, 58, 0, 0, 18, 2, 1, 0, 0, 0, 19, 20, 5, 47, 0, 0, 20, 4, 1, 0, 0, 0, 21, 22, 5, 46, 0, 0, 22, 6, 1, 0, 0, 0, 23, 24, 5, 64, 0, 0, 24, 8, 1, 0, 0, 0, 25, 26, 5, 45, 0, 0, 26, 10, 1, 0, 0, 0, 27, 28, 5, 95, 0, 0, 28, 12, 1, 0, 0, 0, 29, 30, 7, 0, 0, 0, 30, 14, 1, 0, 0, 0, 31, 32, 7, 1, 0, 0, 32, 16, 1, 0, 0, 0, 1, 0, 0] \ No newline at end of file +[4, 0, 8, 33, 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, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 0, 0, 8, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 1, 0, 2, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 32, 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, 1, 17, 1, 0, 0, 0, 3, 19, 1, 0, 0, 0, 5, 21, 1, 0, 0, 0, 7, 23, 1, 0, 0, 0, 9, 25, 1, 0, 0, 0, 11, 27, 1, 0, 0, 0, 13, 29, 1, 0, 0, 0, 15, 31, 1, 0, 0, 0, 17, 18, 5, 58, 0, 0, 18, 2, 1, 0, 0, 0, 19, 20, 5, 47, 0, 0, 20, 4, 1, 0, 0, 0, 21, 22, 5, 46, 0, 0, 22, 6, 1, 0, 0, 0, 23, 24, 5, 45, 0, 0, 24, 8, 1, 0, 0, 0, 25, 26, 5, 64, 0, 0, 26, 10, 1, 0, 0, 0, 27, 28, 5, 95, 0, 0, 28, 12, 1, 0, 0, 0, 29, 30, 7, 0, 0, 0, 30, 14, 1, 0, 0, 0, 31, 32, 7, 1, 0, 0, 32, 16, 1, 0, 0, 0, 1, 0, 0] \ No newline at end of file diff --git a/Sources/tart/OCI/Reference/Generated/ReferenceLexer.swift b/Sources/tart/OCI/Reference/Generated/ReferenceLexer.swift index 523f9ba..9191569 100644 --- a/Sources/tart/OCI/Reference/Generated/ReferenceLexer.swift +++ b/Sources/tart/OCI/Reference/Generated/ReferenceLexer.swift @@ -33,7 +33,7 @@ open class ReferenceLexer: Lexer { ] private static let _LITERAL_NAMES: [String?] = [ - nil, "':'", "'/'", "'.'", "'@'", "'-'", "'_'" + nil, "':'", "'/'", "'.'", "'-'", "'@'", "'_'" ] private static let _SYMBOLIC_NAMES: [String?] = [ nil, nil, nil, nil, nil, nil, nil, "DIGIT", "LETTER" @@ -80,7 +80,7 @@ open class ReferenceLexer: Lexer { 1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,1,17,1,0,0,0,3,19,1,0,0,0,5,21,1,0,0, 0,7,23,1,0,0,0,9,25,1,0,0,0,11,27,1,0,0,0,13,29,1,0,0,0,15,31,1,0,0,0, 17,18,5,58,0,0,18,2,1,0,0,0,19,20,5,47,0,0,20,4,1,0,0,0,21,22,5,46,0,0, - 22,6,1,0,0,0,23,24,5,64,0,0,24,8,1,0,0,0,25,26,5,45,0,0,26,10,1,0,0,0, + 22,6,1,0,0,0,23,24,5,45,0,0,24,8,1,0,0,0,25,26,5,64,0,0,26,10,1,0,0,0, 27,28,5,95,0,0,28,12,1,0,0,0,29,30,7,0,0,0,30,14,1,0,0,0,31,32,7,1,0,0, 32,16,1,0,0,0,1,0,0 ] diff --git a/Sources/tart/OCI/Reference/Generated/ReferenceLexer.tokens b/Sources/tart/OCI/Reference/Generated/ReferenceLexer.tokens index ec279c9..6785f3d 100644 --- a/Sources/tart/OCI/Reference/Generated/ReferenceLexer.tokens +++ b/Sources/tart/OCI/Reference/Generated/ReferenceLexer.tokens @@ -9,6 +9,6 @@ LETTER=8 ':'=1 '/'=2 '.'=3 -'@'=4 -'-'=5 +'-'=4 +'@'=5 '_'=6 diff --git a/Sources/tart/OCI/Reference/Generated/ReferenceListener.swift b/Sources/tart/OCI/Reference/Generated/ReferenceListener.swift index 354c8f6..c9f9a8d 100644 --- a/Sources/tart/OCI/Reference/Generated/ReferenceListener.swift +++ b/Sources/tart/OCI/Reference/Generated/ReferenceListener.swift @@ -42,6 +42,18 @@ public protocol ReferenceListener: ParseTreeListener { - ctx: the parse tree */ func exitPort(_ ctx: ReferenceParser.PortContext) + /** + * Enter a parse tree produced by {@link ReferenceParser#host_component}. + - Parameters: + - ctx: the parse tree + */ + func enterHost_component(_ ctx: ReferenceParser.Host_componentContext) + /** + * Exit a parse tree produced by {@link ReferenceParser#host_component}. + - Parameters: + - ctx: the parse tree + */ + func exitHost_component(_ ctx: ReferenceParser.Host_componentContext) /** * Enter a parse tree produced by {@link ReferenceParser#namespace}. - Parameters: diff --git a/Sources/tart/OCI/Reference/Generated/ReferenceParser.swift b/Sources/tart/OCI/Reference/Generated/ReferenceParser.swift index 7eed025..d03b8e4 100644 --- a/Sources/tart/OCI/Reference/Generated/ReferenceParser.swift +++ b/Sources/tart/OCI/Reference/Generated/ReferenceParser.swift @@ -21,18 +21,18 @@ open class ReferenceParser: Parser { } public - static let RULE_root = 0, RULE_host = 1, RULE_port = 2, RULE_namespace = 3, - RULE_namespace_component = 4, RULE_reference = 5, RULE_tag = 6, - RULE_separator = 7, RULE_name = 8 + static let RULE_root = 0, RULE_host = 1, RULE_port = 2, RULE_host_component = 3, + RULE_namespace = 4, RULE_namespace_component = 5, RULE_reference = 6, + RULE_tag = 7, RULE_separator = 8, RULE_name = 9 public static let ruleNames: [String] = [ - "root", "host", "port", "namespace", "namespace_component", "reference", - "tag", "separator", "name" + "root", "host", "port", "host_component", "namespace", "namespace_component", + "reference", "tag", "separator", "name" ] private static let _LITERAL_NAMES: [String?] = [ - nil, "':'", "'/'", "'.'", "'@'", "'-'", "'_'" + nil, "':'", "'/'", "'.'", "'-'", "'@'", "'_'" ] private static let _SYMBOLIC_NAMES: [String?] = [ nil, nil, nil, nil, nil, nil, nil, "DIGIT", "LETTER" @@ -115,33 +115,33 @@ open class ReferenceParser: Parser { } do { try enterOuterAlt(_localctx, 1) - setState(18) + setState(20) try host() - setState(21) + setState(23) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == ReferenceParser.Tokens.T__0.rawValue) { - setState(19) + setState(21) try match(ReferenceParser.Tokens.T__0.rawValue) - setState(20) + setState(22) try port() } - setState(23) + setState(25) try match(ReferenceParser.Tokens.T__1.rawValue) - setState(24) - try namespace() setState(26) + try namespace() + setState(28) try _errHandler.sync(self) _la = try _input.LA(1) - if (_la == ReferenceParser.Tokens.T__0.rawValue || _la == ReferenceParser.Tokens.T__3.rawValue) { - setState(25) + if (_la == ReferenceParser.Tokens.T__0.rawValue || _la == ReferenceParser.Tokens.T__4.rawValue) { + setState(27) try reference() } - setState(28) + setState(30) try match(ReferenceParser.Tokens.EOF.rawValue) } @@ -156,12 +156,12 @@ open class ReferenceParser: Parser { public class HostContext: ParserRuleContext { open - func name() -> [NameContext] { - return getRuleContexts(NameContext.self) + func host_component() -> [Host_componentContext] { + return getRuleContexts(Host_componentContext.self) } open - func name(_ i: Int) -> NameContext? { - return getRuleContext(NameContext.self, i) + func host_component(_ i: Int) -> Host_componentContext? { + return getRuleContext(Host_componentContext.self, i) } override open func getRuleIndex() -> Int { @@ -191,19 +191,19 @@ open class ReferenceParser: Parser { } do { try enterOuterAlt(_localctx, 1) - setState(30) - try name() - setState(35) + setState(32) + try host_component() + setState(37) try _errHandler.sync(self) _la = try _input.LA(1) while (_la == ReferenceParser.Tokens.T__2.rawValue) { - setState(31) + setState(33) try match(ReferenceParser.Tokens.T__2.rawValue) - setState(32) - try name() + setState(34) + try host_component() - setState(37) + setState(39) try _errHandler.sync(self) _la = try _input.LA(1) } @@ -255,15 +255,15 @@ open class ReferenceParser: Parser { } do { try enterOuterAlt(_localctx, 1) - setState(39) + setState(41) try _errHandler.sync(self) _la = try _input.LA(1) repeat { - setState(38) + setState(40) try match(ReferenceParser.Tokens.DIGIT.rawValue) - setState(41); + setState(43); try _errHandler.sync(self) _la = try _input.LA(1) } while (_la == ReferenceParser.Tokens.DIGIT.rawValue) @@ -278,6 +278,70 @@ open class ReferenceParser: Parser { return _localctx } + public class Host_componentContext: ParserRuleContext { + open + func name() -> [NameContext] { + return getRuleContexts(NameContext.self) + } + open + func name(_ i: Int) -> NameContext? { + return getRuleContext(NameContext.self, i) + } + override open + func getRuleIndex() -> Int { + return ReferenceParser.RULE_host_component + } + override open + func enterRule(_ listener: ParseTreeListener) { + if let listener = listener as? ReferenceListener { + listener.enterHost_component(self) + } + } + override open + func exitRule(_ listener: ParseTreeListener) { + if let listener = listener as? ReferenceListener { + listener.exitHost_component(self) + } + } + } + @discardableResult + open func host_component() throws -> Host_componentContext { + var _localctx: Host_componentContext + _localctx = Host_componentContext(_ctx, getState()) + try enterRule(_localctx, 6, ReferenceParser.RULE_host_component) + var _la: Int = 0 + defer { + try! exitRule() + } + do { + try enterOuterAlt(_localctx, 1) + setState(45) + try name() + setState(50) + try _errHandler.sync(self) + _la = try _input.LA(1) + while (_la == ReferenceParser.Tokens.T__3.rawValue) { + setState(46) + try match(ReferenceParser.Tokens.T__3.rawValue) + setState(47) + try name() + + + setState(52) + try _errHandler.sync(self) + _la = try _input.LA(1) + } + + } + catch ANTLRException.recognition(let re) { + _localctx.exception = re + _errHandler.reportError(self, re) + try _errHandler.recover(self, re) + } + + return _localctx + } + public class NamespaceContext: ParserRuleContext { open func namespace_component() -> [Namespace_componentContext] { @@ -308,26 +372,26 @@ open class ReferenceParser: Parser { open func namespace() throws -> NamespaceContext { var _localctx: NamespaceContext _localctx = NamespaceContext(_ctx, getState()) - try enterRule(_localctx, 6, ReferenceParser.RULE_namespace) + try enterRule(_localctx, 8, ReferenceParser.RULE_namespace) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) - setState(43) + setState(53) try namespace_component() - setState(48) + setState(58) try _errHandler.sync(self) _la = try _input.LA(1) while (_la == ReferenceParser.Tokens.T__1.rawValue) { - setState(44) + setState(54) try match(ReferenceParser.Tokens.T__1.rawValue) - setState(45) + setState(55) try namespace_component() - setState(50) + setState(60) try _errHandler.sync(self) _la = try _input.LA(1) } @@ -380,31 +444,31 @@ open class ReferenceParser: Parser { open func namespace_component() throws -> Namespace_componentContext { var _localctx: Namespace_componentContext _localctx = Namespace_componentContext(_ctx, getState()) - try enterRule(_localctx, 8, ReferenceParser.RULE_namespace_component) + try enterRule(_localctx, 10, ReferenceParser.RULE_namespace_component) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) - setState(55) + setState(65) try _errHandler.sync(self) _la = try _input.LA(1) repeat { - setState(51) + setState(61) try name() - setState(53) + setState(63) try _errHandler.sync(self) _la = try _input.LA(1) - if ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & 104) != 0) { - setState(52) + if ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & 88) != 0) { + setState(62) try separator() } - setState(57); + setState(67); try _errHandler.sync(self) _la = try _input.LA(1) } while (_la == ReferenceParser.Tokens.DIGIT.rawValue || _la == ReferenceParser.Tokens.LETTER.rawValue) @@ -453,33 +517,33 @@ open class ReferenceParser: Parser { open func reference() throws -> ReferenceContext { var _localctx: ReferenceContext _localctx = ReferenceContext(_ctx, getState()) - try enterRule(_localctx, 10, ReferenceParser.RULE_reference) + try enterRule(_localctx, 12, ReferenceParser.RULE_reference) defer { try! exitRule() } do { - setState(66) + setState(76) try _errHandler.sync(self) switch (ReferenceParser.Tokens(rawValue: try _input.LA(1))!) { case .T__0: try enterOuterAlt(_localctx, 1) - setState(59) + setState(69) try match(ReferenceParser.Tokens.T__0.rawValue) - setState(60) + setState(70) try tag() break - case .T__3: + case .T__4: try enterOuterAlt(_localctx, 2) - setState(61) - try match(ReferenceParser.Tokens.T__3.rawValue) - setState(62) + setState(71) + try match(ReferenceParser.Tokens.T__4.rawValue) + setState(72) try name() - setState(63) + setState(73) try match(ReferenceParser.Tokens.T__0.rawValue) - setState(64) + setState(74) try name() @@ -535,26 +599,26 @@ open class ReferenceParser: Parser { open func tag() throws -> TagContext { var _localctx: TagContext _localctx = TagContext(_ctx, getState()) - try enterRule(_localctx, 12, ReferenceParser.RULE_tag) + try enterRule(_localctx, 14, ReferenceParser.RULE_tag) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) - setState(68) + setState(78) try name() - setState(74) + setState(84) try _errHandler.sync(self) _la = try _input.LA(1) - while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & 104) != 0) { - setState(69) + while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & 88) != 0) { + setState(79) try separator() - setState(70) + setState(80) try name() - setState(76) + setState(86) try _errHandler.sync(self) _la = try _input.LA(1) } @@ -591,16 +655,16 @@ open class ReferenceParser: Parser { open func separator() throws -> SeparatorContext { var _localctx: SeparatorContext _localctx = SeparatorContext(_ctx, getState()) - try enterRule(_localctx, 14, ReferenceParser.RULE_separator) + try enterRule(_localctx, 16, ReferenceParser.RULE_separator) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) - setState(77) + setState(87) _la = try _input.LA(1) - if (!((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & 104) != 0)) { + if (!((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & 88) != 0)) { try _errHandler.recoverInline(self) } else { @@ -656,7 +720,7 @@ open class ReferenceParser: Parser { open func name() throws -> NameContext { var _localctx: NameContext _localctx = NameContext(_ctx, getState()) - try enterRule(_localctx, 16, ReferenceParser.RULE_name) + try enterRule(_localctx, 18, ReferenceParser.RULE_name) var _la: Int = 0 defer { try! exitRule() @@ -664,13 +728,13 @@ open class ReferenceParser: Parser { do { var _alt:Int try enterOuterAlt(_localctx, 1) - setState(80); + setState(90); try _errHandler.sync(self) _alt = 1; repeat { switch (_alt) { case 1: - setState(79) + setState(89) _la = try _input.LA(1) if (!(_la == ReferenceParser.Tokens.DIGIT.rawValue || _la == ReferenceParser.Tokens.LETTER.rawValue)) { try _errHandler.recoverInline(self) @@ -685,9 +749,9 @@ open class ReferenceParser: Parser { default: throw ANTLRException.recognition(e: NoViableAltException(self)) } - setState(82); + setState(92); try _errHandler.sync(self) - _alt = try getInterpreter().adaptivePredict(_input,9,_ctx) + _alt = try getInterpreter().adaptivePredict(_input,10,_ctx) } while (_alt != 2 && _alt != ATN.INVALID_ALT_NUMBER) } @@ -701,30 +765,33 @@ open class ReferenceParser: Parser { } static let _serializedATN:[Int] = [ - 4,1,8,85,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,1,0,1,0,1,0,3,0,22,8,0,1,0,1,0,1,0,3,0,27,8,0,1,0,1,0,1,1,1, - 1,1,1,5,1,34,8,1,10,1,12,1,37,9,1,1,2,4,2,40,8,2,11,2,12,2,41,1,3,1,3, - 1,3,5,3,47,8,3,10,3,12,3,50,9,3,1,4,1,4,3,4,54,8,4,4,4,56,8,4,11,4,12, - 4,57,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,67,8,5,1,6,1,6,1,6,1,6,5,6,73,8,6, - 10,6,12,6,76,9,6,1,7,1,7,1,8,4,8,81,8,8,11,8,12,8,82,1,8,0,0,9,0,2,4,6, - 8,10,12,14,16,0,2,2,0,3,3,5,6,1,0,7,8,85,0,18,1,0,0,0,2,30,1,0,0,0,4,39, - 1,0,0,0,6,43,1,0,0,0,8,55,1,0,0,0,10,66,1,0,0,0,12,68,1,0,0,0,14,77,1, - 0,0,0,16,80,1,0,0,0,18,21,3,2,1,0,19,20,5,1,0,0,20,22,3,4,2,0,21,19,1, - 0,0,0,21,22,1,0,0,0,22,23,1,0,0,0,23,24,5,2,0,0,24,26,3,6,3,0,25,27,3, - 10,5,0,26,25,1,0,0,0,26,27,1,0,0,0,27,28,1,0,0,0,28,29,5,0,0,1,29,1,1, - 0,0,0,30,35,3,16,8,0,31,32,5,3,0,0,32,34,3,16,8,0,33,31,1,0,0,0,34,37, - 1,0,0,0,35,33,1,0,0,0,35,36,1,0,0,0,36,3,1,0,0,0,37,35,1,0,0,0,38,40,5, - 7,0,0,39,38,1,0,0,0,40,41,1,0,0,0,41,39,1,0,0,0,41,42,1,0,0,0,42,5,1,0, - 0,0,43,48,3,8,4,0,44,45,5,2,0,0,45,47,3,8,4,0,46,44,1,0,0,0,47,50,1,0, - 0,0,48,46,1,0,0,0,48,49,1,0,0,0,49,7,1,0,0,0,50,48,1,0,0,0,51,53,3,16, - 8,0,52,54,3,14,7,0,53,52,1,0,0,0,53,54,1,0,0,0,54,56,1,0,0,0,55,51,1,0, - 0,0,56,57,1,0,0,0,57,55,1,0,0,0,57,58,1,0,0,0,58,9,1,0,0,0,59,60,5,1,0, - 0,60,67,3,12,6,0,61,62,5,4,0,0,62,63,3,16,8,0,63,64,5,1,0,0,64,65,3,16, - 8,0,65,67,1,0,0,0,66,59,1,0,0,0,66,61,1,0,0,0,67,11,1,0,0,0,68,74,3,16, - 8,0,69,70,3,14,7,0,70,71,3,16,8,0,71,73,1,0,0,0,72,69,1,0,0,0,73,76,1, - 0,0,0,74,72,1,0,0,0,74,75,1,0,0,0,75,13,1,0,0,0,76,74,1,0,0,0,77,78,7, - 0,0,0,78,15,1,0,0,0,79,81,7,1,0,0,80,79,1,0,0,0,81,82,1,0,0,0,82,80,1, - 0,0,0,82,83,1,0,0,0,83,17,1,0,0,0,10,21,26,35,41,48,53,57,66,74,82 + 4,1,8,95,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,1,0,1,0,1,0,3,0,24,8,0,1,0,1,0,1,0,3,0,29,8,0,1,0,1, + 0,1,1,1,1,1,1,5,1,36,8,1,10,1,12,1,39,9,1,1,2,4,2,42,8,2,11,2,12,2,43, + 1,3,1,3,1,3,5,3,49,8,3,10,3,12,3,52,9,3,1,4,1,4,1,4,5,4,57,8,4,10,4,12, + 4,60,9,4,1,5,1,5,3,5,64,8,5,4,5,66,8,5,11,5,12,5,67,1,6,1,6,1,6,1,6,1, + 6,1,6,1,6,3,6,77,8,6,1,7,1,7,1,7,1,7,5,7,83,8,7,10,7,12,7,86,9,7,1,8,1, + 8,1,9,4,9,91,8,9,11,9,12,9,92,1,9,0,0,10,0,2,4,6,8,10,12,14,16,18,0,2, + 2,0,3,4,6,6,1,0,7,8,95,0,20,1,0,0,0,2,32,1,0,0,0,4,41,1,0,0,0,6,45,1,0, + 0,0,8,53,1,0,0,0,10,65,1,0,0,0,12,76,1,0,0,0,14,78,1,0,0,0,16,87,1,0,0, + 0,18,90,1,0,0,0,20,23,3,2,1,0,21,22,5,1,0,0,22,24,3,4,2,0,23,21,1,0,0, + 0,23,24,1,0,0,0,24,25,1,0,0,0,25,26,5,2,0,0,26,28,3,8,4,0,27,29,3,12,6, + 0,28,27,1,0,0,0,28,29,1,0,0,0,29,30,1,0,0,0,30,31,5,0,0,1,31,1,1,0,0,0, + 32,37,3,6,3,0,33,34,5,3,0,0,34,36,3,6,3,0,35,33,1,0,0,0,36,39,1,0,0,0, + 37,35,1,0,0,0,37,38,1,0,0,0,38,3,1,0,0,0,39,37,1,0,0,0,40,42,5,7,0,0,41, + 40,1,0,0,0,42,43,1,0,0,0,43,41,1,0,0,0,43,44,1,0,0,0,44,5,1,0,0,0,45,50, + 3,18,9,0,46,47,5,4,0,0,47,49,3,18,9,0,48,46,1,0,0,0,49,52,1,0,0,0,50,48, + 1,0,0,0,50,51,1,0,0,0,51,7,1,0,0,0,52,50,1,0,0,0,53,58,3,10,5,0,54,55, + 5,2,0,0,55,57,3,10,5,0,56,54,1,0,0,0,57,60,1,0,0,0,58,56,1,0,0,0,58,59, + 1,0,0,0,59,9,1,0,0,0,60,58,1,0,0,0,61,63,3,18,9,0,62,64,3,16,8,0,63,62, + 1,0,0,0,63,64,1,0,0,0,64,66,1,0,0,0,65,61,1,0,0,0,66,67,1,0,0,0,67,65, + 1,0,0,0,67,68,1,0,0,0,68,11,1,0,0,0,69,70,5,1,0,0,70,77,3,14,7,0,71,72, + 5,5,0,0,72,73,3,18,9,0,73,74,5,1,0,0,74,75,3,18,9,0,75,77,1,0,0,0,76,69, + 1,0,0,0,76,71,1,0,0,0,77,13,1,0,0,0,78,84,3,18,9,0,79,80,3,16,8,0,80,81, + 3,18,9,0,81,83,1,0,0,0,82,79,1,0,0,0,83,86,1,0,0,0,84,82,1,0,0,0,84,85, + 1,0,0,0,85,15,1,0,0,0,86,84,1,0,0,0,87,88,7,0,0,0,88,17,1,0,0,0,89,91, + 7,1,0,0,90,89,1,0,0,0,91,92,1,0,0,0,92,90,1,0,0,0,92,93,1,0,0,0,93,19, + 1,0,0,0,11,23,28,37,43,50,58,63,67,76,84,92 ] public diff --git a/Sources/tart/OCI/Reference/Reference.g4 b/Sources/tart/OCI/Reference/Reference.g4 index 2251a68..426f3f7 100644 --- a/Sources/tart/OCI/Reference/Reference.g4 +++ b/Sources/tart/OCI/Reference/Reference.g4 @@ -1,8 +1,9 @@ grammar Reference; root: host (':' port)? '/' namespace reference? EOF; -host: name ('.' name)*; +host: host_component ('.' host_component)*; port: DIGIT+; +host_component: name ('-' name)*; namespace: namespace_component ('/' namespace_component)*; namespace_component: (name separator?)+; reference: (':' tag) | ('@' name ':' name);