From 3935113bfcb84abef600c7c9c20d977a5d313e8a Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Fri, 3 Nov 2023 19:31:21 +0800 Subject: [PATCH] feat: Add SymbolRole for representing forward declarations (#217) * feat: Add ForwardDeclaration SymbolRole * fix: Format forward_declaration separately in snapshot logic * test: Add forward decls to repro grammar + test case * feat: Add lint rule for bad forward decls * Rename forward declaration role -> forward definition --- bindings/go/scip/convert.go | 2 +- bindings/go/scip/scip.pb.go | 329 ++--- bindings/go/scip/testutil/format.go | 4 +- bindings/haskell/src/Proto/Scip.hs | 1120 +++++++++-------- bindings/rust/src/generated/scip.rs | 1099 ++++++++-------- bindings/typescript/scip.ts | 3 +- cmd/scip/lint.go | 14 + .../tests/reprolang/bindings/go/repro/ast.go | 3 +- .../reprolang/bindings/go/repro/parser.go | 3 +- .../tests/reprolang/bindings/go/repro/scip.go | 6 +- cmd/scip/tests/reprolang/grammar.js | 7 +- cmd/scip/tests/reprolang/src/grammar.json | 16 + cmd/scip/tests/reprolang/src/node-types.json | 14 + cmd/scip/tests/reprolang/src/parser.c | 695 +++++----- .../input/forward-def/forward_def.repro | 3 + .../snapshots/output/forward-def/dump.lsif | 24 + .../output/forward-def/forward_def.repro | 8 + docs/scip.md | 9 + scip.proto | 6 + 19 files changed, 1802 insertions(+), 1563 deletions(-) create mode 100644 cmd/scip/tests/snapshots/input/forward-def/forward_def.repro create mode 100755 cmd/scip/tests/snapshots/output/forward-def/dump.lsif create mode 100755 cmd/scip/tests/snapshots/output/forward-def/forward_def.repro diff --git a/bindings/go/scip/convert.go b/bindings/go/scip/convert.go index 0859b305..556134b1 100644 --- a/bindings/go/scip/convert.go +++ b/bindings/go/scip/convert.go @@ -230,7 +230,7 @@ func (g *graph) emitDocument(index *Index, doc *Document) { rangeIDs = append(rangeIDs, rangeID) resultIDs := g.getOrInsertSymbolInformationIDs(occ.Symbol, localSymbolInformationTable) g.emitEdge("next", reader.Edge{OutV: rangeID, InV: resultIDs.ResultSet}) - isDefinition := occ.SymbolRoles&int32(SymbolRole_Definition) != 0 + isDefinition := SymbolRole_Definition.Matches(occ) if isDefinition && resultIDs.DefinitionResult > 0 { g.emitEdge("item", reader.Edge{OutV: resultIDs.DefinitionResult, InVs: []int{rangeID}, Document: documentID}) symbolInfo, ok := documentSymbolTable[occ.Symbol] diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index c96cd6d5..d31f3aaa 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -146,6 +146,12 @@ const ( SymbolRole_Generated SymbolRole = 16 // Is the symbol in test code? SymbolRole_Test SymbolRole = 32 + // Is this a signature for a symbol that is defined elsewhere? + // + // Applies to forward declarations for languages like C, C++ + // and Objective-C, as well as `val` declarations in interface + // files in languages like SML and OCaml. + SymbolRole_ForwardDefinition SymbolRole = 64 ) // Enum value maps for SymbolRole. @@ -158,6 +164,7 @@ var ( 8: "ReadAccess", 16: "Generated", 32: "Test", + 64: "ForwardDefinition", } SymbolRole_value = map[string]int32{ "UnspecifiedSymbolRole": 0, @@ -167,6 +174,7 @@ var ( "ReadAccess": 8, "Generated": 16, "Test": 32, + "ForwardDefinition": 64, } ) @@ -2634,166 +2642,167 @@ var file_scip_proto_rawDesc = []byte{ 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x55, 0x54, 0x46, 0x31, 0x36, 0x10, 0x02, 0x2a, 0x7d, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, - 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, - 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, - 0x0a, 0x52, 0x65, 0x61, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x08, 0x12, 0x0d, 0x0a, - 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, - 0x54, 0x65, 0x73, 0x74, 0x10, 0x20, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, - 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, - 0x0b, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x10, 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, - 0x0e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, - 0x15, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, - 0x6c, 0x74, 0x69, 0x6e, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x4d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, - 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, - 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, - 0x77, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, - 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x10, 0x0e, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, - 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, - 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, - 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, - 0x61, 0x72, 0x64, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, - 0x65, 0x78, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, - 0x70, 0x65, 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, - 0x0a, 0x10, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, - 0x65, 0x79, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, - 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, - 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, - 0x0c, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, - 0x02, 0x10, 0x01, 0x2a, 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, - 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, - 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, - 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, - 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x9b, 0x0a, 0x0a, 0x08, - 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x08, 0x0a, 0x04, 0x41, - 0x70, 0x65, 0x78, 0x10, 0x60, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, - 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, - 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, - 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, - 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, - 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, - 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, - 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, - 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, - 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, - 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, - 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x55, 0x44, 0x41, 0x10, 0x61, 0x12, 0x08, 0x0a, - 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, - 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, - 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, - 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, - 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, - 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, - 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, - 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, - 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, - 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, - 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, - 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, - 0x4c, 0x10, 0x62, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, - 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, - 0x6b, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, - 0x73, 0x10, 0x5a, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, - 0x12, 0x09, 0x0a, 0x05, 0x49, 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, - 0x6e, 0x69, 0x10, 0x48, 0x12, 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, - 0x53, 0x4f, 0x4e, 0x10, 0x4b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, - 0x0e, 0x0a, 0x0a, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, - 0x13, 0x0a, 0x0f, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, - 0x63, 0x74, 0x10, 0x5d, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, - 0x4c, 0x12, 0x09, 0x0a, 0x05, 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, - 0x4a, 0x75, 0x73, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, - 0x74, 0x6c, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, - 0x53, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, - 0x65, 0x73, 0x73, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x08, - 0x0a, 0x04, 0x4c, 0x75, 0x61, 0x75, 0x10, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, - 0x66, 0x69, 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, - 0x77, 0x6e, 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, - 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x6b, 0x65, 0x6c, 0x10, 0x6e, 0x12, 0x07, 0x0a, 0x03, - 0x4e, 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, - 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, - 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, - 0x50, 0x50, 0x10, 0x25, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x10, 0x63, - 0x12, 0x07, 0x0a, 0x03, 0x50, 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, - 0x51, 0x4c, 0x10, 0x46, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, - 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, - 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x10, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, - 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, - 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x09, 0x0a, 0x05, - 0x52, 0x65, 0x70, 0x72, 0x6f, 0x10, 0x66, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, - 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, - 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, - 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, - 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, - 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, - 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, - 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, - 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x6c, 0x61, - 0x6e, 0x67, 0x10, 0x6b, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, - 0x10, 0x5f, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x76, 0x65, 0x6c, 0x74, 0x65, 0x10, 0x6a, 0x12, 0x09, - 0x0a, 0x05, 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x6c, - 0x10, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, - 0x54, 0x65, 0x58, 0x10, 0x52, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x68, 0x72, 0x69, 0x66, 0x74, 0x10, - 0x67, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, - 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, - 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x69, 0x6c, 0x6f, - 0x67, 0x10, 0x68, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x48, 0x44, 0x4c, 0x10, 0x69, 0x12, 0x0f, 0x0a, - 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, - 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, - 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, - 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, - 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, - 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x55, 0x54, 0x46, 0x31, 0x36, 0x10, 0x02, 0x2a, 0x94, 0x01, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, + 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, + 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0e, + 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x08, 0x12, 0x0d, + 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, + 0x04, 0x54, 0x65, 0x73, 0x74, 0x10, 0x20, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x40, 0x2a, 0xea, + 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, + 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x74, + 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, + 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x10, 0x07, 0x12, 0x12, + 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x75, 0x6c, 0x6c, + 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x0b, + 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x17, 0x0a, + 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, 0x1a, 0x02, 0x08, 0x01, + 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x11, 0x12, + 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, + 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x12, 0x12, 0x12, + 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x14, 0x12, 0x17, 0x0a, + 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, + 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, + 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, 0x18, 0x12, 0x12, 0x0a, + 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, + 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0x1a, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, + 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61, + 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x56, 0x0a, 0x08, 0x53, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x69, 0x6e, + 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, + 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x10, 0x02, 0x2a, 0x9b, 0x0a, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x42, 0x41, + 0x50, 0x10, 0x3c, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x70, 0x65, 0x78, 0x10, 0x60, 0x12, 0x07, 0x0a, + 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, + 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, + 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, + 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, + 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, + 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, + 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, + 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, + 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, + 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, + 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x43, + 0x55, 0x44, 0x41, 0x10, 0x61, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, + 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, + 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, + 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, + 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, + 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, + 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, + 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, + 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, + 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0b, + 0x0a, 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x10, 0x62, 0x12, 0x0a, 0x0a, 0x06, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, + 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, 0x0b, 0x0a, 0x07, 0x48, + 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x64, 0x72, 0x69, + 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, 0x12, 0x05, 0x0a, 0x01, + 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x4b, 0x12, 0x08, 0x0a, + 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, 0x76, 0x61, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x61, 0x76, 0x61, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, 0x12, 0x0b, 0x0a, 0x07, + 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, 0x05, 0x4a, 0x75, 0x6c, + 0x69, 0x61, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x75, 0x73, 0x74, 0x66, 0x69, 0x6c, 0x65, + 0x10, 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x09, + 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x61, + 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, 0x10, 0x1b, 0x12, 0x07, 0x0a, + 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x75, 0x61, 0x75, 0x10, 0x6c, + 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, + 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, + 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x6b, + 0x65, 0x6c, 0x10, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, + 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x10, 0x63, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x48, 0x50, 0x10, + 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, 0x12, 0x08, 0x0a, 0x04, + 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, + 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x67, + 0x10, 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x10, 0x64, + 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x05, 0x0a, 0x01, + 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x0b, 0x12, + 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x61, 0x7a, + 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x72, 0x6f, 0x10, 0x66, 0x12, + 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, + 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, + 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, + 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, + 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, + 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x6b, 0x12, 0x0c, 0x0a, 0x08, + 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x10, 0x5f, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x76, + 0x65, 0x6c, 0x74, 0x65, 0x10, 0x6a, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x6c, 0x10, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, + 0x4d, 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, 0x52, 0x12, 0x0a, 0x0a, + 0x06, 0x54, 0x68, 0x72, 0x69, 0x66, 0x74, 0x10, 0x67, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0b, + 0x0a, 0x07, 0x56, 0x65, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x10, 0x68, 0x12, 0x08, 0x0a, 0x04, 0x56, + 0x48, 0x44, 0x4c, 0x10, 0x69, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, + 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, + 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, + 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, + 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, + 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, + 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/bindings/go/scip/testutil/format.go b/bindings/go/scip/testutil/format.go index fa023f55..c99abb44 100644 --- a/bindings/go/scip/testutil/format.go +++ b/bindings/go/scip/testutil/format.go @@ -110,9 +110,11 @@ func FormatSnapshot( } b.WriteRune(' ') role := "reference" - isDefinition := occ.SymbolRoles&int32(scip.SymbolRole_Definition) > 0 + isDefinition := scip.SymbolRole_Definition.Matches(occ) if isDefinition { role = "definition" + } else if scip.SymbolRole_ForwardDefinition.Matches(occ) { + role = "forward_definition" } b.WriteString(role) b.WriteRune(' ') diff --git a/bindings/haskell/src/Proto/Scip.hs b/bindings/haskell/src/Proto/Scip.hs index a399c656..3733ccbb 100644 --- a/bindings/haskell/src/Proto/Scip.hs +++ b/bindings/haskell/src/Proto/Scip.hs @@ -5242,6 +5242,7 @@ data SymbolRole ReadAccess | Generated | Test | + ForwardDefinition | SymbolRole'Unrecognized !SymbolRole'UnrecognizedValue deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord) instance Data.ProtoLens.MessageEnum SymbolRole where @@ -5252,6 +5253,7 @@ instance Data.ProtoLens.MessageEnum SymbolRole where maybeToEnum 8 = Prelude.Just ReadAccess maybeToEnum 16 = Prelude.Just Generated maybeToEnum 32 = Prelude.Just Test + maybeToEnum 64 = Prelude.Just ForwardDefinition maybeToEnum k = Prelude.Just (SymbolRole'Unrecognized @@ -5263,6 +5265,7 @@ instance Data.ProtoLens.MessageEnum SymbolRole where showEnum ReadAccess = "ReadAccess" showEnum Generated = "Generated" showEnum Test = "Test" + showEnum ForwardDefinition = "ForwardDefinition" showEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k)) = Prelude.show k readEnum k @@ -5274,11 +5277,13 @@ instance Data.ProtoLens.MessageEnum SymbolRole where | (Prelude.==) k "ReadAccess" = Prelude.Just ReadAccess | (Prelude.==) k "Generated" = Prelude.Just Generated | (Prelude.==) k "Test" = Prelude.Just Test + | (Prelude.==) k "ForwardDefinition" + = Prelude.Just ForwardDefinition | Prelude.otherwise = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum instance Prelude.Bounded SymbolRole where minBound = UnspecifiedSymbolRole - maxBound = Test + maxBound = ForwardDefinition instance Prelude.Enum SymbolRole where toEnum k__ = Prelude.maybe @@ -5293,17 +5298,19 @@ instance Prelude.Enum SymbolRole where fromEnum ReadAccess = 8 fromEnum Generated = 16 fromEnum Test = 32 + fromEnum ForwardDefinition = 64 fromEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k)) = Prelude.fromIntegral k - succ Test + succ ForwardDefinition = Prelude.error - "SymbolRole.succ: bad argument Test. This value would be out of bounds." + "SymbolRole.succ: bad argument ForwardDefinition. This value would be out of bounds." succ UnspecifiedSymbolRole = Definition succ Definition = Import succ Import = WriteAccess succ WriteAccess = ReadAccess succ ReadAccess = Generated succ Generated = Test + succ Test = ForwardDefinition succ (SymbolRole'Unrecognized _) = Prelude.error "SymbolRole.succ: bad argument: unrecognized value" pred UnspecifiedSymbolRole @@ -5315,6 +5322,7 @@ instance Prelude.Enum SymbolRole where pred ReadAccess = WriteAccess pred Generated = ReadAccess pred Test = Generated + pred ForwardDefinition = Test pred (SymbolRole'Unrecognized _) = Prelude.error "SymbolRole.pred: bad argument: unrecognized value" enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom @@ -6145,7 +6153,7 @@ packedFileDescriptor \\fTextEncoding\DC2\ESC\n\ \\ETBUnspecifiedTextEncoding\DLE\NUL\DC2\b\n\ \\EOTUTF8\DLE\SOH\DC2\t\n\ - \\ENQUTF16\DLE\STX*}\n\ + \\ENQUTF16\DLE\STX*\148\SOH\n\ \\n\ \SymbolRole\DC2\EM\n\ \\NAKUnspecifiedSymbolRole\DLE\NUL\DC2\SO\n\ @@ -6157,7 +6165,8 @@ packedFileDescriptor \\n\ \ReadAccess\DLE\b\DC2\r\n\ \\tGenerated\DLE\DLE\DC2\b\n\ - \\EOTTest\DLE *\234\ACK\n\ + \\EOTTest\DLE \DC2\NAK\n\ + \\DC1ForwardDefinition\DLE@*\234\ACK\n\ \\n\ \SyntaxKind\DC2\EM\n\ \\NAKUnspecifiedSyntaxKind\DLE\NUL\DC2\v\n\ @@ -6351,9 +6360,9 @@ packedFileDescriptor \\ETXXML\DLE\US\DC2\a\n\ \\ETXXSL\DLE \DC2\b\n\ \\EOTYAML\DLEJ\DC2\a\n\ - \\ETXZig\DLE&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\225\161\STX\n\ + \\ETXZig\DLE&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\239\163\STX\n\ \\a\DC2\ENQ\n\ - \\NUL\172\ACK\SOH\n\ + \\NUL\178\ACK\SOH\n\ \\130\EOT\n\ \\SOH\f\DC2\ETX\n\ \\NUL\DC22\247\ETX An index contains one or more pieces of information about a given piece of\n\ @@ -7633,7 +7642,7 @@ packedFileDescriptor \\r\n\ \\ENQ\EOT\b\STX\EOT\ETX\DC2\EOT\195\ETX\ETB\CAN\n\ \\136\ETX\n\ - \\STX\ENQ\STX\DC2\ACK\204\ETX\NUL\220\ETX\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\ + \\STX\ENQ\STX\DC2\ACK\204\ETX\NUL\226\ETX\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\ \ encoded as a bitset where each bit represents a different role. For example,\n\ \ to determine if the `Import` role is set, test whether the second bit of the\n\ \ enum value is defined. In pseudocode, this can be implemented with the\n\ @@ -7691,312 +7700,323 @@ packedFileDescriptor \\ENQ\ENQ\STX\STX\ACK\SOH\DC2\EOT\219\ETX\STX\ACK\n\ \\r\n\ \\ENQ\ENQ\STX\STX\ACK\STX\DC2\EOT\219\ETX\t\r\n\ + \\237\SOH\n\ + \\EOT\ENQ\STX\STX\a\DC2\EOT\225\ETX\STX\ESC\SUB\222\SOH Is this a signature for a symbol that is defined elsewhere?\n\ + \\n\ + \ Applies to forward declarations for languages like C, C++\n\ + \ and Objective-C, as well as `val` declarations in interface\n\ + \ files in languages like SML and OCaml.\n\ + \\n\ + \\r\n\ + \\ENQ\ENQ\STX\STX\a\SOH\DC2\EOT\225\ETX\STX\DC3\n\ + \\r\n\ + \\ENQ\ENQ\STX\STX\a\STX\DC2\EOT\225\ETX\SYN\SUB\n\ \\f\n\ - \\STX\ENQ\ETX\DC2\ACK\222\ETX\NUL\187\EOT\SOH\n\ + \\STX\ENQ\ETX\DC2\ACK\228\ETX\NUL\193\EOT\SOH\n\ \\v\n\ - \\ETX\ENQ\ETX\SOH\DC2\EOT\222\ETX\ENQ\SI\n\ + \\ETX\ENQ\ETX\SOH\DC2\EOT\228\ETX\ENQ\SI\n\ \\v\n\ - \\ETX\ENQ\ETX\ETX\DC2\EOT\223\ETX\STX\FS\n\ + \\ETX\ENQ\ETX\ETX\DC2\EOT\229\ETX\STX\FS\n\ \\f\n\ - \\EOT\ENQ\ETX\ETX\STX\DC2\EOT\223\ETX\STX\FS\n\ + \\EOT\ENQ\ETX\ETX\STX\DC2\EOT\229\ETX\STX\FS\n\ \\f\n\ - \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\225\ETX\STX\FS\n\ + \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\231\ETX\STX\FS\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\225\ETX\STX\ETB\n\ + \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\231\ETX\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\225\ETX\SUB\ESC\n\ + \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\231\ETX\SUB\ESC\n\ \;\n\ - \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\228\ETX\STX\SO\SUB- Comment, including comment markers and text\n\ + \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\234\ETX\STX\SO\SUB- Comment, including comment markers and text\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\228\ETX\STX\t\n\ + \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\234\ETX\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\228\ETX\f\r\n\ + \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\234\ETX\f\r\n\ \\ESC\n\ - \\EOT\ENQ\ETX\STX\STX\DC2\EOT\231\ETX\STX\ESC\SUB\r `;` `.` `,`\n\ + \\EOT\ENQ\ETX\STX\STX\DC2\EOT\237\ETX\STX\ESC\SUB\r `;` `.` `,`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\231\ETX\STX\SYN\n\ + \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\237\ETX\STX\SYN\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\231\ETX\EM\SUB\n\ + \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\237\ETX\EM\SUB\n\ \2\n\ - \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\233\ETX\STX\EM\SUB$ (), {}, [] when used syntactically\n\ + \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\239\ETX\STX\EM\SUB$ (), {}, [] when used syntactically\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\233\ETX\STX\DC4\n\ + \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\239\ETX\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\233\ETX\ETB\CAN\n\ + \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\239\ETX\ETB\CAN\n\ \5\n\ - \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\236\ETX\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\ + \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\242\ETX\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\236\ETX\STX\t\n\ + \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\242\ETX\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\236\ETX\f\r\n\ + \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\242\ETX\f\r\n\ \\f\n\ - \\EOT\ENQ\ETX\STX\ENQ\DC2\EOT\237\ETX\STX*\n\ + \\EOT\ENQ\ETX\STX\ENQ\DC2\EOT\243\ETX\STX*\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ENQ\SOH\DC2\EOT\237\ETX\STX\DC3\n\ + \\ENQ\ENQ\ETX\STX\ENQ\SOH\DC2\EOT\243\ETX\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ENQ\STX\DC2\EOT\237\ETX\SYN\ETB\n\ + \\ENQ\ENQ\ETX\STX\ENQ\STX\DC2\EOT\243\ETX\SYN\ETB\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ENQ\ETX\DC2\EOT\237\ETX\CAN)\n\ + \\ENQ\ENQ\ETX\STX\ENQ\ETX\DC2\EOT\243\ETX\CAN)\n\ \\SO\n\ - \\ACK\ENQ\ETX\STX\ENQ\ETX\SOH\DC2\EOT\237\ETX\EM(\n\ + \\ACK\ENQ\ETX\STX\ENQ\ETX\SOH\DC2\EOT\243\ETX\EM(\n\ \\RS\n\ - \\EOT\ENQ\ETX\STX\ACK\DC2\EOT\240\ETX\STX\EM\SUB\DLE `+`, `*`, etc.\n\ + \\EOT\ENQ\ETX\STX\ACK\DC2\EOT\246\ETX\STX\EM\SUB\DLE `+`, `*`, etc.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ACK\SOH\DC2\EOT\240\ETX\STX\DC4\n\ + \\ENQ\ENQ\ETX\STX\ACK\SOH\DC2\EOT\246\ETX\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ACK\STX\DC2\EOT\240\ETX\ETB\CAN\n\ + \\ENQ\ENQ\ETX\STX\ACK\STX\DC2\EOT\246\ETX\ETB\CAN\n\ \X\n\ - \\EOT\ENQ\ETX\STX\a\DC2\EOT\243\ETX\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\ + \\EOT\ENQ\ETX\STX\a\DC2\EOT\249\ETX\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\243\ETX\STX\f\n\ + \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\249\ETX\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\243\ETX\SI\DLE\n\ + \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\249\ETX\SI\DLE\n\ \N\n\ - \\EOT\ENQ\ETX\STX\b\DC2\EOT\245\ETX\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\ + \\EOT\ENQ\ETX\STX\b\DC2\EOT\251\ETX\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\b\SOH\DC2\EOT\245\ETX\STX\DC3\n\ + \\ENQ\ENQ\ETX\STX\b\SOH\DC2\EOT\251\ETX\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\b\STX\DC2\EOT\245\ETX\SYN\ETB\n\ + \\ENQ\ENQ\ETX\STX\b\STX\DC2\EOT\251\ETX\SYN\ETB\n\ \[\n\ - \\EOT\ENQ\ETX\STX\t\DC2\EOT\247\ETX\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\ + \\EOT\ENQ\ETX\STX\t\DC2\EOT\253\ETX\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\t\SOH\DC2\EOT\247\ETX\STX\DLE\n\ + \\ENQ\ENQ\ETX\STX\t\SOH\DC2\EOT\253\ETX\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\t\STX\DC2\EOT\247\ETX\DC3\DC4\n\ + \\ENQ\ENQ\ETX\STX\t\STX\DC2\EOT\253\ETX\DC3\DC4\n\ \.\n\ \\EOT\ENQ\ETX\STX\n\ - \\DC2\EOT\249\ETX\STX\EM\SUB `xyz` in `const xyz = \"hello\"`\n\ + \\DC2\EOT\255\ETX\STX\EM\SUB `xyz` in `const xyz = \"hello\"`\n\ \\n\ \\r\n\ \\ENQ\ENQ\ETX\STX\n\ - \\SOH\DC2\EOT\249\ETX\STX\DC4\n\ + \\SOH\DC2\EOT\255\ETX\STX\DC4\n\ \\r\n\ \\ENQ\ENQ\ETX\STX\n\ - \\STX\DC2\EOT\249\ETX\ETB\CAN\n\ + \\STX\DC2\EOT\255\ETX\ETB\CAN\n\ \'\n\ - \\EOT\ENQ\ETX\STX\v\DC2\EOT\251\ETX\STX\US\SUB\EM `var X = \"hello\"` in Go\n\ + \\EOT\ENQ\ETX\STX\v\DC2\EOT\129\EOT\STX\US\SUB\EM `var X = \"hello\"` in Go\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\v\SOH\DC2\EOT\251\ETX\STX\EM\n\ + \\ENQ\ENQ\ETX\STX\v\SOH\DC2\EOT\129\EOT\STX\EM\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\v\STX\DC2\EOT\251\ETX\FS\RS\n\ + \\ENQ\ENQ\ETX\STX\v\STX\DC2\EOT\129\EOT\FS\RS\n\ \3\n\ - \\EOT\ENQ\ETX\STX\f\DC2\EOT\253\ETX\STX\ESC\SUB% Parameter definition and references\n\ + \\EOT\ENQ\ETX\STX\f\DC2\EOT\131\EOT\STX\ESC\SUB% Parameter definition and references\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\f\SOH\DC2\EOT\253\ETX\STX\NAK\n\ + \\ENQ\ENQ\ETX\STX\f\SOH\DC2\EOT\131\EOT\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\f\STX\DC2\EOT\253\ETX\CAN\SUB\n\ + \\ENQ\ENQ\ETX\STX\f\STX\DC2\EOT\131\EOT\CAN\SUB\n\ \X\n\ - \\EOT\ENQ\ETX\STX\r\DC2\EOT\255\ETX\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\ + \\EOT\ENQ\ETX\STX\r\DC2\EOT\133\EOT\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\r\SOH\DC2\EOT\255\ETX\STX\DC1\n\ + \\ENQ\ENQ\ETX\STX\r\SOH\DC2\EOT\133\EOT\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\r\STX\DC2\EOT\255\ETX\DC4\SYN\n\ + \\ENQ\ENQ\ETX\STX\r\STX\DC2\EOT\133\EOT\DC4\SYN\n\ \K\n\ - \\EOT\ENQ\ETX\STX\SO\DC2\EOT\129\EOT\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\ + \\EOT\ENQ\ETX\STX\SO\DC2\EOT\135\EOT\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SO\SOH\DC2\EOT\129\EOT\STX\DC4\n\ + \\ENQ\ENQ\ETX\STX\SO\SOH\DC2\EOT\135\EOT\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SO\STX\DC2\EOT\129\EOT\ETB\EM\n\ + \\ENQ\ENQ\ETX\STX\SO\STX\DC2\EOT\135\EOT\ETB\EM\n\ \\205\SOH\n\ - \\EOT\ENQ\ETX\STX\SI\DC2\EOT\134\EOT\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\ + \\EOT\ENQ\ETX\STX\SI\DC2\EOT\140\EOT\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\ \\n\ \ NOTE: This corresponds to a package in Go and JVM languages,\n\ \ and a module in languages like Python and JavaScript.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SI\SOH\DC2\EOT\134\EOT\STX\NAK\n\ + \\ENQ\ENQ\ETX\STX\SI\SOH\DC2\EOT\140\EOT\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SI\STX\DC2\EOT\134\EOT\CAN\SUB\n\ + \\ENQ\ENQ\ETX\STX\SI\STX\DC2\EOT\140\EOT\CAN\SUB\n\ \\f\n\ - \\EOT\ENQ\ETX\STX\DLE\DC2\EOT\135\EOT\STX*\n\ + \\EOT\ENQ\ETX\STX\DLE\DC2\EOT\141\EOT\STX*\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DLE\SOH\DC2\EOT\135\EOT\STX\DC2\n\ + \\ENQ\ENQ\ETX\STX\DLE\SOH\DC2\EOT\141\EOT\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DLE\STX\DC2\EOT\135\EOT\NAK\ETB\n\ + \\ENQ\ENQ\ETX\STX\DLE\STX\DC2\EOT\141\EOT\NAK\ETB\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DLE\ETX\DC2\EOT\135\EOT\CAN)\n\ + \\ENQ\ENQ\ETX\STX\DLE\ETX\DC2\EOT\141\EOT\CAN)\n\ \\SO\n\ - \\ACK\ENQ\ETX\STX\DLE\ETX\SOH\DC2\EOT\135\EOT\EM(\n\ + \\ACK\ENQ\ETX\STX\DLE\ETX\SOH\DC2\EOT\141\EOT\EM(\n\ \4\n\ - \\EOT\ENQ\ETX\STX\DC1\DC2\EOT\138\EOT\STX\SUB\SUB& Function references, including calls\n\ + \\EOT\ENQ\ETX\STX\DC1\DC2\EOT\144\EOT\STX\SUB\SUB& Function references, including calls\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC1\SOH\DC2\EOT\138\EOT\STX\DC4\n\ + \\ENQ\ENQ\ETX\STX\DC1\SOH\DC2\EOT\144\EOT\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC1\STX\DC2\EOT\138\EOT\ETB\EM\n\ + \\ENQ\ENQ\ETX\STX\DC1\STX\DC2\EOT\144\EOT\ETB\EM\n\ \(\n\ - \\EOT\ENQ\ETX\STX\DC2\DC2\EOT\140\EOT\STX$\SUB\SUB Function definition only\n\ + \\EOT\ENQ\ETX\STX\DC2\DC2\EOT\146\EOT\STX$\SUB\SUB Function definition only\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC2\SOH\DC2\EOT\140\EOT\STX\RS\n\ + \\ENQ\ENQ\ETX\STX\DC2\SOH\DC2\EOT\146\EOT\STX\RS\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC2\STX\DC2\EOT\140\EOT!#\n\ + \\ENQ\ENQ\ETX\STX\DC2\STX\DC2\EOT\146\EOT!#\n\ \7\n\ - \\EOT\ENQ\ETX\STX\DC3\DC2\EOT\143\EOT\STX\ETB\SUB) Macro references, including invocations\n\ + \\EOT\ENQ\ETX\STX\DC3\DC2\EOT\149\EOT\STX\ETB\SUB) Macro references, including invocations\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC3\SOH\DC2\EOT\143\EOT\STX\DC1\n\ + \\ENQ\ENQ\ETX\STX\DC3\SOH\DC2\EOT\149\EOT\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC3\STX\DC2\EOT\143\EOT\DC4\SYN\n\ + \\ENQ\ENQ\ETX\STX\DC3\STX\DC2\EOT\149\EOT\DC4\SYN\n\ \%\n\ - \\EOT\ENQ\ETX\STX\DC4\DC2\EOT\145\EOT\STX!\SUB\ETB Macro definition only\n\ + \\EOT\ENQ\ETX\STX\DC4\DC2\EOT\151\EOT\STX!\SUB\ETB Macro definition only\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC4\SOH\DC2\EOT\145\EOT\STX\ESC\n\ + \\ENQ\ENQ\ETX\STX\DC4\SOH\DC2\EOT\151\EOT\STX\ESC\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\DC4\STX\DC2\EOT\145\EOT\RS \n\ + \\ENQ\ENQ\ETX\STX\DC4\STX\DC2\EOT\151\EOT\RS \n\ \!\n\ - \\EOT\ENQ\ETX\STX\NAK\DC2\EOT\148\EOT\STX\SYN\SUB\DC3 non-builtin types\n\ + \\EOT\ENQ\ETX\STX\NAK\DC2\EOT\154\EOT\STX\SYN\SUB\DC3 non-builtin types\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\NAK\SOH\DC2\EOT\148\EOT\STX\DLE\n\ + \\ENQ\ENQ\ETX\STX\NAK\SOH\DC2\EOT\154\EOT\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\NAK\STX\DC2\EOT\148\EOT\DC3\NAK\n\ + \\ENQ\ENQ\ETX\STX\NAK\STX\DC2\EOT\154\EOT\DC3\NAK\n\ \K\n\ - \\EOT\ENQ\ETX\STX\SYN\DC2\EOT\150\EOT\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\ + \\EOT\ENQ\ETX\STX\SYN\DC2\EOT\156\EOT\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SYN\SOH\DC2\EOT\150\EOT\STX\ETB\n\ + \\ENQ\ENQ\ETX\STX\SYN\SOH\DC2\EOT\156\EOT\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SYN\STX\DC2\EOT\150\EOT\SUB\FS\n\ + \\ENQ\ENQ\ETX\STX\SYN\STX\DC2\EOT\156\EOT\SUB\FS\n\ \7\n\ - \\EOT\ENQ\ETX\STX\ETB\DC2\EOT\153\EOT\STX\ESC\SUB) Python decorators, c-like __attribute__\n\ + \\EOT\ENQ\ETX\STX\ETB\DC2\EOT\159\EOT\STX\ESC\SUB) Python decorators, c-like __attribute__\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ETB\SOH\DC2\EOT\153\EOT\STX\NAK\n\ + \\ENQ\ENQ\ETX\STX\ETB\SOH\DC2\EOT\159\EOT\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ETB\STX\DC2\EOT\153\EOT\CAN\SUB\n\ + \\ENQ\ENQ\ETX\STX\ETB\STX\DC2\EOT\159\EOT\CAN\SUB\n\ \\DC4\n\ - \\EOT\ENQ\ETX\STX\CAN\DC2\EOT\156\EOT\STX\DC3\SUB\ACK `\\b`\n\ + \\EOT\ENQ\ETX\STX\CAN\DC2\EOT\162\EOT\STX\DC3\SUB\ACK `\\b`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\CAN\SOH\DC2\EOT\156\EOT\STX\r\n\ + \\ENQ\ENQ\ETX\STX\CAN\SOH\DC2\EOT\162\EOT\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\CAN\STX\DC2\EOT\156\EOT\DLE\DC2\n\ + \\ENQ\ENQ\ETX\STX\CAN\STX\DC2\EOT\162\EOT\DLE\DC2\n\ \\CAN\n\ - \\EOT\ENQ\ETX\STX\EM\DC2\EOT\158\EOT\STX\NAK\SUB\n\ + \\EOT\ENQ\ETX\STX\EM\DC2\EOT\164\EOT\STX\NAK\SUB\n\ \ `*`, `+`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\EM\SOH\DC2\EOT\158\EOT\STX\SI\n\ + \\ENQ\ENQ\ETX\STX\EM\SOH\DC2\EOT\164\EOT\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\EM\STX\DC2\EOT\158\EOT\DC2\DC4\n\ + \\ENQ\ENQ\ETX\STX\EM\STX\DC2\EOT\164\EOT\DC2\DC4\n\ \\DC3\n\ - \\EOT\ENQ\ETX\STX\SUB\DC2\EOT\160\EOT\STX\NAK\SUB\ENQ `.`\n\ + \\EOT\ENQ\ETX\STX\SUB\DC2\EOT\166\EOT\STX\NAK\SUB\ENQ `.`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SUB\SOH\DC2\EOT\160\EOT\STX\SI\n\ + \\ENQ\ENQ\ETX\STX\SUB\SOH\DC2\EOT\166\EOT\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SUB\STX\DC2\EOT\160\EOT\DC2\DC4\n\ + \\ENQ\ENQ\ETX\STX\SUB\STX\DC2\EOT\166\EOT\DC2\DC4\n\ \\"\n\ - \\EOT\ENQ\ETX\STX\ESC\DC2\EOT\162\EOT\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\ + \\EOT\ENQ\ETX\STX\ESC\DC2\EOT\168\EOT\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ESC\SOH\DC2\EOT\162\EOT\STX\DLE\n\ + \\ENQ\ENQ\ETX\STX\ESC\SOH\DC2\EOT\168\EOT\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ESC\STX\DC2\EOT\162\EOT\DC3\NAK\n\ + \\ENQ\ENQ\ETX\STX\ESC\STX\DC2\EOT\168\EOT\DC3\NAK\n\ \\CAN\n\ - \\EOT\ENQ\ETX\STX\FS\DC2\EOT\164\EOT\STX\DC1\SUB\n\ + \\EOT\ENQ\ETX\STX\FS\DC2\EOT\170\EOT\STX\DC1\SUB\n\ \ `|`, `-`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\FS\SOH\DC2\EOT\164\EOT\STX\v\n\ + \\ENQ\ENQ\ETX\STX\FS\SOH\DC2\EOT\170\EOT\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\FS\STX\DC2\EOT\164\EOT\SO\DLE\n\ + \\ENQ\ENQ\ETX\STX\FS\STX\DC2\EOT\170\EOT\SO\DLE\n\ \0\n\ - \\EOT\ENQ\ETX\STX\GS\DC2\EOT\167\EOT\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\ + \\EOT\ENQ\ETX\STX\GS\DC2\EOT\173\EOT\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\GS\SOH\DC2\EOT\167\EOT\STX\SI\n\ + \\ENQ\ENQ\ETX\STX\GS\SOH\DC2\EOT\173\EOT\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\GS\STX\DC2\EOT\167\EOT\DC2\DC4\n\ + \\ENQ\ENQ\ETX\STX\GS\STX\DC2\EOT\173\EOT\DC2\DC4\n\ \-\n\ - \\EOT\ENQ\ETX\STX\RS\DC2\EOT\169\EOT\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\ + \\EOT\ENQ\ETX\STX\RS\DC2\EOT\175\EOT\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\RS\SOH\DC2\EOT\169\EOT\STX\NAK\n\ + \\ENQ\ENQ\ETX\STX\RS\SOH\DC2\EOT\175\EOT\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\RS\STX\DC2\EOT\169\EOT\CAN\SUB\n\ + \\ENQ\ENQ\ETX\STX\RS\STX\DC2\EOT\175\EOT\CAN\SUB\n\ \_\n\ - \\EOT\ENQ\ETX\STX\US\DC2\EOT\171\EOT\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\ + \\EOT\ENQ\ETX\STX\US\DC2\EOT\177\EOT\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\US\SOH\DC2\EOT\171\EOT\STX\SYN\n\ + \\ENQ\ENQ\ETX\STX\US\SOH\DC2\EOT\177\EOT\STX\SYN\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\US\STX\DC2\EOT\171\EOT\EM\ESC\n\ + \\ENQ\ENQ\ETX\STX\US\STX\DC2\EOT\177\EOT\EM\ESC\n\ \G\n\ - \\EOT\ENQ\ETX\STX \DC2\EOT\173\EOT\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\ + \\EOT\ENQ\ETX\STX \DC2\EOT\179\EOT\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX \SOH\DC2\EOT\173\EOT\STX\DC2\n\ + \\ENQ\ENQ\ETX\STX \SOH\DC2\EOT\179\EOT\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX \STX\DC2\EOT\173\EOT\NAK\ETB\n\ + \\ENQ\ENQ\ETX\STX \STX\DC2\EOT\179\EOT\NAK\ETB\n\ \V\n\ - \\EOT\ENQ\ETX\STX!\DC2\EOT\175\EOT\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\ + \\EOT\ENQ\ETX\STX!\DC2\EOT\181\EOT\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX!\SOH\DC2\EOT\175\EOT\STX\DC2\n\ + \\ENQ\ENQ\ETX\STX!\SOH\DC2\EOT\181\EOT\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX!\STX\DC2\EOT\175\EOT\NAK\ETB\n\ + \\ENQ\ENQ\ETX\STX!\STX\DC2\EOT\181\EOT\NAK\ETB\n\ \9\n\ - \\EOT\ENQ\ETX\STX\"\DC2\EOT\177\EOT\STX\SYN\SUB+ Literal numbers, both floats and integers\n\ + \\EOT\ENQ\ETX\STX\"\DC2\EOT\183\EOT\STX\SYN\SUB+ Literal numbers, both floats and integers\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\"\SOH\DC2\EOT\177\EOT\STX\DLE\n\ + \\ENQ\ENQ\ETX\STX\"\SOH\DC2\EOT\183\EOT\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\"\STX\DC2\EOT\177\EOT\DC3\NAK\n\ + \\ENQ\ENQ\ETX\STX\"\STX\DC2\EOT\183\EOT\DC3\NAK\n\ \\US\n\ - \\EOT\ENQ\ETX\STX#\DC2\EOT\179\EOT\STX\SYN\SUB\DC1 `true`, `false`\n\ + \\EOT\ENQ\ETX\STX#\DC2\EOT\185\EOT\STX\SYN\SUB\DC1 `true`, `false`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX#\SOH\DC2\EOT\179\EOT\STX\DLE\n\ + \\ENQ\ENQ\ETX\STX#\SOH\DC2\EOT\185\EOT\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX#\STX\DC2\EOT\179\EOT\DC3\NAK\n\ + \\ENQ\ENQ\ETX\STX#\STX\DC2\EOT\185\EOT\DC3\NAK\n\ \&\n\ - \\EOT\ENQ\ETX\STX$\DC2\EOT\182\EOT\STX\v\SUB\CAN Used for XML-like tags\n\ + \\EOT\ENQ\ETX\STX$\DC2\EOT\188\EOT\STX\v\SUB\CAN Used for XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX$\SOH\DC2\EOT\182\EOT\STX\ENQ\n\ + \\ENQ\ENQ\ETX\STX$\SOH\DC2\EOT\188\EOT\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX$\STX\DC2\EOT\182\EOT\b\n\ + \\ENQ\ENQ\ETX\STX$\STX\DC2\EOT\188\EOT\b\n\ \\n\ \/\n\ - \\EOT\ENQ\ETX\STX%\DC2\EOT\184\EOT\STX\DC4\SUB! Attribute name in XML-like tags\n\ + \\EOT\ENQ\ETX\STX%\DC2\EOT\190\EOT\STX\DC4\SUB! Attribute name in XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX%\SOH\DC2\EOT\184\EOT\STX\SO\n\ + \\ENQ\ENQ\ETX\STX%\SOH\DC2\EOT\190\EOT\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX%\STX\DC2\EOT\184\EOT\DC1\DC3\n\ + \\ENQ\ENQ\ETX\STX%\STX\DC2\EOT\190\EOT\DC1\DC3\n\ \,\n\ - \\EOT\ENQ\ETX\STX&\DC2\EOT\186\EOT\STX\DC4\SUB\RS Delimiters for XML-like tags\n\ + \\EOT\ENQ\ETX\STX&\DC2\EOT\192\EOT\STX\DC4\SUB\RS Delimiters for XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX&\SOH\DC2\EOT\186\EOT\STX\SO\n\ + \\ENQ\ENQ\ETX\STX&\SOH\DC2\EOT\192\EOT\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX&\STX\DC2\EOT\186\EOT\DC1\DC3\n\ + \\ENQ\ENQ\ETX\STX&\STX\DC2\EOT\192\EOT\DC1\DC3\n\ \\249\SOH\n\ - \\STX\EOT\t\DC2\ACK\194\EOT\NUL\145\ENQ\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ + \\STX\EOT\t\DC2\ACK\200\EOT\NUL\151\ENQ\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ \ information.\n\ \\n\ \ If possible, indexers should try to bundle logically related information\n\ \ across occurrences into a single occurrence to reduce payload sizes.\n\ \\n\ \\v\n\ - \\ETX\EOT\t\SOH\DC2\EOT\194\EOT\b\DC2\n\ + \\ETX\EOT\t\SOH\DC2\EOT\200\EOT\b\DC2\n\ \\198\a\n\ - \\EOT\EOT\t\STX\NUL\DC2\EOT\213\EOT\STX\ESC\SUB\183\a Source position of this occurrence. Must be exactly three or four\n\ + \\EOT\EOT\t\STX\NUL\DC2\EOT\219\EOT\STX\ESC\SUB\183\a Source position of this occurrence. Must be exactly three or four\n\ \ elements:\n\ \\n\ \ - Four elements: `[startLine, startCharacter, endLine, endCharacter]`\n\ @@ -8016,36 +8036,36 @@ packedFileDescriptor \ improvements make up for it.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\EOT\DC2\EOT\213\EOT\STX\n\ + \\ENQ\EOT\t\STX\NUL\EOT\DC2\EOT\219\EOT\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\213\EOT\v\DLE\n\ + \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\219\EOT\v\DLE\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\213\EOT\DC1\SYN\n\ + \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\219\EOT\DC1\SYN\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\213\EOT\EM\SUB\n\ + \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\219\EOT\EM\SUB\n\ \\138\SOH\n\ - \\EOT\EOT\t\STX\SOH\DC2\EOT\216\EOT\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ + \\EOT\EOT\t\STX\SOH\DC2\EOT\222\EOT\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ \ `SymbolInformation.symbol` for how to format symbols as strings.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\216\EOT\STX\b\n\ + \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\222\EOT\STX\b\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\216\EOT\t\SI\n\ + \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\222\EOT\t\SI\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\216\EOT\DC2\DC3\n\ + \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\222\EOT\DC2\DC3\n\ \\151\SOH\n\ - \\EOT\EOT\t\STX\STX\DC2\EOT\219\EOT\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ + \\EOT\EOT\t\STX\STX\DC2\EOT\225\EOT\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ \ See `SymbolRole`'s documentation for how to read and write this field.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\219\EOT\STX\a\n\ + \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\225\EOT\STX\a\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\219\EOT\b\DC4\n\ + \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\225\EOT\b\DC4\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\219\EOT\ETB\CAN\n\ + \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\225\EOT\ETB\CAN\n\ \\241\ETX\n\ - \\EOT\EOT\t\STX\ETX\DC2\EOT\228\EOT\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ + \\EOT\EOT\t\STX\ETX\DC2\EOT\234\EOT\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ \ empty, the `Symbol.documentation` field is used instead. One example\n\ \ where this field might be useful is when the symbol represents a generic\n\ \ function (with abstract type parameters such as `List`) and at this\n\ @@ -8055,37 +8075,37 @@ packedFileDescriptor \ which commonly allow for type-changing assignment.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\EOT\DC2\EOT\228\EOT\STX\n\ + \\ENQ\EOT\t\STX\ETX\EOT\DC2\EOT\234\EOT\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\228\EOT\v\DC1\n\ + \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\234\EOT\v\DC1\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\228\EOT\DC2(\n\ + \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\234\EOT\DC2(\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\228\EOT+,\n\ + \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\234\EOT+,\n\ \X\n\ - \\EOT\EOT\t\STX\EOT\DC2\EOT\230\EOT\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ + \\EOT\EOT\t\STX\EOT\DC2\EOT\236\EOT\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\ACK\DC2\EOT\230\EOT\STX\f\n\ + \\ENQ\EOT\t\STX\EOT\ACK\DC2\EOT\236\EOT\STX\f\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\230\EOT\r\CAN\n\ + \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\236\EOT\r\CAN\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\230\EOT\ESC\FS\n\ + \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\236\EOT\ESC\FS\n\ \W\n\ - \\EOT\EOT\t\STX\ENQ\DC2\EOT\232\EOT\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ + \\EOT\EOT\t\STX\ENQ\DC2\EOT\238\EOT\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\EOT\DC2\EOT\232\EOT\STX\n\ + \\ENQ\EOT\t\STX\ENQ\EOT\DC2\EOT\238\EOT\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\ACK\DC2\EOT\232\EOT\v\NAK\n\ + \\ENQ\EOT\t\STX\ENQ\ACK\DC2\EOT\238\EOT\v\NAK\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\SOH\DC2\EOT\232\EOT\SYN!\n\ + \\ENQ\EOT\t\STX\ENQ\SOH\DC2\EOT\238\EOT\SYN!\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\ETX\DC2\EOT\232\EOT$%\n\ + \\ENQ\EOT\t\STX\ENQ\ETX\DC2\EOT\238\EOT$%\n\ \\128\f\n\ - \\EOT\EOT\t\STX\ACK\DC2\EOT\144\ENQ\STX%\SUB\241\v (optional) Using the same encoding as the sibling `range` field, source\n\ + \\EOT\EOT\t\STX\ACK\DC2\EOT\150\ENQ\STX%\SUB\241\v (optional) Using the same encoding as the sibling `range` field, source\n\ \ position of the nearest non-trivial enclosing AST node. This range must\n\ \ enclose the `range` field. Example applications that make use of the\n\ \ enclosing_range field:\n\ @@ -8126,152 +8146,152 @@ packedFileDescriptor \ ```\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\EOT\DC2\EOT\144\ENQ\STX\n\ + \\ENQ\EOT\t\STX\ACK\EOT\DC2\EOT\150\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\ENQ\DC2\EOT\144\ENQ\v\DLE\n\ + \\ENQ\EOT\t\STX\ACK\ENQ\DC2\EOT\150\ENQ\v\DLE\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\SOH\DC2\EOT\144\ENQ\DC1 \n\ + \\ENQ\EOT\t\STX\ACK\SOH\DC2\EOT\150\ENQ\DC1 \n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\ETX\DC2\EOT\144\ENQ#$\n\ + \\ENQ\EOT\t\STX\ACK\ETX\DC2\EOT\150\ENQ#$\n\ \w\n\ \\STX\EOT\n\ - \\DC2\ACK\149\ENQ\NUL\160\ENQ\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ + \\DC2\ACK\155\ENQ\NUL\166\ENQ\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ \ reported for a document.\n\ \\n\ \\v\n\ \\ETX\EOT\n\ - \\SOH\DC2\EOT\149\ENQ\b\DC2\n\ + \\SOH\DC2\EOT\155\ENQ\b\DC2\n\ \W\n\ \\EOT\EOT\n\ - \\STX\NUL\DC2\EOT\151\ENQ\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ + \\STX\NUL\DC2\EOT\157\ENQ\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\ACK\DC2\EOT\151\ENQ\STX\n\ + \\STX\NUL\ACK\DC2\EOT\157\ENQ\STX\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\SOH\DC2\EOT\151\ENQ\v\DC3\n\ + \\STX\NUL\SOH\DC2\EOT\157\ENQ\v\DC3\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\ETX\DC2\EOT\151\ENQ\SYN\ETB\n\ + \\STX\NUL\ETX\DC2\EOT\157\ENQ\SYN\ETB\n\ \]\n\ \\EOT\EOT\n\ - \\STX\SOH\DC2\EOT\153\ENQ\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ + \\STX\SOH\DC2\EOT\159\ENQ\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\SOH\ENQ\DC2\EOT\153\ENQ\STX\b\n\ + \\STX\SOH\ENQ\DC2\EOT\159\ENQ\STX\b\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\SOH\SOH\DC2\EOT\153\ENQ\t\r\n\ + \\STX\SOH\SOH\DC2\EOT\159\ENQ\t\r\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\SOH\ETX\DC2\EOT\153\ENQ\DLE\DC1\n\ + \\STX\SOH\ETX\DC2\EOT\159\ENQ\DLE\DC1\n\ \+\n\ \\EOT\EOT\n\ - \\STX\STX\DC2\EOT\155\ENQ\STX\NAK\SUB\GS Message of this diagnostic.\n\ + \\STX\STX\DC2\EOT\161\ENQ\STX\NAK\SUB\GS Message of this diagnostic.\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\STX\ENQ\DC2\EOT\155\ENQ\STX\b\n\ + \\STX\STX\ENQ\DC2\EOT\161\ENQ\STX\b\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\STX\SOH\DC2\EOT\155\ENQ\t\DLE\n\ + \\STX\STX\SOH\DC2\EOT\161\ENQ\t\DLE\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\STX\ETX\DC2\EOT\155\ENQ\DC3\DC4\n\ + \\STX\STX\ETX\DC2\EOT\161\ENQ\DC3\DC4\n\ \~\n\ \\EOT\EOT\n\ - \\STX\ETX\DC2\EOT\158\ENQ\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ + \\STX\ETX\DC2\EOT\164\ENQ\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ \ 'typescript' or 'super lint'.\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\ENQ\DC2\EOT\158\ENQ\STX\b\n\ + \\STX\ETX\ENQ\DC2\EOT\164\ENQ\STX\b\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\SOH\DC2\EOT\158\ENQ\t\SI\n\ + \\STX\ETX\SOH\DC2\EOT\164\ENQ\t\SI\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\ETX\DC2\EOT\158\ENQ\DC2\DC3\n\ + \\STX\ETX\ETX\DC2\EOT\164\ENQ\DC2\DC3\n\ \\f\n\ \\EOT\EOT\n\ - \\STX\EOT\DC2\EOT\159\ENQ\STX\"\n\ + \\STX\EOT\DC2\EOT\165\ENQ\STX\"\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\EOT\DC2\EOT\159\ENQ\STX\n\ + \\STX\EOT\EOT\DC2\EOT\165\ENQ\STX\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\ACK\DC2\EOT\159\ENQ\v\CAN\n\ + \\STX\EOT\ACK\DC2\EOT\165\ENQ\v\CAN\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\SOH\DC2\EOT\159\ENQ\EM\GS\n\ + \\STX\EOT\SOH\DC2\EOT\165\ENQ\EM\GS\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\ETX\DC2\EOT\159\ENQ !\n\ + \\STX\EOT\ETX\DC2\EOT\165\ENQ !\n\ \\f\n\ - \\STX\ENQ\EOT\DC2\ACK\162\ENQ\NUL\168\ENQ\SOH\n\ + \\STX\ENQ\EOT\DC2\ACK\168\ENQ\NUL\174\ENQ\SOH\n\ \\v\n\ - \\ETX\ENQ\EOT\SOH\DC2\EOT\162\ENQ\ENQ\r\n\ + \\ETX\ENQ\EOT\SOH\DC2\EOT\168\ENQ\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\163\ENQ\STX\SUB\n\ + \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\169\ENQ\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\163\ENQ\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\169\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\163\ENQ\CAN\EM\n\ + \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\169\ENQ\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\164\ENQ\STX\f\n\ + \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\170\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\164\ENQ\STX\a\n\ + \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\170\ENQ\STX\a\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\164\ENQ\n\ + \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\170\ENQ\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\STX\DC2\EOT\165\ENQ\STX\SO\n\ + \\EOT\ENQ\EOT\STX\STX\DC2\EOT\171\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\165\ENQ\STX\t\n\ + \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\171\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\165\ENQ\f\r\n\ + \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\171\ENQ\f\r\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\166\ENQ\STX\DC2\n\ + \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\172\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\166\ENQ\STX\r\n\ + \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\172\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\166\ENQ\DLE\DC1\n\ + \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\172\ENQ\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\167\ENQ\STX\v\n\ + \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\173\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\167\ENQ\STX\ACK\n\ + \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\173\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\167\ENQ\t\n\ + \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\173\ENQ\t\n\ \\n\ \\f\n\ - \\STX\ENQ\ENQ\DC2\ACK\170\ENQ\NUL\174\ENQ\SOH\n\ + \\STX\ENQ\ENQ\DC2\ACK\176\ENQ\NUL\180\ENQ\SOH\n\ \\v\n\ - \\ETX\ENQ\ENQ\SOH\DC2\EOT\170\ENQ\ENQ\DC2\n\ + \\ETX\ENQ\ENQ\SOH\DC2\EOT\176\ENQ\ENQ\DC2\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\171\ENQ\STX\US\n\ + \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\177\ENQ\STX\US\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\171\ENQ\STX\SUB\n\ + \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\177\ENQ\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\171\ENQ\GS\RS\n\ + \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\177\ENQ\GS\RS\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\172\ENQ\STX\DC2\n\ + \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\178\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\172\ENQ\STX\r\n\ + \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\178\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\172\ENQ\DLE\DC1\n\ + \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\178\ENQ\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\173\ENQ\STX\DC1\n\ + \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\179\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\173\ENQ\STX\f\n\ + \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\179\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\173\ENQ\SI\DLE\n\ + \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\179\ENQ\SI\DLE\n\ \\208\ETX\n\ - \\STX\ENQ\ACK\DC2\ACK\182\ENQ\NUL\172\ACK\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ + \\STX\ENQ\ACK\DC2\ACK\188\ENQ\NUL\178\ACK\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ \ for the `Document.language` field. The primary purpose of this enum is to\n\ \ prevent a situation where we have a single programming language ends up with\n\ \ multiple string representations. For example, the C++ language uses the name\n\ @@ -8279,708 +8299,708 @@ packedFileDescriptor \ Feel free to send a pull-request to add missing programming languages.\n\ \\n\ \\v\n\ - \\ETX\ENQ\ACK\SOH\DC2\EOT\182\ENQ\ENQ\r\n\ + \\ETX\ENQ\ACK\SOH\DC2\EOT\188\ENQ\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\183\ENQ\STX\SUB\n\ + \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\189\ENQ\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\183\ENQ\STX\NAK\n\ + \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\189\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\183\ENQ\CAN\EM\n\ + \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\189\ENQ\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\184\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\190\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\184\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\190\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\184\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\190\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\STX\DC2\EOT\185\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\STX\DC2\EOT\191\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\185\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\191\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\185\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\191\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\ETX\DC2\EOT\186\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\ETX\DC2\EOT\192\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ETX\SOH\DC2\EOT\186\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\ETX\SOH\DC2\EOT\192\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ETX\STX\DC2\EOT\186\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\ETX\STX\DC2\EOT\192\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\EOT\DC2\EOT\187\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\EOT\DC2\EOT\193\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\EOT\SOH\DC2\EOT\187\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\EOT\SOH\DC2\EOT\193\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\EOT\STX\DC2\EOT\187\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\EOT\STX\DC2\EOT\193\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\ENQ\DC2\EOT\188\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\ENQ\DC2\EOT\194\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ENQ\SOH\DC2\EOT\188\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\ENQ\SOH\DC2\EOT\194\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ENQ\STX\DC2\EOT\188\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\ENQ\STX\DC2\EOT\194\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\ACK\DC2\EOT\189\ENQ\STX\DLE\n\ + \\EOT\ENQ\ACK\STX\ACK\DC2\EOT\195\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ACK\SOH\DC2\EOT\189\ENQ\STX\n\ + \\ENQ\ENQ\ACK\STX\ACK\SOH\DC2\EOT\195\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ACK\STX\DC2\EOT\189\ENQ\r\SI\n\ + \\ENQ\ENQ\ACK\STX\ACK\STX\DC2\EOT\195\ENQ\r\SI\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\a\DC2\EOT\190\ENQ\STX\DLE\n\ + \\EOT\ENQ\ACK\STX\a\DC2\EOT\196\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\a\SOH\DC2\EOT\190\ENQ\STX\n\ + \\ENQ\ENQ\ACK\STX\a\SOH\DC2\EOT\196\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\a\STX\DC2\EOT\190\ENQ\r\SI\n\ + \\ENQ\ENQ\ACK\STX\a\STX\DC2\EOT\196\ENQ\r\SI\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\b\DC2\EOT\191\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\b\DC2\EOT\197\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\b\SOH\DC2\EOT\191\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\b\SOH\DC2\EOT\197\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\b\STX\DC2\EOT\191\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\b\STX\DC2\EOT\197\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\t\DC2\EOT\192\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\t\DC2\EOT\198\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\t\SOH\DC2\EOT\192\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\t\SOH\DC2\EOT\198\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\t\STX\DC2\EOT\192\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\t\STX\DC2\EOT\198\ENQ\b\n\ \\n\ \\f\n\ \\EOT\ENQ\ACK\STX\n\ - \\DC2\EOT\193\ENQ\STX\SO\n\ + \\DC2\EOT\199\ENQ\STX\SO\n\ \\r\n\ \\ENQ\ENQ\ACK\STX\n\ - \\SOH\DC2\EOT\193\ENQ\STX\b\n\ + \\SOH\DC2\EOT\199\ENQ\STX\b\n\ \\r\n\ \\ENQ\ENQ\ACK\STX\n\ - \\STX\DC2\EOT\193\ENQ\v\r\n\ + \\STX\DC2\EOT\199\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\v\DC2\EOT\194\ENQ\STX\t\n\ + \\EOT\ENQ\ACK\STX\v\DC2\EOT\200\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\v\SOH\DC2\EOT\194\ENQ\STX\ETX\n\ + \\ENQ\ENQ\ACK\STX\v\SOH\DC2\EOT\200\ENQ\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\v\STX\DC2\EOT\194\ENQ\ACK\b\n\ + \\ENQ\ENQ\ACK\STX\v\STX\DC2\EOT\200\ENQ\ACK\b\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\f\DC2\EOT\195\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX\f\DC2\EOT\201\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\f\SOH\DC2\EOT\195\ENQ\STX\a\n\ + \\ENQ\ENQ\ACK\STX\f\SOH\DC2\EOT\201\ENQ\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\f\STX\DC2\EOT\195\ENQ\n\ + \\ENQ\ENQ\ACK\STX\f\STX\DC2\EOT\201\ENQ\n\ \\f\n\ \H\n\ - \\EOT\ENQ\ACK\STX\r\DC2\EOT\196\ENQ\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ + \\EOT\ENQ\ACK\STX\r\DC2\EOT\202\ENQ\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\r\SOH\DC2\EOT\196\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\r\SOH\DC2\EOT\202\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\r\STX\DC2\EOT\196\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\r\STX\DC2\EOT\202\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SO\DC2\EOT\197\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\SO\DC2\EOT\203\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SO\SOH\DC2\EOT\197\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\SO\SOH\DC2\EOT\203\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SO\STX\DC2\EOT\197\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\SO\STX\DC2\EOT\203\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SI\DC2\EOT\198\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX\SI\DC2\EOT\204\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SI\SOH\DC2\EOT\198\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX\SI\SOH\DC2\EOT\204\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SI\STX\DC2\EOT\198\ENQ\v\f\n\ + \\ENQ\ENQ\ACK\STX\SI\STX\DC2\EOT\204\ENQ\v\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\DLE\DC2\EOT\199\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX\DLE\DC2\EOT\205\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DLE\SOH\DC2\EOT\199\ENQ\STX\t\n\ + \\ENQ\ENQ\ACK\STX\DLE\SOH\DC2\EOT\205\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DLE\STX\DC2\EOT\199\ENQ\f\r\n\ + \\ENQ\ENQ\ACK\STX\DLE\STX\DC2\EOT\205\ENQ\f\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\DC1\DC2\EOT\200\ENQ\STX\DC4\n\ + \\EOT\ENQ\ACK\STX\DC1\DC2\EOT\206\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC1\SOH\DC2\EOT\200\ENQ\STX\SO\n\ + \\ENQ\ENQ\ACK\STX\DC1\SOH\DC2\EOT\206\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC1\STX\DC2\EOT\200\ENQ\DC1\DC3\n\ + \\ENQ\ENQ\ACK\STX\DC1\STX\DC2\EOT\206\ENQ\DC1\DC3\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\DC2\DC2\EOT\201\ENQ\STX\DC1\n\ + \\EOT\ENQ\ACK\STX\DC2\DC2\EOT\207\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC2\SOH\DC2\EOT\201\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX\DC2\SOH\DC2\EOT\207\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC2\STX\DC2\EOT\201\ENQ\SI\DLE\n\ + \\ENQ\ENQ\ACK\STX\DC2\STX\DC2\EOT\207\ENQ\SI\DLE\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\DC3\DC2\EOT\202\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\DC3\DC2\EOT\208\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC3\SOH\DC2\EOT\202\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX\DC3\SOH\DC2\EOT\208\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC3\STX\DC2\EOT\202\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX\DC3\STX\DC2\EOT\208\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\DC4\DC2\EOT\203\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\DC4\DC2\EOT\209\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC4\SOH\DC2\EOT\203\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\DC4\SOH\DC2\EOT\209\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\DC4\STX\DC2\EOT\203\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\DC4\STX\DC2\EOT\209\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\NAK\DC2\EOT\204\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX\NAK\DC2\EOT\210\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NAK\SOH\DC2\EOT\204\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\NAK\SOH\DC2\EOT\210\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NAK\STX\DC2\EOT\204\ENQ\t\n\ + \\ENQ\ENQ\ACK\STX\NAK\STX\DC2\EOT\210\ENQ\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SYN\DC2\EOT\205\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX\SYN\DC2\EOT\211\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SYN\SOH\DC2\EOT\205\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX\SYN\SOH\DC2\EOT\211\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SYN\STX\DC2\EOT\205\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX\SYN\STX\DC2\EOT\211\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\ETB\DC2\EOT\206\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\ETB\DC2\EOT\212\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ETB\SOH\DC2\EOT\206\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\ETB\SOH\DC2\EOT\212\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ETB\STX\DC2\EOT\206\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\ETB\STX\DC2\EOT\212\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\CAN\DC2\EOT\207\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX\CAN\DC2\EOT\213\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\CAN\SOH\DC2\EOT\207\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX\CAN\SOH\DC2\EOT\213\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\CAN\STX\DC2\EOT\207\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STX\CAN\STX\DC2\EOT\213\ENQ\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\EM\DC2\EOT\208\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX\EM\DC2\EOT\214\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\EM\SOH\DC2\EOT\208\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX\EM\SOH\DC2\EOT\214\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\EM\STX\DC2\EOT\208\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX\EM\STX\DC2\EOT\214\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SUB\DC2\EOT\209\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX\SUB\DC2\EOT\215\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SUB\SOH\DC2\EOT\209\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX\SUB\SOH\DC2\EOT\215\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SUB\STX\DC2\EOT\209\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX\SUB\STX\DC2\EOT\215\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\ESC\DC2\EOT\210\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX\ESC\DC2\EOT\216\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ESC\SOH\DC2\EOT\210\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX\ESC\SOH\DC2\EOT\216\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\ESC\STX\DC2\EOT\210\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX\ESC\STX\DC2\EOT\216\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\FS\DC2\EOT\211\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX\FS\DC2\EOT\217\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\FS\SOH\DC2\EOT\211\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX\FS\SOH\DC2\EOT\217\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\FS\STX\DC2\EOT\211\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX\FS\STX\DC2\EOT\217\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\GS\DC2\EOT\212\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\GS\DC2\EOT\218\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\GS\SOH\DC2\EOT\212\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\GS\SOH\DC2\EOT\218\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\GS\STX\DC2\EOT\212\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\GS\STX\DC2\EOT\218\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\RS\DC2\EOT\213\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX\RS\DC2\EOT\219\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\RS\SOH\DC2\EOT\213\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX\RS\SOH\DC2\EOT\219\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\RS\STX\DC2\EOT\213\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX\RS\STX\DC2\EOT\219\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\US\DC2\EOT\214\ENQ\STX\SI\n\ + \\EOT\ENQ\ACK\STX\US\DC2\EOT\220\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\US\SOH\DC2\EOT\214\ENQ\STX\t\n\ + \\ENQ\ENQ\ACK\STX\US\SOH\DC2\EOT\220\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\US\STX\DC2\EOT\214\ENQ\f\SO\n\ + \\ENQ\ENQ\ACK\STX\US\STX\DC2\EOT\220\ENQ\f\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX \DC2\EOT\215\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX \DC2\EOT\221\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX \SOH\DC2\EOT\215\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX \SOH\DC2\EOT\221\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX \STX\DC2\EOT\215\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STX \STX\DC2\EOT\221\ENQ\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX!\DC2\EOT\216\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX!\DC2\EOT\222\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX!\SOH\DC2\EOT\216\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX!\SOH\DC2\EOT\222\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX!\STX\DC2\EOT\216\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STX!\STX\DC2\EOT\222\ENQ\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\"\DC2\EOT\217\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX\"\DC2\EOT\223\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\"\SOH\DC2\EOT\217\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX\"\SOH\DC2\EOT\223\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\"\STX\DC2\EOT\217\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STX\"\STX\DC2\EOT\223\ENQ\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX#\DC2\EOT\218\ENQ\STX\n\ + \\EOT\ENQ\ACK\STX#\DC2\EOT\224\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX#\SOH\DC2\EOT\218\ENQ\STX\EOT\n\ + \\ENQ\ENQ\ACK\STX#\SOH\DC2\EOT\224\ENQ\STX\EOT\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX#\STX\DC2\EOT\218\ENQ\a\t\n\ + \\ENQ\ENQ\ACK\STX#\STX\DC2\EOT\224\ENQ\a\t\n\ \\f\n\ - \\EOT\ENQ\ACK\STX$\DC2\EOT\219\ENQ\STX\SI\n\ + \\EOT\ENQ\ACK\STX$\DC2\EOT\225\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX$\SOH\DC2\EOT\219\ENQ\STX\t\n\ + \\ENQ\ENQ\ACK\STX$\SOH\DC2\EOT\225\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX$\STX\DC2\EOT\219\ENQ\f\SO\n\ + \\ENQ\ENQ\ACK\STX$\STX\DC2\EOT\225\ENQ\f\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX%\DC2\EOT\220\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX%\DC2\EOT\226\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX%\SOH\DC2\EOT\220\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX%\SOH\DC2\EOT\226\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX%\STX\DC2\EOT\220\ENQ\v\f\n\ + \\ENQ\ENQ\ACK\STX%\STX\DC2\EOT\226\ENQ\v\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX&\DC2\EOT\221\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX&\DC2\EOT\227\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX&\SOH\DC2\EOT\221\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX&\SOH\DC2\EOT\227\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX&\STX\DC2\EOT\221\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX&\STX\DC2\EOT\227\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX'\DC2\EOT\222\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX'\DC2\EOT\228\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX'\SOH\DC2\EOT\222\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX'\SOH\DC2\EOT\228\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX'\STX\DC2\EOT\222\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX'\STX\DC2\EOT\228\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX(\DC2\EOT\223\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX(\DC2\EOT\229\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX(\SOH\DC2\EOT\223\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX(\SOH\DC2\EOT\229\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX(\STX\DC2\EOT\223\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STX(\STX\DC2\EOT\229\ENQ\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX)\DC2\EOT\224\ENQ\STX\SI\n\ + \\EOT\ENQ\ACK\STX)\DC2\EOT\230\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX)\SOH\DC2\EOT\224\ENQ\STX\t\n\ + \\ENQ\ENQ\ACK\STX)\SOH\DC2\EOT\230\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX)\STX\DC2\EOT\224\ENQ\f\SO\n\ + \\ENQ\ENQ\ACK\STX)\STX\DC2\EOT\230\ENQ\f\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX*\DC2\EOT\225\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX*\DC2\EOT\231\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX*\SOH\DC2\EOT\225\ENQ\STX\a\n\ + \\ENQ\ENQ\ACK\STX*\SOH\DC2\EOT\231\ENQ\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX*\STX\DC2\EOT\225\ENQ\n\ + \\ENQ\ENQ\ACK\STX*\STX\DC2\EOT\231\ENQ\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX+\DC2\EOT\226\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX+\DC2\EOT\232\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX+\SOH\DC2\EOT\226\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX+\SOH\DC2\EOT\232\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX+\STX\DC2\EOT\226\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX+\STX\DC2\EOT\232\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX,\DC2\EOT\227\ENQ\STX\t\n\ + \\EOT\ENQ\ACK\STX,\DC2\EOT\233\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX,\SOH\DC2\EOT\227\ENQ\STX\ETX\n\ + \\ENQ\ENQ\ACK\STX,\SOH\DC2\EOT\233\ENQ\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX,\STX\DC2\EOT\227\ENQ\ACK\b\n\ + \\ENQ\ENQ\ACK\STX,\STX\DC2\EOT\233\ENQ\ACK\b\n\ \\f\n\ - \\EOT\ENQ\ACK\STX-\DC2\EOT\228\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX-\DC2\EOT\234\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX-\SOH\DC2\EOT\228\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX-\SOH\DC2\EOT\234\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX-\STX\DC2\EOT\228\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX-\STX\DC2\EOT\234\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX.\DC2\EOT\229\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX.\DC2\EOT\235\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX.\SOH\DC2\EOT\229\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX.\SOH\DC2\EOT\235\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX.\STX\DC2\EOT\229\ENQ\t\n\ + \\ENQ\ENQ\ACK\STX.\STX\DC2\EOT\235\ENQ\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX/\DC2\EOT\230\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX/\DC2\EOT\236\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX/\SOH\DC2\EOT\230\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX/\SOH\DC2\EOT\236\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX/\STX\DC2\EOT\230\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STX/\STX\DC2\EOT\236\ENQ\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX0\DC2\EOT\231\ENQ\STX\ETB\n\ + \\EOT\ENQ\ACK\STX0\DC2\EOT\237\ENQ\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX0\SOH\DC2\EOT\231\ENQ\STX\DC1\n\ + \\ENQ\ENQ\ACK\STX0\SOH\DC2\EOT\237\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX0\STX\DC2\EOT\231\ENQ\DC4\SYN\n\ + \\ENQ\ENQ\ACK\STX0\STX\DC2\EOT\237\ENQ\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\ACK\STX1\DC2\EOT\232\ENQ\STX\SI\n\ + \\EOT\ENQ\ACK\STX1\DC2\EOT\238\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX1\SOH\DC2\EOT\232\ENQ\STX\t\n\ + \\ENQ\ENQ\ACK\STX1\SOH\DC2\EOT\238\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX1\STX\DC2\EOT\232\ENQ\f\SO\n\ + \\ENQ\ENQ\ACK\STX1\STX\DC2\EOT\238\ENQ\f\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX2\DC2\EOT\233\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX2\DC2\EOT\239\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX2\SOH\DC2\EOT\233\ENQ\STX\a\n\ + \\ENQ\ENQ\ACK\STX2\SOH\DC2\EOT\239\ENQ\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX2\STX\DC2\EOT\233\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX2\STX\DC2\EOT\239\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX3\DC2\EOT\234\ENQ\STX\DC1\n\ + \\EOT\ENQ\ACK\STX3\DC2\EOT\240\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX3\SOH\DC2\EOT\234\ENQ\STX\n\ + \\ENQ\ENQ\ACK\STX3\SOH\DC2\EOT\240\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX3\STX\DC2\EOT\234\ENQ\r\DLE\n\ + \\ENQ\ENQ\ACK\STX3\STX\DC2\EOT\240\ENQ\r\DLE\n\ \\f\n\ - \\EOT\ENQ\ACK\STX4\DC2\EOT\235\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX4\DC2\EOT\241\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX4\SOH\DC2\EOT\235\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX4\SOH\DC2\EOT\241\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX4\STX\DC2\EOT\235\ENQ\v\f\n\ + \\ENQ\ENQ\ACK\STX4\STX\DC2\EOT\241\ENQ\v\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX5\DC2\EOT\236\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX5\DC2\EOT\242\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX5\SOH\DC2\EOT\236\ENQ\STX\a\n\ + \\ENQ\ENQ\ACK\STX5\SOH\DC2\EOT\242\ENQ\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX5\STX\DC2\EOT\236\ENQ\n\ + \\ENQ\ENQ\ACK\STX5\STX\DC2\EOT\242\ENQ\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX6\DC2\EOT\237\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX6\DC2\EOT\243\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX6\SOH\DC2\EOT\237\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX6\SOH\DC2\EOT\243\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX6\STX\DC2\EOT\237\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX6\STX\DC2\EOT\243\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX7\DC2\EOT\238\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STX7\DC2\EOT\244\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX7\SOH\DC2\EOT\238\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX7\SOH\DC2\EOT\244\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX7\STX\DC2\EOT\238\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STX7\STX\DC2\EOT\244\ENQ\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX8\DC2\EOT\239\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX8\DC2\EOT\245\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX8\SOH\DC2\EOT\239\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX8\SOH\DC2\EOT\245\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX8\STX\DC2\EOT\239\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX8\STX\DC2\EOT\245\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX9\DC2\EOT\240\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX9\DC2\EOT\246\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX9\SOH\DC2\EOT\240\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX9\SOH\DC2\EOT\246\ENQ\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX9\STX\DC2\EOT\240\ENQ\t\f\n\ + \\ENQ\ENQ\ACK\STX9\STX\DC2\EOT\246\ENQ\t\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX:\DC2\EOT\241\ENQ\STX\DLE\n\ + \\EOT\ENQ\ACK\STX:\DC2\EOT\247\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX:\SOH\DC2\EOT\241\ENQ\STX\n\ + \\ENQ\ENQ\ACK\STX:\SOH\DC2\EOT\247\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX:\STX\DC2\EOT\241\ENQ\r\SI\n\ + \\ENQ\ENQ\ACK\STX:\STX\DC2\EOT\247\ENQ\r\SI\n\ \\f\n\ - \\EOT\ENQ\ACK\STX;\DC2\EOT\242\ENQ\STX\DLE\n\ + \\EOT\ENQ\ACK\STX;\DC2\EOT\248\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX;\SOH\DC2\EOT\242\ENQ\STX\n\ + \\ENQ\ENQ\ACK\STX;\SOH\DC2\EOT\248\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX;\STX\DC2\EOT\242\ENQ\r\SI\n\ + \\ENQ\ENQ\ACK\STX;\STX\DC2\EOT\248\ENQ\r\SI\n\ \\f\n\ - \\EOT\ENQ\ACK\STX<\DC2\EOT\243\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STX<\DC2\EOT\249\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX<\SOH\DC2\EOT\243\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX<\SOH\DC2\EOT\249\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX<\STX\DC2\EOT\243\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STX<\STX\DC2\EOT\249\ENQ\v\r\n\ \(\n\ - \\EOT\ENQ\ACK\STX=\DC2\EOT\244\ENQ\STX\SI\"\SUB https://nickel-lang.org/\n\ + \\EOT\ENQ\ACK\STX=\DC2\EOT\250\ENQ\STX\SI\"\SUB https://nickel-lang.org/\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX=\SOH\DC2\EOT\244\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STX=\SOH\DC2\EOT\250\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX=\STX\DC2\EOT\244\ENQ\v\SO\n\ + \\ENQ\ENQ\ACK\STX=\STX\DC2\EOT\250\ENQ\v\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX>\DC2\EOT\245\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STX>\DC2\EOT\251\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX>\SOH\DC2\EOT\245\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX>\SOH\DC2\EOT\251\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX>\STX\DC2\EOT\245\ENQ\b\n\ + \\ENQ\ENQ\ACK\STX>\STX\DC2\EOT\251\ENQ\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STX?\DC2\EOT\246\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STX?\DC2\EOT\252\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX?\SOH\DC2\EOT\246\ENQ\STX\a\n\ + \\ENQ\ENQ\ACK\STX?\SOH\DC2\EOT\252\ENQ\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX?\STX\DC2\EOT\246\ENQ\n\ + \\ENQ\ENQ\ACK\STX?\STX\DC2\EOT\252\ENQ\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STX@\DC2\EOT\247\ENQ\STX\DC3\n\ + \\EOT\ENQ\ACK\STX@\DC2\EOT\253\ENQ\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX@\SOH\DC2\EOT\247\ENQ\STX\r\n\ + \\ENQ\ENQ\ACK\STX@\SOH\DC2\EOT\253\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX@\STX\DC2\EOT\247\ENQ\DLE\DC2\n\ + \\ENQ\ENQ\ACK\STX@\STX\DC2\EOT\253\ENQ\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\ACK\STXA\DC2\EOT\248\ENQ\STX\NAK\n\ + \\EOT\ENQ\ACK\STXA\DC2\EOT\254\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXA\SOH\DC2\EOT\248\ENQ\STX\SI\n\ + \\ENQ\ENQ\ACK\STXA\SOH\DC2\EOT\254\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXA\STX\DC2\EOT\248\ENQ\DC2\DC4\n\ + \\ENQ\ENQ\ACK\STXA\STX\DC2\EOT\254\ENQ\DC2\DC4\n\ \\f\n\ - \\EOT\ENQ\ACK\STXB\DC2\EOT\249\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STXB\DC2\EOT\255\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXB\SOH\DC2\EOT\249\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STXB\SOH\DC2\EOT\255\ENQ\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXB\STX\DC2\EOT\249\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STXB\STX\DC2\EOT\255\ENQ\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STXC\DC2\EOT\250\ENQ\STX\v\n\ + \\EOT\ENQ\ACK\STXC\DC2\EOT\128\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXC\SOH\DC2\EOT\250\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXC\SOH\DC2\EOT\128\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXC\STX\DC2\EOT\250\ENQ\b\n\ + \\ENQ\ENQ\ACK\STXC\STX\DC2\EOT\128\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXD\DC2\EOT\251\ENQ\STX\r\n\ + \\EOT\ENQ\ACK\STXD\DC2\EOT\129\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXD\SOH\DC2\EOT\251\ENQ\STX\a\n\ + \\ENQ\ENQ\ACK\STXD\SOH\DC2\EOT\129\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXD\STX\DC2\EOT\251\ENQ\n\ + \\ENQ\ENQ\ACK\STXD\STX\DC2\EOT\129\ACK\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STXE\DC2\EOT\252\ENQ\STX\f\n\ + \\EOT\ENQ\ACK\STXE\DC2\EOT\130\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXE\SOH\DC2\EOT\252\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXE\SOH\DC2\EOT\130\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXE\STX\DC2\EOT\252\ENQ\t\v\n\ + \\ENQ\ENQ\ACK\STXE\STX\DC2\EOT\130\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXF\DC2\EOT\253\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STXF\DC2\EOT\131\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXF\SOH\DC2\EOT\253\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STXF\SOH\DC2\EOT\131\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXF\STX\DC2\EOT\253\ENQ\SI\DC1\n\ + \\ENQ\ENQ\ACK\STXF\STX\DC2\EOT\131\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STXG\DC2\EOT\254\ENQ\STX\SO\n\ + \\EOT\ENQ\ACK\STXG\DC2\EOT\132\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXG\SOH\DC2\EOT\254\ENQ\STX\b\n\ + \\ENQ\ENQ\ACK\STXG\SOH\DC2\EOT\132\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXG\STX\DC2\EOT\254\ENQ\v\r\n\ + \\ENQ\ENQ\ACK\STXG\STX\DC2\EOT\132\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STXH\DC2\EOT\255\ENQ\STX\DC1\n\ + \\EOT\ENQ\ACK\STXH\DC2\EOT\133\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXH\SOH\DC2\EOT\255\ENQ\STX\n\ + \\ENQ\ENQ\ACK\STXH\SOH\DC2\EOT\133\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXH\STX\DC2\EOT\255\ENQ\r\DLE\n\ + \\ENQ\ENQ\ACK\STXH\STX\DC2\EOT\133\ACK\r\DLE\n\ \\f\n\ - \\EOT\ENQ\ACK\STXI\DC2\EOT\128\ACK\STX\SO\n\ + \\EOT\ENQ\ACK\STXI\DC2\EOT\134\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXI\SOH\DC2\EOT\128\ACK\STX\b\n\ + \\ENQ\ENQ\ACK\STXI\SOH\DC2\EOT\134\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXI\STX\DC2\EOT\128\ACK\v\r\n\ + \\ENQ\ENQ\ACK\STXI\STX\DC2\EOT\134\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STXJ\DC2\EOT\129\ACK\STX\t\n\ + \\EOT\ENQ\ACK\STXJ\DC2\EOT\135\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXJ\SOH\DC2\EOT\129\ACK\STX\ETX\n\ + \\ENQ\ENQ\ACK\STXJ\SOH\DC2\EOT\135\ACK\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXJ\STX\DC2\EOT\129\ACK\ACK\b\n\ + \\ENQ\ENQ\ACK\STXJ\STX\DC2\EOT\135\ACK\ACK\b\n\ \\f\n\ - \\EOT\ENQ\ACK\STXK\DC2\EOT\130\ACK\STX\SO\n\ + \\EOT\ENQ\ACK\STXK\DC2\EOT\136\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXK\SOH\DC2\EOT\130\ACK\STX\b\n\ + \\ENQ\ENQ\ACK\STXK\SOH\DC2\EOT\136\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXK\STX\DC2\EOT\130\ACK\v\r\n\ + \\ENQ\ENQ\ACK\STXK\STX\DC2\EOT\136\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STXL\DC2\EOT\131\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXL\DC2\EOT\137\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXL\SOH\DC2\EOT\131\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXL\SOH\DC2\EOT\137\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXL\STX\DC2\EOT\131\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXL\STX\DC2\EOT\137\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXM\DC2\EOT\132\ACK\STX\r\n\ + \\EOT\ENQ\ACK\STXM\DC2\EOT\138\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXM\SOH\DC2\EOT\132\ACK\STX\a\n\ + \\ENQ\ENQ\ACK\STXM\SOH\DC2\EOT\138\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXM\STX\DC2\EOT\132\ACK\n\ + \\ENQ\ENQ\ACK\STXM\STX\DC2\EOT\138\ACK\n\ \\f\n\ \2\n\ - \\EOT\ENQ\ACK\STXN\DC2\EOT\133\ACK\STX\SO\"$ Internal language for testing SCIP\n\ + \\EOT\ENQ\ACK\STXN\DC2\EOT\139\ACK\STX\SO\"$ Internal language for testing SCIP\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXN\SOH\DC2\EOT\133\ACK\STX\a\n\ + \\ENQ\ENQ\ACK\STXN\SOH\DC2\EOT\139\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXN\STX\DC2\EOT\133\ACK\n\ + \\ENQ\ENQ\ACK\STXN\STX\DC2\EOT\139\ACK\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STXO\DC2\EOT\134\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXO\DC2\EOT\140\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXO\SOH\DC2\EOT\134\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXO\SOH\DC2\EOT\140\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXO\STX\DC2\EOT\134\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXO\STX\DC2\EOT\140\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXP\DC2\EOT\135\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXP\DC2\EOT\141\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXP\SOH\DC2\EOT\135\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXP\SOH\DC2\EOT\141\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXP\STX\DC2\EOT\135\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXP\STX\DC2\EOT\141\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXQ\DC2\EOT\136\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXQ\DC2\EOT\142\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXQ\SOH\DC2\EOT\136\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXQ\SOH\DC2\EOT\142\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXQ\STX\DC2\EOT\136\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXQ\STX\DC2\EOT\142\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXR\DC2\EOT\137\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXR\DC2\EOT\143\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXR\SOH\DC2\EOT\137\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXR\SOH\DC2\EOT\143\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXR\STX\DC2\EOT\137\ACK\b\n\ + \\ENQ\ENQ\ACK\STXR\STX\DC2\EOT\143\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXS\DC2\EOT\138\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXS\DC2\EOT\144\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXS\SOH\DC2\EOT\138\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXS\SOH\DC2\EOT\144\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXS\STX\DC2\EOT\138\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXS\STX\DC2\EOT\144\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXT\DC2\EOT\139\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXT\DC2\EOT\145\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXT\SOH\DC2\EOT\139\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXT\SOH\DC2\EOT\145\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXT\STX\DC2\EOT\139\ACK\b\n\ + \\ENQ\ENQ\ACK\STXT\STX\DC2\EOT\145\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXU\DC2\EOT\140\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXU\DC2\EOT\146\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXU\SOH\DC2\EOT\140\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXU\SOH\DC2\EOT\146\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXU\STX\DC2\EOT\140\ACK\b\n\ + \\ENQ\ENQ\ACK\STXU\STX\DC2\EOT\146\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXV\DC2\EOT\141\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXV\DC2\EOT\147\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXV\SOH\DC2\EOT\141\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXV\SOH\DC2\EOT\147\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXV\STX\DC2\EOT\141\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXV\STX\DC2\EOT\147\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXW\DC2\EOT\142\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXW\DC2\EOT\148\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXW\SOH\DC2\EOT\142\ACK\STX\a\n\ + \\ENQ\ENQ\ACK\STXW\SOH\DC2\EOT\148\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXW\STX\DC2\EOT\142\ACK\n\ + \\ENQ\ENQ\ACK\STXW\STX\DC2\EOT\148\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXX\DC2\EOT\143\ACK\STX\SO\n\ + \\EOT\ENQ\ACK\STXX\DC2\EOT\149\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXX\SOH\DC2\EOT\143\ACK\STX\b\n\ + \\ENQ\ENQ\ACK\STXX\SOH\DC2\EOT\149\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXX\STX\DC2\EOT\143\ACK\v\r\n\ + \\ENQ\ENQ\ACK\STXX\STX\DC2\EOT\149\ACK\v\r\n\ \\DC4\n\ - \\EOT\ENQ\ACK\STXY\DC2\EOT\144\ACK\STX\DC3\"\ACK Bash\n\ + \\EOT\ENQ\ACK\STXY\DC2\EOT\150\ACK\STX\DC3\"\ACK Bash\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXY\SOH\DC2\EOT\144\ACK\STX\r\n\ + \\ENQ\ENQ\ACK\STXY\SOH\DC2\EOT\150\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXY\STX\DC2\EOT\144\ACK\DLE\DC2\n\ + \\ENQ\ENQ\ACK\STXY\STX\DC2\EOT\150\ACK\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\ACK\STXZ\DC2\EOT\145\ACK\STX\SI\n\ + \\EOT\ENQ\ACK\STXZ\DC2\EOT\151\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXZ\SOH\DC2\EOT\145\ACK\STX\t\n\ + \\ENQ\ENQ\ACK\STXZ\SOH\DC2\EOT\151\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXZ\STX\DC2\EOT\145\ACK\f\SO\n\ + \\ENQ\ENQ\ACK\STXZ\STX\DC2\EOT\151\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX[\DC2\EOT\146\ACK\STX\SO\n\ + \\EOT\ENQ\ACK\STX[\DC2\EOT\152\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX[\SOH\DC2\EOT\146\ACK\STX\a\n\ + \\ENQ\ENQ\ACK\STX[\SOH\DC2\EOT\152\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX[\STX\DC2\EOT\146\ACK\n\ + \\ENQ\ENQ\ACK\STX[\STX\DC2\EOT\152\ACK\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\\\DC2\EOT\147\ACK\STX\DLE\n\ + \\EOT\ENQ\ACK\STX\\\DC2\EOT\153\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\\\SOH\DC2\EOT\147\ACK\STX\n\ + \\ENQ\ENQ\ACK\STX\\\SOH\DC2\EOT\153\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\\\STX\DC2\EOT\147\ACK\r\SI\n\ + \\ENQ\ENQ\ACK\STX\\\STX\DC2\EOT\153\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\ACK\STX]\DC2\EOT\148\ACK\STX\SI\n\ + \\EOT\ENQ\ACK\STX]\DC2\EOT\154\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX]\SOH\DC2\EOT\148\ACK\STX\b\n\ + \\ENQ\ENQ\ACK\STX]\SOH\DC2\EOT\154\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX]\STX\DC2\EOT\148\ACK\v\SO\n\ + \\ENQ\ENQ\ACK\STX]\STX\DC2\EOT\154\ACK\v\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STX^\DC2\EOT\149\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STX^\DC2\EOT\155\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX^\SOH\DC2\EOT\149\ACK\STX\a\n\ + \\ENQ\ENQ\ACK\STX^\SOH\DC2\EOT\155\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX^\STX\DC2\EOT\149\ACK\n\ + \\ENQ\ENQ\ACK\STX^\STX\DC2\EOT\155\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX_\DC2\EOT\150\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STX_\DC2\EOT\156\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX_\SOH\DC2\EOT\150\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STX_\SOH\DC2\EOT\156\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX_\STX\DC2\EOT\150\ACK\b\v\n\ + \\ENQ\ENQ\ACK\STX_\STX\DC2\EOT\156\ACK\b\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STX`\DC2\EOT\151\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STX`\DC2\EOT\157\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX`\SOH\DC2\EOT\151\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STX`\SOH\DC2\EOT\157\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX`\STX\DC2\EOT\151\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STX`\STX\DC2\EOT\157\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\ACK\STXa\DC2\EOT\152\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXa\DC2\EOT\158\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXa\SOH\DC2\EOT\152\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXa\SOH\DC2\EOT\158\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXa\STX\DC2\EOT\152\ACK\b\n\ + \\ENQ\ENQ\ACK\STXa\STX\DC2\EOT\158\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXb\DC2\EOT\153\ACK\STX\SI\n\ + \\EOT\ENQ\ACK\STXb\DC2\EOT\159\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXb\SOH\DC2\EOT\153\ACK\STX\b\n\ + \\ENQ\ENQ\ACK\STXb\SOH\DC2\EOT\159\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXb\STX\DC2\EOT\153\ACK\v\SO\n\ + \\ENQ\ENQ\ACK\STXb\STX\DC2\EOT\159\ACK\v\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STXc\DC2\EOT\154\ACK\STX\DC2\n\ + \\EOT\ENQ\ACK\STXc\DC2\EOT\160\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXc\SOH\DC2\EOT\154\ACK\STX\f\n\ + \\ENQ\ENQ\ACK\STXc\SOH\DC2\EOT\160\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXc\STX\DC2\EOT\154\ACK\SI\DC1\n\ + \\ENQ\ENQ\ACK\STXc\STX\DC2\EOT\160\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STXd\DC2\EOT\155\ACK\STX\ETB\n\ + \\EOT\ENQ\ACK\STXd\DC2\EOT\161\ACK\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXd\SOH\DC2\EOT\155\ACK\STX\DC1\n\ + \\ENQ\ENQ\ACK\STXd\SOH\DC2\EOT\161\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXd\STX\DC2\EOT\155\ACK\DC4\SYN\n\ + \\ENQ\ENQ\ACK\STXd\STX\DC2\EOT\161\ACK\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\ACK\STXe\DC2\EOT\156\ACK\STX\DLE\n\ + \\EOT\ENQ\ACK\STXe\DC2\EOT\162\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXe\SOH\DC2\EOT\156\ACK\STX\t\n\ + \\ENQ\ENQ\ACK\STXe\SOH\DC2\EOT\162\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXe\STX\DC2\EOT\156\ACK\f\SI\n\ + \\ENQ\ENQ\ACK\STXe\STX\DC2\EOT\162\ACK\f\SI\n\ \\f\n\ - \\EOT\ENQ\ACK\STXf\DC2\EOT\157\ACK\STX\r\n\ + \\EOT\ENQ\ACK\STXf\DC2\EOT\163\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXf\SOH\DC2\EOT\157\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXf\SOH\DC2\EOT\163\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXf\STX\DC2\EOT\157\ACK\t\f\n\ + \\ENQ\ENQ\ACK\STXf\STX\DC2\EOT\163\ACK\t\f\n\ \\f\n\ - \\EOT\ENQ\ACK\STXg\DC2\EOT\158\ACK\STX\DC3\n\ + \\EOT\ENQ\ACK\STXg\DC2\EOT\164\ACK\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXg\SOH\DC2\EOT\158\ACK\STX\r\n\ + \\ENQ\ENQ\ACK\STXg\SOH\DC2\EOT\164\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXg\STX\DC2\EOT\158\ACK\DLE\DC2\n\ + \\ENQ\ENQ\ACK\STXg\STX\DC2\EOT\164\ACK\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\ACK\STXh\DC2\EOT\159\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXh\DC2\EOT\165\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXh\SOH\DC2\EOT\159\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXh\SOH\DC2\EOT\165\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXh\STX\DC2\EOT\159\ACK\b\n\ + \\ENQ\ENQ\ACK\STXh\STX\DC2\EOT\165\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXi\DC2\EOT\160\ACK\STX\SI\n\ + \\EOT\ENQ\ACK\STXi\DC2\EOT\166\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXi\SOH\DC2\EOT\160\ACK\STX\t\n\ + \\ENQ\ENQ\ACK\STXi\SOH\DC2\EOT\166\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXi\STX\DC2\EOT\160\ACK\f\SO\n\ + \\ENQ\ENQ\ACK\STXi\STX\DC2\EOT\166\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\ACK\STXj\DC2\EOT\161\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXj\DC2\EOT\167\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXj\SOH\DC2\EOT\161\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXj\SOH\DC2\EOT\167\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXj\STX\DC2\EOT\161\ACK\b\n\ + \\ENQ\ENQ\ACK\STXj\STX\DC2\EOT\167\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXk\DC2\EOT\162\ACK\STX\v\n\ + \\EOT\ENQ\ACK\STXk\DC2\EOT\168\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXk\SOH\DC2\EOT\162\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXk\SOH\DC2\EOT\168\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXk\STX\DC2\EOT\162\ACK\b\n\ + \\ENQ\ENQ\ACK\STXk\STX\DC2\EOT\168\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\ACK\STXl\DC2\EOT\163\ACK\STX\f\n\ + \\EOT\ENQ\ACK\STXl\DC2\EOT\169\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXl\SOH\DC2\EOT\163\ACK\STX\ACK\n\ + \\ENQ\ENQ\ACK\STXl\SOH\DC2\EOT\169\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXl\STX\DC2\EOT\163\ACK\t\v\n\ + \\ENQ\ENQ\ACK\STXl\STX\DC2\EOT\169\ACK\t\v\n\ \\147\ETX\n\ - \\EOT\ENQ\ACK\STXm\DC2\EOT\164\ACK\STX\v\"\132\ETX NextLanguage = 111;\n\ + \\EOT\ENQ\ACK\STXm\DC2\EOT\170\ACK\STX\v\"\132\ETX NextLanguage = 111;\n\ \ Steps add a new language:\n\ \ 1. Copy-paste the \"NextLanguage = N\" line above\n\ \ 2. Increment \"NextLanguage = N\" to \"NextLanguage = N+1\"\n\ @@ -8989,7 +9009,7 @@ packedFileDescriptor \ 5. (optional) Add a brief comment behind the language if the name is not self-explanatory\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXm\SOH\DC2\EOT\164\ACK\STX\ENQ\n\ + \\ENQ\ENQ\ACK\STXm\SOH\DC2\EOT\170\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\ACK\STXm\STX\DC2\EOT\164\ACK\b\n\ + \\ENQ\ENQ\ACK\STXm\STX\DC2\EOT\170\ACK\b\n\ \b\ACKproto3" \ No newline at end of file diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index b234e351..5c1bdd2c 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -2991,6 +2991,8 @@ pub enum SymbolRole { Generated = 16, // @@protoc_insertion_point(enum_value:scip.SymbolRole.Test) Test = 32, + // @@protoc_insertion_point(enum_value:scip.SymbolRole.ForwardDefinition) + ForwardDefinition = 64, } impl ::protobuf::Enum for SymbolRole { @@ -3009,6 +3011,7 @@ impl ::protobuf::Enum for SymbolRole { 8 => ::std::option::Option::Some(SymbolRole::ReadAccess), 16 => ::std::option::Option::Some(SymbolRole::Generated), 32 => ::std::option::Option::Some(SymbolRole::Test), + 64 => ::std::option::Option::Some(SymbolRole::ForwardDefinition), _ => ::std::option::Option::None } } @@ -3021,6 +3024,7 @@ impl ::protobuf::Enum for SymbolRole { SymbolRole::ReadAccess, SymbolRole::Generated, SymbolRole::Test, + SymbolRole::ForwardDefinition, ]; } @@ -3039,6 +3043,7 @@ impl ::protobuf::EnumFull for SymbolRole { SymbolRole::ReadAccess => 4, SymbolRole::Generated => 5, SymbolRole::Test => 6, + SymbolRole::ForwardDefinition => 7, }; Self::enum_descriptor().value_by_index(index) } @@ -4164,143 +4169,144 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ource\x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04ta\ gs*1\n\x0fProtocolVersion\x12\x1e\n\x1aUnspecifiedProtocolVersion\x10\0*\ @\n\x0cTextEncoding\x12\x1b\n\x17UnspecifiedTextEncoding\x10\0\x12\x08\n\ - \x04UTF8\x10\x01\x12\t\n\x05UTF16\x10\x02*}\n\nSymbolRole\x12\x19\n\x15U\ - nspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Impo\ - rt\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\ - \x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20*\xea\x06\n\nSy\ - ntaxKind\x12\x19\n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\ - \x10\x01\x12\x18\n\x14PunctuationDelimiter\x10\x02\x12\x16\n\x12Punctuat\ - ionBracket\x10\x03\x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierK\ - eyword\x10\x04\x1a\x02\x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\ - \x12\x0e\n\nIdentifier\x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\ - \x12\x12\n\x0eIdentifierNull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\ - \t\x12\x1b\n\x17IdentifierMutableGlobal\x10\n\x12\x17\n\x13IdentifierPar\ - ameter\x10\x0b\x12\x13\n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12Identif\ - ierShadowed\x10\r\x12\x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10\ - IdentifierModule\x10\x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\ - \x10\x0f\x12\x20\n\x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0f\ - IdentifierMacro\x10\x11\x12\x1d\n\x19IdentifierMacroDefinition\x10\x12\ - \x12\x12\n\x0eIdentifierType\x10\x13\x12\x19\n\x15IdentifierBuiltinType\ - \x10\x14\x12\x17\n\x13IdentifierAttribute\x10\x15\x12\x0f\n\x0bRegexEsca\ - pe\x10\x16\x12\x11\n\rRegexRepeated\x10\x17\x12\x11\n\rRegexWildcard\x10\ - \x18\x12\x12\n\x0eRegexDelimiter\x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\ - \x11\n\rStringLiteral\x10\x1b\x12\x17\n\x13StringLiteralEscape\x10\x1c\ - \x12\x18\n\x14StringLiteralSpecial\x10\x1d\x12\x14\n\x10StringLiteralKey\ - \x10\x1e\x12\x14\n\x10CharacterLiteral\x10\x1f\x12\x12\n\x0eNumericLiter\ - al\x10\x20\x12\x12\n\x0eBooleanLiteral\x10!\x12\x07\n\x03Tag\x10\"\x12\ - \x10\n\x0cTagAttribute\x10#\x12\x10\n\x0cTagDelimiter\x10$\x1a\x02\x10\ - \x01*V\n\x08Severity\x12\x17\n\x13UnspecifiedSeverity\x10\0\x12\t\n\x05E\ - rror\x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x0f\n\x0bInformation\x10\ - \x03\x12\x08\n\x04Hint\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18Unspecifi\ - edDiagnosticTag\x10\0\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\nDeprec\ - ated\x10\x02*\x9b\n\n\x08Language\x12\x17\n\x13UnspecifiedLanguage\x10\0\ - \x12\x08\n\x04ABAP\x10<\x12\x08\n\x04Apex\x10`\x12\x07\n\x03APL\x101\x12\ - \x07\n\x03Ada\x10'\x12\x08\n\x04Agda\x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\ - \x0c\n\x08Assembly\x10:\x12\x07\n\x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\ - \n\n\x06BibTeX\x10Q\x12\x05\n\x01C\x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\ - \x03CPP\x10#\x12\x07\n\x03CSS\x10\x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\ - \n\x07Clojure\x10\x08\x12\x10\n\x0cCoffeescript\x10\x15\x12\x0e\n\nCommo\ - nLisp\x10\t\x12\x07\n\x03Coq\x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Da\ - rt\x10\x03\x12\n\n\x06Delphi\x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDock\ - erfile\x10P\x12\n\n\x06Dyalog\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06\ - Erlang\x10\x12\x12\n\n\x06FSharp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\ - \x04Flow\x10\x18\x12\x0b\n\x07Fortran\x108\x12\x0e\n\nGit_Commit\x10[\ - \x12\x0e\n\nGit_Config\x10Y\x12\x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\ - \x10!\x12\x0b\n\x07GraphQL\x10b\x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04H\ - TML\x10\x1e\x12\x08\n\x04Hack\x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\ - \n\x07Haskell\x10,\x12\t\n\x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\ - \x01J\x103\x12\x08\n\x04JSON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJ\ - avaScript\x10\x16\x12\x13\n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\ - \x10L\x12\t\n\x05Julia\x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\ - \x10\x04\x12\t\n\x05LaTeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\ - \x10\x1b\x12\x07\n\x03Lua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Ma\ - kefile\x10O\x12\x0c\n\x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\ - \x06Nickel\x10n\x12\x07\n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\ - \x0bObjective_C\x10$\x12\x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10\ - c\x12\x07\n\x03PHP\x10\x13\x12\t\n\x05PLSQL\x10F\x12\x08\n\x04Perl\x10\r\ - \x12\x0e\n\nPowerShell\x10C\x12\n\n\x06Prolog\x10G\x12\x0c\n\x08Protobuf\ - \x10d\x12\n\n\x06Python\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\ - \x10\x0b\x12\x08\n\x04Raku\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repr\ - o\x10f\x12\x08\n\x04ReST\x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rus\ - t\x10(\x12\x07\n\x03SAS\x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\ - \x10+\x12\x07\n\x03SQL\x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\ - \x10\x05\x12\n\n\x06Scheme\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\ - \x07Skylark\x10N\x12\t\n\x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\ - \n\x06Svelte\x10j\x12\t\n\x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\ - \n\x04TOML\x10I\x12\x07\n\x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\n\ - TypeScript\x10\x17\x12\x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilo\ - g\x10h\x12\x08\n\x04VHDL\x10i\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\ - \x03Vue\x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\ - \x07\n\x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-gi\ - thub.com/sourcegraph/scip/bindings/go/scip/J\xe1\xa1\x02\n\x07\x12\x05\n\ - \0\xac\x06\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20ind\ - ex\x20contains\x20one\x20or\x20more\x20pieces\x20of\x20information\x20ab\ - out\x20a\x20given\x20piece\x20of\n\x20source\x20code\x20or\x20software\ - \x20artifact.\x20Complementary\x20information\x20can\x20be\x20merged\n\ - \x20together\x20from\x20multiple\x20sources\x20to\x20provide\x20a\x20uni\ - fied\x20code\x20intelligence\n\x20experience.\n\n\x20Programs\x20produci\ - ng\x20a\x20file\x20of\x20this\x20format\x20is\x20an\x20\"indexer\"\x20an\ - d\x20may\x20operate\n\x20somewhere\x20on\x20the\x20spectrum\x20between\ - \x20precision,\x20such\x20as\x20indexes\x20produced\x20by\n\x20compiler-\ - backed\x20indexers,\x20and\x20heurstics,\x20such\x20as\x20indexes\x20pro\ - duced\x20by\x20local\n\x20syntax-directed\x20analysis\x20for\x20scope\ - \x20rules.\n\n\x08\n\x01\x02\x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\ - \0D\n\t\n\x02\x08\x0b\x12\x03\x0e\0D\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0\ - #\x01\x1a\xc3\x03\x20Index\x20represents\x20a\x20complete\x20SCIP\x20ind\ - ex\x20for\x20a\x20workspace\x20this\x20is\x20rooted\x20at\x20a\n\x20sing\ - le\x20directory.\x20An\x20Index\x20message\x20payload\x20can\x20have\x20\ - a\x20large\x20memory\x20footprint\n\x20and\x20it's\x20therefore\x20recom\ - mended\x20to\x20emit\x20and\x20consume\x20an\x20Index\x20payload\x20one\ - \x20field\n\x20value\x20at\x20a\x20time.\x20To\x20permit\x20streaming\ - \x20consumption\x20of\x20an\x20Index\x20payload,\x20the\n\x20`metadata`\ - \x20field\x20must\x20appear\x20at\x20the\x20start\x20of\x20the\x20stream\ - \x20and\x20must\x20only\x20appear\n\x20once\x20in\x20the\x20stream.\x20O\ - ther\x20field\x20values\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\ - \x03\x04\0\x01\x12\x03\x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\ - \x18\x1a\x1c\x20Metadata\x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\ - \x02\0\x06\x12\x03\x18\x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\ - \x13\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\ - \x01\x12\x03\x1a\x02\"\x1a&\x20Documents\x20that\x20belong\x20to\x20this\ - \x20index.\n\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\ - \x04\0\x02\x01\x06\x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\ - \x03\x1a\x14\x1d\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xf6\ - \x03\n\x04\x04\0\x02\x02\x12\x03\x20\x022\x1a\xe9\x02\x20(optional)\x20S\ - ymbols\x20that\x20are\x20referenced\x20from\x20this\x20index\x20but\x20a\ - re\x20defined\x20in\n\x20an\x20external\x20package\x20(a\x20separate\x20\ - `Index`\x20message).\x20Leave\x20this\x20field\x20empty\n\x20if\x20you\ - \x20assume\x20the\x20external\x20package\x20will\x20get\x20indexed\x20se\ - parately.\x20If\x20the\n\x20external\x20package\x20won't\x20get\x20index\ - ed\x20for\x20some\x20reason\x20then\x20you\x20can\x20use\x20this\n\x20fi\ - eld\x20to\x20provide\x20hover\x20documentation\x20for\x20those\x20extern\ - al\x20symbols.\n\"}\x20IMPORTANT:\x20When\x20adding\x20a\x20new\x20field\ - \x20to\x20`Index`\x20here,\x20add\x20a\x20matching\n\x20function\x20in\ - \x20`IndexVisitor`\x20and\x20update\x20`ParseStreaming`.\n\n\x0c\n\x05\ - \x04\0\x02\x02\x04\x12\x03\x20\x02\n\n\x0c\n\x05\x04\0\x02\x02\x06\x12\ - \x03\x20\x0b\x1c\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x20\x1d-\n\x0c\n\ - \x05\x04\0\x02\x02\x03\x12\x03\x2001\n\n\n\x02\x04\x01\x12\x04%\01\x01\n\ - \n\n\x03\x04\x01\x01\x12\x03%\x08\x10\nN\n\x04\x04\x01\x02\0\x12\x03'\ - \x02\x1e\x1aA\x20Which\x20version\x20of\x20this\x20protocol\x20was\x20us\ - ed\x20to\x20generate\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\x06\ - \x12\x03'\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03'\x12\x19\n\x0c\n\ - \x05\x04\x01\x02\0\x03\x12\x03'\x1c\x1d\nC\n\x04\x04\x01\x02\x01\x12\x03\ - )\x02\x19\x1a6\x20Information\x20about\x20the\x20tool\x20that\x20produce\ - d\x20this\x20index.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03)\x02\n\n\ - \x0c\n\x05\x04\x01\x02\x01\x01\x12\x03)\x0b\x14\n\x0c\n\x05\x04\x01\x02\ - \x01\x03\x12\x03)\x17\x18\n\xa2\x01\n\x04\x04\x01\x02\x02\x12\x03-\x02\ - \x1a\x1a\x94\x01\x20URI-encoded\x20absolute\x20path\x20to\x20the\x20root\ - \x20directory\x20of\x20this\x20index.\x20All\n\x20documents\x20in\x20thi\ - s\x20index\x20must\x20appear\x20in\x20a\x20subdirectory\x20of\x20this\ - \x20root\n\x20directory.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03-\x02\ - \x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03-\t\x15\n\x0c\n\x05\x04\x01\ - \x02\x02\x03\x12\x03-\x18\x19\nl\n\x04\x04\x01\x02\x03\x12\x030\x02*\x1a\ - _\x20Text\x20encoding\x20of\x20the\x20source\x20files\x20on\x20disk\x20t\ - hat\x20are\x20referenced\x20from\n\x20`Document.relative_path`.\n\n\x0c\ - \n\x05\x04\x01\x02\x03\x06\x12\x030\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\ - \x01\x12\x030\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x030()\n\n\n\x02\ - \x05\0\x12\x043\05\x01\n\n\n\x03\x05\0\x01\x12\x033\x05\x14\n\x0b\n\x04\ - \x05\0\x02\0\x12\x034\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x034\x02\x1c\ - \n\x0c\n\x05\x05\0\x02\0\x02\x12\x034\x1f\x20\n\n\n\x02\x05\x01\x12\x047\ - \0;\x01\n\n\n\x03\x05\x01\x01\x12\x037\x05\x11\n\x0b\n\x04\x05\x01\x02\0\ + \x04UTF8\x10\x01\x12\t\n\x05UTF16\x10\x02*\x94\x01\n\nSymbolRole\x12\x19\ + \n\x15UnspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\ + \x06Import\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAcces\ + s\x10\x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20\x12\x15\n\ + \x11ForwardDefinition\x10@*\xea\x06\n\nSyntaxKind\x12\x19\n\x15Unspecifi\ + edSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\x14Punctuation\ + Delimiter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\x12\x0b\n\x07K\ + eyword\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\x02\x08\x01\ + \x12\x16\n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifier\x10\x06\ + \x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifierNull\x10\ + \x08\x12\x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17IdentifierMutabl\ + eGlobal\x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\n\x0fIden\ + tifierLocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\x17\n\x13I\ + dentifierNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\x0e\x1a\x02\ + \x08\x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\x1cIdentifier\ + FunctionDefinition\x10\x10\x12\x13\n\x0fIdentifierMacro\x10\x11\x12\x1d\ + \n\x19IdentifierMacroDefinition\x10\x12\x12\x12\n\x0eIdentifierType\x10\ + \x13\x12\x19\n\x15IdentifierBuiltinType\x10\x14\x12\x17\n\x13IdentifierA\ + ttribute\x10\x15\x12\x0f\n\x0bRegexEscape\x10\x16\x12\x11\n\rRegexRepeat\ + ed\x10\x17\x12\x11\n\rRegexWildcard\x10\x18\x12\x12\n\x0eRegexDelimiter\ + \x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\x11\n\rStringLiteral\x10\x1b\x12\ + \x17\n\x13StringLiteralEscape\x10\x1c\x12\x18\n\x14StringLiteralSpecial\ + \x10\x1d\x12\x14\n\x10StringLiteralKey\x10\x1e\x12\x14\n\x10CharacterLit\ + eral\x10\x1f\x12\x12\n\x0eNumericLiteral\x10\x20\x12\x12\n\x0eBooleanLit\ + eral\x10!\x12\x07\n\x03Tag\x10\"\x12\x10\n\x0cTagAttribute\x10#\x12\x10\ + \n\x0cTagDelimiter\x10$\x1a\x02\x10\x01*V\n\x08Severity\x12\x17\n\x13Uns\ + pecifiedSeverity\x10\0\x12\t\n\x05Error\x10\x01\x12\x0b\n\x07Warning\x10\ + \x02\x12\x0f\n\x0bInformation\x10\x03\x12\x08\n\x04Hint\x10\x04*N\n\rDia\ + gnosticTag\x12\x1c\n\x18UnspecifiedDiagnosticTag\x10\0\x12\x0f\n\x0bUnne\ + cessary\x10\x01\x12\x0e\n\nDeprecated\x10\x02*\x9b\n\n\x08Language\x12\ + \x17\n\x13UnspecifiedLanguage\x10\0\x12\x08\n\x04ABAP\x10<\x12\x08\n\x04\ + Apex\x10`\x12\x07\n\x03APL\x101\x12\x07\n\x03Ada\x10'\x12\x08\n\x04Agda\ + \x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\n\x08Assembly\x10:\x12\x07\n\ + \x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\x06BibTeX\x10Q\x12\x05\n\x01C\ + \x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\x03CPP\x10#\x12\x07\n\x03CSS\x10\ + \x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\x07Clojure\x10\x08\x12\x10\n\ + \x0cCoffeescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\x12\x07\n\x03Coq\ + \x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\ + \x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalo\ + g\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FS\ + harp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\x04Flow\x10\x18\x12\x0b\n\x07\ + Fortran\x108\x12\x0e\n\nGit_Commit\x10[\x12\x0e\n\nGit_Config\x10Y\x12\ + \x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\x10!\x12\x0b\n\x07GraphQL\x10b\ + \x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04HTML\x10\x1e\x12\x08\n\x04Hack\ + \x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\n\x07Haskell\x10,\x12\t\n\ + \x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\x01J\x103\x12\x08\n\x04JS\ + ON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJavaScript\x10\x16\x12\x13\ + \n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\x10L\x12\t\n\x05Julia\ + \x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\x10\x04\x12\t\n\x05La\ + TeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\x10\x1b\x12\x07\n\x03L\ + ua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Makefile\x10O\x12\x0c\n\ + \x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\x06Nickel\x10n\x12\x07\ + \n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\x0bObjective_C\x10$\x12\ + \x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10c\x12\x07\n\x03PHP\x10\ + \x13\x12\t\n\x05PLSQL\x10F\x12\x08\n\x04Perl\x10\r\x12\x0e\n\nPowerShell\ + \x10C\x12\n\n\x06Prolog\x10G\x12\x0c\n\x08Protobuf\x10d\x12\n\n\x06Pytho\ + n\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\x10\x0b\x12\x08\n\x04Rak\ + u\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repro\x10f\x12\x08\n\x04ReST\ + \x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rust\x10(\x12\x07\n\x03SAS\ + \x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\x10+\x12\x07\n\x03SQL\ + \x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\x10\x05\x12\n\n\x06Sche\ + me\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\x07Skylark\x10N\x12\t\n\ + \x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\n\x06Svelte\x10j\x12\t\n\ + \x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\n\x04TOML\x10I\x12\x07\n\ + \x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\nTypeScript\x10\x17\x12\ + \x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilog\x10h\x12\x08\n\x04VH\ + DL\x10i\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\x03Vue\x10\x19\x12\x0b\n\ + \x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\x07\n\x03XSL\x10\x20\x12\ + \x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-github.com/sourcegraph/scip\ + /bindings/go/scip/J\xef\xa3\x02\n\x07\x12\x05\n\0\xb2\x06\x01\n\x82\x04\ + \n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\x20contains\x20one\ + \x20or\x20more\x20pieces\x20of\x20information\x20about\x20a\x20given\x20\ + piece\x20of\n\x20source\x20code\x20or\x20software\x20artifact.\x20Comple\ + mentary\x20information\x20can\x20be\x20merged\n\x20together\x20from\x20m\ + ultiple\x20sources\x20to\x20provide\x20a\x20unified\x20code\x20intellige\ + nce\n\x20experience.\n\n\x20Programs\x20producing\x20a\x20file\x20of\x20\ + this\x20format\x20is\x20an\x20\"indexer\"\x20and\x20may\x20operate\n\x20\ + somewhere\x20on\x20the\x20spectrum\x20between\x20precision,\x20such\x20a\ + s\x20indexes\x20produced\x20by\n\x20compiler-backed\x20indexers,\x20and\ + \x20heurstics,\x20such\x20as\x20indexes\x20produced\x20by\x20local\n\x20\ + syntax-directed\x20analysis\x20for\x20scope\x20rules.\n\n\x08\n\x01\x02\ + \x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\0D\n\t\n\x02\x08\x0b\x12\ + \x03\x0e\0D\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0#\x01\x1a\xc3\x03\x20Inde\ + x\x20represents\x20a\x20complete\x20SCIP\x20index\x20for\x20a\x20workspa\ + ce\x20this\x20is\x20rooted\x20at\x20a\n\x20single\x20directory.\x20An\ + \x20Index\x20message\x20payload\x20can\x20have\x20a\x20large\x20memory\ + \x20footprint\n\x20and\x20it's\x20therefore\x20recommended\x20to\x20emit\ + \x20and\x20consume\x20an\x20Index\x20payload\x20one\x20field\n\x20value\ + \x20at\x20a\x20time.\x20To\x20permit\x20streaming\x20consumption\x20of\ + \x20an\x20Index\x20payload,\x20the\n\x20`metadata`\x20field\x20must\x20a\ + ppear\x20at\x20the\x20start\x20of\x20the\x20stream\x20and\x20must\x20onl\ + y\x20appear\n\x20once\x20in\x20the\x20stream.\x20Other\x20field\x20value\ + s\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\x03\x04\0\x01\x12\x03\ + \x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\x18\x1a\x1c\x20Metadata\ + \x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x18\ + \x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\x13\n\x0c\n\x05\x04\0\ + \x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\x01\x12\x03\x1a\x02\"\ + \x1a&\x20Documents\x20that\x20belong\x20to\x20this\x20index.\n\n\x0c\n\ + \x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\ + \x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x1a\x14\x1d\n\ + \x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xf6\x03\n\x04\x04\0\x02\ + \x02\x12\x03\x20\x022\x1a\xe9\x02\x20(optional)\x20Symbols\x20that\x20ar\ + e\x20referenced\x20from\x20this\x20index\x20but\x20are\x20defined\x20in\ + \n\x20an\x20external\x20package\x20(a\x20separate\x20`Index`\x20message)\ + .\x20Leave\x20this\x20field\x20empty\n\x20if\x20you\x20assume\x20the\x20\ + external\x20package\x20will\x20get\x20indexed\x20separately.\x20If\x20th\ + e\n\x20external\x20package\x20won't\x20get\x20indexed\x20for\x20some\x20\ + reason\x20then\x20you\x20can\x20use\x20this\n\x20field\x20to\x20provide\ + \x20hover\x20documentation\x20for\x20those\x20external\x20symbols.\n\"}\ + \x20IMPORTANT:\x20When\x20adding\x20a\x20new\x20field\x20to\x20`Index`\ + \x20here,\x20add\x20a\x20matching\n\x20function\x20in\x20`IndexVisitor`\ + \x20and\x20update\x20`ParseStreaming`.\n\n\x0c\n\x05\x04\0\x02\x02\x04\ + \x12\x03\x20\x02\n\n\x0c\n\x05\x04\0\x02\x02\x06\x12\x03\x20\x0b\x1c\n\ + \x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x20\x1d-\n\x0c\n\x05\x04\0\x02\x02\ + \x03\x12\x03\x2001\n\n\n\x02\x04\x01\x12\x04%\01\x01\n\n\n\x03\x04\x01\ + \x01\x12\x03%\x08\x10\nN\n\x04\x04\x01\x02\0\x12\x03'\x02\x1e\x1aA\x20Wh\ + ich\x20version\x20of\x20this\x20protocol\x20was\x20used\x20to\x20generat\ + e\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03'\x02\x11\n\ + \x0c\n\x05\x04\x01\x02\0\x01\x12\x03'\x12\x19\n\x0c\n\x05\x04\x01\x02\0\ + \x03\x12\x03'\x1c\x1d\nC\n\x04\x04\x01\x02\x01\x12\x03)\x02\x19\x1a6\x20\ + Information\x20about\x20the\x20tool\x20that\x20produced\x20this\x20index\ + .\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03)\x02\n\n\x0c\n\x05\x04\x01\ + \x02\x01\x01\x12\x03)\x0b\x14\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03)\ + \x17\x18\n\xa2\x01\n\x04\x04\x01\x02\x02\x12\x03-\x02\x1a\x1a\x94\x01\ + \x20URI-encoded\x20absolute\x20path\x20to\x20the\x20root\x20directory\ + \x20of\x20this\x20index.\x20All\n\x20documents\x20in\x20this\x20index\ + \x20must\x20appear\x20in\x20a\x20subdirectory\x20of\x20this\x20root\n\ + \x20directory.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03-\x02\x08\n\x0c\ + \n\x05\x04\x01\x02\x02\x01\x12\x03-\t\x15\n\x0c\n\x05\x04\x01\x02\x02\ + \x03\x12\x03-\x18\x19\nl\n\x04\x04\x01\x02\x03\x12\x030\x02*\x1a_\x20Tex\ + t\x20encoding\x20of\x20the\x20source\x20files\x20on\x20disk\x20that\x20a\ + re\x20referenced\x20from\n\x20`Document.relative_path`.\n\n\x0c\n\x05\ + \x04\x01\x02\x03\x06\x12\x030\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\ + \x12\x030\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x030()\n\n\n\x02\x05\ + \0\x12\x043\05\x01\n\n\n\x03\x05\0\x01\x12\x033\x05\x14\n\x0b\n\x04\x05\ + \0\x02\0\x12\x034\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x034\x02\x1c\n\ + \x0c\n\x05\x05\0\x02\0\x02\x12\x034\x1f\x20\n\n\n\x02\x05\x01\x12\x047\0\ + ;\x01\n\n\n\x03\x05\x01\x01\x12\x037\x05\x11\n\x0b\n\x04\x05\x01\x02\0\ \x12\x038\x02\x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x038\x02\x19\n\x0c\n\ \x05\x05\x01\x02\0\x02\x12\x038\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\ \x039\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x039\x02\x06\n\x0c\n\ @@ -4908,7 +4914,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\ \x02\x04\x05\x12\x04\xc3\x03\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\ \x04\xc3\x03\x07\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xc3\x03\x17\ - \x18\n\x88\x03\n\x02\x05\x02\x12\x06\xcc\x03\0\xdc\x03\x01\x1a\xf9\x02\ + \x18\n\x88\x03\n\x02\x05\x02\x12\x06\xcc\x03\0\xe2\x03\x01\x1a\xf9\x02\ \x20SymbolRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20\ in\x20an\x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bi\ tset\x20where\x20each\x20bit\x20represents\x20a\x20different\x20role.\ @@ -4940,140 +4946,147 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x03\x02\x0b\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\xd9\x03\x0e\x12\n+\n\ \x04\x05\x02\x02\x06\x12\x04\xdb\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20sym\ bol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\xdb\ - \x03\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\x04\xdb\x03\t\r\n\x0c\n\ - \x02\x05\x03\x12\x06\xde\x03\0\xbb\x04\x01\n\x0b\n\x03\x05\x03\x01\x12\ - \x04\xde\x03\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\x04\xdf\x03\x02\x1c\n\ - \x0c\n\x04\x05\x03\x03\x02\x12\x04\xdf\x03\x02\x1c\n\x0c\n\x04\x05\x03\ - \x02\0\x12\x04\xe1\x03\x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\xe1\ - \x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\xe1\x03\x1a\x1b\n;\n\ - \x04\x05\x03\x02\x01\x12\x04\xe4\x03\x02\x0e\x1a-\x20Comment,\x20includi\ - ng\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\ - \x12\x04\xe4\x03\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\xe4\x03\x0c\ - \r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\xe7\x03\x02\x1b\x1a\r\x20`;`\x20`\ - .`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xe7\x03\x02\x16\n\r\n\ - \x05\x05\x03\x02\x02\x02\x12\x04\xe7\x03\x19\x1a\n2\n\x04\x05\x03\x02\ - \x03\x12\x04\xe9\x03\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\ - \x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\xe9\x03\x02\ - \x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\xe9\x03\x17\x18\n5\n\x04\x05\ - \x03\x02\x04\x12\x04\xec\x03\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ - `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\xec\x03\ - \x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\xec\x03\x0c\r\n\x0c\n\x04\ - \x05\x03\x02\x05\x12\x04\xed\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\ - \x04\xed\x03\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\xed\x03\x16\ - \x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\xed\x03\x18)\n\x0e\n\x06\x05\ - \x03\x02\x05\x03\x01\x12\x04\xed\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\ - \x12\x04\xf0\x03\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ - \x03\x02\x06\x01\x12\x04\xf0\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\ - \x12\x04\xf0\x03\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\x04\xf3\x03\x02\ + \x03\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\x04\xdb\x03\t\r\n\xed\x01\ + \n\x04\x05\x02\x02\x07\x12\x04\xe1\x03\x02\x1b\x1a\xde\x01\x20Is\x20this\ + \x20a\x20signature\x20for\x20a\x20symbol\x20that\x20is\x20defined\x20els\ + ewhere?\n\n\x20Applies\x20to\x20forward\x20declarations\x20for\x20langua\ + ges\x20like\x20C,\x20C++\n\x20and\x20Objective-C,\x20as\x20well\x20as\ + \x20`val`\x20declarations\x20in\x20interface\n\x20files\x20in\x20languag\ + es\x20like\x20SML\x20and\x20OCaml.\n\n\r\n\x05\x05\x02\x02\x07\x01\x12\ + \x04\xe1\x03\x02\x13\n\r\n\x05\x05\x02\x02\x07\x02\x12\x04\xe1\x03\x16\ + \x1a\n\x0c\n\x02\x05\x03\x12\x06\xe4\x03\0\xc1\x04\x01\n\x0b\n\x03\x05\ + \x03\x01\x12\x04\xe4\x03\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\x04\xe5\x03\ + \x02\x1c\n\x0c\n\x04\x05\x03\x03\x02\x12\x04\xe5\x03\x02\x1c\n\x0c\n\x04\ + \x05\x03\x02\0\x12\x04\xe7\x03\x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\ + \x04\xe7\x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\xe7\x03\x1a\x1b\ + \n;\n\x04\x05\x03\x02\x01\x12\x04\xea\x03\x02\x0e\x1a-\x20Comment,\x20in\ + cluding\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\ + \x01\x12\x04\xea\x03\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\xea\x03\ + \x0c\r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\xed\x03\x02\x1b\x1a\r\x20`;`\ + \x20`.`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xed\x03\x02\x16\n\ + \r\n\x05\x05\x03\x02\x02\x02\x12\x04\xed\x03\x19\x1a\n2\n\x04\x05\x03\ + \x02\x03\x12\x04\xef\x03\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20use\ + d\x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\xef\x03\x02\ + \x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\xef\x03\x17\x18\n5\n\x04\x05\ + \x03\x02\x04\x12\x04\xf2\x03\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ + `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\xf2\x03\ + \x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\xf2\x03\x0c\r\n\x0c\n\x04\ + \x05\x03\x02\x05\x12\x04\xf3\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\ + \x04\xf3\x03\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\xf3\x03\x16\ + \x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\xf3\x03\x18)\n\x0e\n\x06\x05\ + \x03\x02\x05\x03\x01\x12\x04\xf3\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\ + \x12\x04\xf6\x03\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ + \x03\x02\x06\x01\x12\x04\xf6\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\ + \x12\x04\xf6\x03\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\x04\xf9\x03\x02\ \x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20identifier\x20no\ t\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\ - \x12\x04\xf3\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xf3\x03\ - \x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\xf5\x03\x02\x18\x1a@\x20Identi\ + \x12\x04\xf9\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xf9\x03\ + \x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\xfb\x03\x02\x18\x1a@\x20Identi\ fiers\x20builtin\x20to\x20the\x20language:\x20`min`,\x20`print`\x20in\ - \x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\xf5\x03\x02\x13\n\r\ - \n\x05\x05\x03\x02\x08\x02\x12\x04\xf5\x03\x16\x17\n[\n\x04\x05\x03\x02\ - \t\x12\x04\xf7\x03\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ + \x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\xfb\x03\x02\x13\n\r\ + \n\x05\x05\x03\x02\x08\x02\x12\x04\xfb\x03\x16\x17\n[\n\x04\x05\x03\x02\ + \t\x12\x04\xfd\x03\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ -like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\ - \n\x05\x05\x03\x02\t\x01\x12\x04\xf7\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\ - \x02\x12\x04\xf7\x03\x13\x14\n.\n\x04\x05\x03\x02\n\x12\x04\xf9\x03\x02\ + \n\x05\x05\x03\x02\t\x01\x12\x04\xfd\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\ + \x02\x12\x04\xfd\x03\x13\x14\n.\n\x04\x05\x03\x02\n\x12\x04\xff\x03\x02\ \x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\x20\"hello\"`\n\n\r\n\ - \x05\x05\x03\x02\n\x01\x12\x04\xf9\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\ - \x02\x12\x04\xf9\x03\x17\x18\n'\n\x04\x05\x03\x02\x0b\x12\x04\xfb\x03\ + \x05\x05\x03\x02\n\x01\x12\x04\xff\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\ + \x02\x12\x04\xff\x03\x17\x18\n'\n\x04\x05\x03\x02\x0b\x12\x04\x81\x04\ \x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\ - \x05\x03\x02\x0b\x01\x12\x04\xfb\x03\x02\x19\n\r\n\x05\x05\x03\x02\x0b\ - \x02\x12\x04\xfb\x03\x1c\x1e\n3\n\x04\x05\x03\x02\x0c\x12\x04\xfd\x03\ + \x05\x03\x02\x0b\x01\x12\x04\x81\x04\x02\x19\n\r\n\x05\x05\x03\x02\x0b\ + \x02\x12\x04\x81\x04\x1c\x1e\n3\n\x04\x05\x03\x02\x0c\x12\x04\x83\x04\ \x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20references\n\n\r\n\ - \x05\x05\x03\x02\x0c\x01\x12\x04\xfd\x03\x02\x15\n\r\n\x05\x05\x03\x02\ - \x0c\x02\x12\x04\xfd\x03\x18\x1a\nX\n\x04\x05\x03\x02\r\x12\x04\xff\x03\ + \x05\x05\x03\x02\x0c\x01\x12\x04\x83\x04\x02\x15\n\r\n\x05\x05\x03\x02\ + \x0c\x02\x12\x04\x83\x04\x18\x1a\nX\n\x04\x05\x03\x02\r\x12\x04\x85\x04\ \x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20definitions\x20and\ \x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\x05\x03\x02\ - \r\x01\x12\x04\xff\x03\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\x12\x04\xff\ - \x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\x81\x04\x02\x1a\x1a=\x20Id\ + \r\x01\x12\x04\x85\x04\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\x12\x04\x85\ + \x04\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\x87\x04\x02\x1a\x1a=\x20Id\ entifiers\x20that\x20shadow\x20other\x20identifiers\x20in\x20an\x20outer\ - \x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\x81\x04\x02\x14\n\r\n\ - \x05\x05\x03\x02\x0e\x02\x12\x04\x81\x04\x17\x19\n\xcd\x01\n\x04\x05\x03\ - \x02\x0f\x12\x04\x86\x04\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ + \x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\x87\x04\x02\x14\n\r\n\ + \x05\x05\x03\x02\x0e\x02\x12\x04\x87\x04\x17\x19\n\xcd\x01\n\x04\x05\x03\ + \x02\x0f\x12\x04\x8c\x04\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ ng\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\ \n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20\ and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\x20languages\x20l\ ike\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\ - \x04\x86\x04\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\x12\x04\x86\x04\x18\ - \x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\x87\x04\x02*\n\r\n\x05\x05\x03\ - \x02\x10\x01\x12\x04\x87\x04\x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\ - \x04\x87\x04\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\x12\x04\x87\x04\x18)\ - \n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\x87\x04\x19(\n4\n\x04\x05\ - \x03\x02\x11\x12\x04\x8a\x04\x02\x1a\x1a&\x20Function\x20references,\x20\ - including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\x12\x04\x8a\x04\x02\ - \x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\x8a\x04\x17\x19\n(\n\x04\x05\ - \x03\x02\x12\x12\x04\x8c\x04\x02$\x1a\x1a\x20Function\x20definition\x20o\ - nly\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\x8c\x04\x02\x1e\n\r\n\x05\ - \x05\x03\x02\x12\x02\x12\x04\x8c\x04!#\n7\n\x04\x05\x03\x02\x13\x12\x04\ - \x8f\x04\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ - s\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\x8f\x04\x02\x11\n\r\n\x05\x05\ - \x03\x02\x13\x02\x12\x04\x8f\x04\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\ - \x04\x91\x04\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ - \x03\x02\x14\x01\x12\x04\x91\x04\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\ - \x12\x04\x91\x04\x1e\x20\n!\n\x04\x05\x03\x02\x15\x12\x04\x94\x04\x02\ + \x04\x8c\x04\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\x12\x04\x8c\x04\x18\ + \x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\x8d\x04\x02*\n\r\n\x05\x05\x03\ + \x02\x10\x01\x12\x04\x8d\x04\x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\ + \x04\x8d\x04\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\x12\x04\x8d\x04\x18)\ + \n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\x8d\x04\x19(\n4\n\x04\x05\ + \x03\x02\x11\x12\x04\x90\x04\x02\x1a\x1a&\x20Function\x20references,\x20\ + including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\x12\x04\x90\x04\x02\ + \x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\x90\x04\x17\x19\n(\n\x04\x05\ + \x03\x02\x12\x12\x04\x92\x04\x02$\x1a\x1a\x20Function\x20definition\x20o\ + nly\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\x92\x04\x02\x1e\n\r\n\x05\ + \x05\x03\x02\x12\x02\x12\x04\x92\x04!#\n7\n\x04\x05\x03\x02\x13\x12\x04\ + \x95\x04\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ + s\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\x95\x04\x02\x11\n\r\n\x05\x05\ + \x03\x02\x13\x02\x12\x04\x95\x04\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\ + \x04\x97\x04\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ + \x03\x02\x14\x01\x12\x04\x97\x04\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\ + \x12\x04\x97\x04\x1e\x20\n!\n\x04\x05\x03\x02\x15\x12\x04\x9a\x04\x02\ \x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\ - \x04\x94\x04\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\x12\x04\x94\x04\x13\ - \x15\nK\n\x04\x05\x03\x02\x16\x12\x04\x96\x04\x02\x1d\x1a=\x20builtin\ + \x04\x9a\x04\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\x12\x04\x9a\x04\x13\ + \x15\nK\n\x04\x05\x03\x02\x16\x12\x04\x9c\x04\x02\x1d\x1a=\x20builtin\ \x20types\x20only,\x20such\x20as\x20`str`\x20for\x20Python\x20or\x20`int\ - `\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\x04\x96\x04\x02\x17\n\ - \r\n\x05\x05\x03\x02\x16\x02\x12\x04\x96\x04\x1a\x1c\n7\n\x04\x05\x03\ - \x02\x17\x12\x04\x99\x04\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ - \x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\x12\x04\x99\x04\x02\ - \x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\x99\x04\x18\x1a\n\x14\n\x04\ - \x05\x03\x02\x18\x12\x04\x9c\x04\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ - \x05\x03\x02\x18\x01\x12\x04\x9c\x04\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\ - \x12\x04\x9c\x04\x10\x12\n\x18\n\x04\x05\x03\x02\x19\x12\x04\x9e\x04\x02\ - \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\x9e\ - \x04\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\x9e\x04\x12\x14\n\x13\ - \n\x04\x05\x03\x02\x1a\x12\x04\xa0\x04\x02\x15\x1a\x05\x20`.`\n\n\r\n\ - \x05\x05\x03\x02\x1a\x01\x12\x04\xa0\x04\x02\x0f\n\r\n\x05\x05\x03\x02\ - \x1a\x02\x12\x04\xa0\x04\x12\x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xa2\ + `\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\x04\x9c\x04\x02\x17\n\ + \r\n\x05\x05\x03\x02\x16\x02\x12\x04\x9c\x04\x1a\x1c\n7\n\x04\x05\x03\ + \x02\x17\x12\x04\x9f\x04\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ + \x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\x12\x04\x9f\x04\x02\ + \x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\x9f\x04\x18\x1a\n\x14\n\x04\ + \x05\x03\x02\x18\x12\x04\xa2\x04\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ + \x05\x03\x02\x18\x01\x12\x04\xa2\x04\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\ + \x12\x04\xa2\x04\x10\x12\n\x18\n\x04\x05\x03\x02\x19\x12\x04\xa4\x04\x02\ + \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xa4\ + \x04\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\xa4\x04\x12\x14\n\x13\ + \n\x04\x05\x03\x02\x1a\x12\x04\xa6\x04\x02\x15\x1a\x05\x20`.`\n\n\r\n\ + \x05\x05\x03\x02\x1a\x01\x12\x04\xa6\x04\x02\x0f\n\r\n\x05\x05\x03\x02\ + \x1a\x02\x12\x04\xa6\x04\x12\x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xa8\ \x04\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\ - \x02\x1b\x01\x12\x04\xa2\x04\x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\ - \x04\xa2\x04\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\xa4\x04\x02\x11\ - \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\x12\x04\xa4\x04\ - \x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xa4\x04\x0e\x10\n0\n\x04\ - \x05\x03\x02\x1d\x12\x04\xa7\x04\x02\x15\x1a\"\x20Literal\x20strings:\ - \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\x12\x04\xa7\x04\ - \x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xa7\x04\x12\x14\n-\n\x04\ - \x05\x03\x02\x1e\x12\x04\xa9\x04\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ - :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xa9\x04\ - \x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xa9\x04\x18\x1a\n_\n\x04\ - \x05\x03\x02\x1f\x12\x04\xab\x04\x02\x1c\x1aQ\x20datetimes\x20within\x20\ + \x02\x1b\x01\x12\x04\xa8\x04\x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\ + \x04\xa8\x04\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\xaa\x04\x02\x11\ + \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\x12\x04\xaa\x04\ + \x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xaa\x04\x0e\x10\n0\n\x04\ + \x05\x03\x02\x1d\x12\x04\xad\x04\x02\x15\x1a\"\x20Literal\x20strings:\ + \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\x12\x04\xad\x04\ + \x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xad\x04\x12\x14\n-\n\x04\ + \x05\x03\x02\x1e\x12\x04\xaf\x04\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ + :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xaf\x04\ + \x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xaf\x04\x18\x1a\n_\n\x04\ + \x05\x03\x02\x1f\x12\x04\xb1\x04\x02\x1c\x1aQ\x20datetimes\x20within\x20\ strings,\x20special\x20words\x20within\x20a\x20string,\x20`{}`\x20in\x20\ - format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\x12\x04\xab\x04\x02\ - \x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xab\x04\x19\x1b\nG\n\x04\x05\ - \x03\x02\x20\x12\x04\xad\x04\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ + format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\x12\x04\xb1\x04\x02\ + \x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xb1\x04\x19\x1b\nG\n\x04\x05\ + \x03\x02\x20\x12\x04\xb3\x04\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ \":\x20\"value\"\x20},\x20useful\x20for\x20example\x20in\x20JSON\n\n\r\n\ - \x05\x05\x03\x02\x20\x01\x12\x04\xad\x04\x02\x12\n\r\n\x05\x05\x03\x02\ - \x20\x02\x12\x04\xad\x04\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xaf\x04\ + \x05\x05\x03\x02\x20\x01\x12\x04\xb3\x04\x02\x12\n\r\n\x05\x05\x03\x02\ + \x20\x02\x12\x04\xb3\x04\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xb5\x04\ \x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20languages\x20that\x20dif\ ferentiate\x20strings\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\ - \x12\x04\xaf\x04\x02\x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xaf\x04\x15\ - \x17\n9\n\x04\x05\x03\x02\"\x12\x04\xb1\x04\x02\x16\x1a+\x20Literal\x20n\ + \x12\x04\xb5\x04\x02\x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xb5\x04\x15\ + \x17\n9\n\x04\x05\x03\x02\"\x12\x04\xb7\x04\x02\x16\x1a+\x20Literal\x20n\ umbers,\x20both\x20floats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\ - \x01\x12\x04\xb1\x04\x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xb1\x04\ - \x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xb3\x04\x02\x16\x1a\x11\x20`tr\ - ue`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\x04\xb3\x04\x02\x10\n\r\ - \n\x05\x05\x03\x02#\x02\x12\x04\xb3\x04\x13\x15\n&\n\x04\x05\x03\x02$\ - \x12\x04\xb6\x04\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ - \r\n\x05\x05\x03\x02$\x01\x12\x04\xb6\x04\x02\x05\n\r\n\x05\x05\x03\x02$\ - \x02\x12\x04\xb6\x04\x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xb8\x04\x02\x14\ + \x01\x12\x04\xb7\x04\x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xb7\x04\ + \x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xb9\x04\x02\x16\x1a\x11\x20`tr\ + ue`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\x04\xb9\x04\x02\x10\n\r\ + \n\x05\x05\x03\x02#\x02\x12\x04\xb9\x04\x13\x15\n&\n\x04\x05\x03\x02$\ + \x12\x04\xbc\x04\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ + \r\n\x05\x05\x03\x02$\x01\x12\x04\xbc\x04\x02\x05\n\r\n\x05\x05\x03\x02$\ + \x02\x12\x04\xbc\x04\x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xbe\x04\x02\x14\ \x1a!\x20Attribute\x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\ - \x02%\x01\x12\x04\xb8\x04\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xb8\ - \x04\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\xba\x04\x02\x14\x1a\x1e\x20De\ + \x02%\x01\x12\x04\xbe\x04\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xbe\ + \x04\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\xc0\x04\x02\x14\x1a\x1e\x20De\ limiters\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\ - \xba\x04\x02\x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xba\x04\x11\x13\n\ - \xf9\x01\n\x02\x04\t\x12\x06\xc2\x04\0\x91\x05\x01\x1a\xea\x01\x20Occurr\ + \xc0\x04\x02\x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xc0\x04\x11\x13\n\ + \xf9\x01\n\x02\x04\t\x12\x06\xc8\x04\0\x97\x05\x01\x1a\xea\x01\x20Occurr\ ence\x20associates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20\ and/or\x20highlighting\n\x20information.\n\n\x20If\x20possible,\x20index\ ers\x20should\x20try\x20to\x20bundle\x20logically\x20related\x20informat\ ion\n\x20across\x20occurrences\x20into\x20a\x20single\x20occurrence\x20t\ - o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xc2\x04\ - \x08\x12\n\xc6\x07\n\x04\x04\t\x02\0\x12\x04\xd5\x04\x02\x1b\x1a\xb7\x07\ + o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xc8\x04\ + \x08\x12\n\xc6\x07\n\x04\x04\t\x02\0\x12\x04\xdb\x04\x02\x1b\x1a\xb7\x07\ \x20Source\x20position\x20of\x20this\x20occurrence.\x20Must\x20be\x20exa\ ctly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\ \x20`[startLine,\x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\ @@ -5093,22 +5106,22 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ead.\x20The\x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20mo\ re\x20embarrassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\ \x20languages\x20but\x20we\x20hope\x20the\x20performance\n\x20improvemen\ - ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\xd5\ - \x04\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xd5\x04\x0b\x10\n\r\n\x05\ - \x04\t\x02\0\x01\x12\x04\xd5\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\ - \x04\xd5\x04\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xd8\x04\x02\ + ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\xdb\ + \x04\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xdb\x04\x0b\x10\n\r\n\x05\ + \x04\t\x02\0\x01\x12\x04\xdb\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\ + \x04\xdb\x04\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xde\x04\x02\ \x14\x1a|\x20(optional)\x20The\x20symbol\x20that\x20appears\x20at\x20thi\ s\x20position.\x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20t\ o\x20format\x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\ - \x12\x04\xd8\x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xd8\x04\t\ - \x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xd8\x04\x12\x13\n\x97\x01\n\x04\ - \x04\t\x02\x02\x12\x04\xdb\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\ + \x12\x04\xde\x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xde\x04\t\ + \x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xde\x04\x12\x13\n\x97\x01\n\x04\ + \x04\t\x02\x02\x12\x04\xe1\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\ et\x20containing\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\ \x20`SymbolRole`'s\x20documentation\x20for\x20how\x20to\x20read\x20and\ - \x20write\x20this\x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xdb\ - \x04\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xdb\x04\x08\x14\n\r\n\ - \x05\x04\t\x02\x02\x03\x12\x04\xdb\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\ - \x03\x12\x04\xe4\x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\ + \x20write\x20this\x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xe1\ + \x04\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xe1\x04\x08\x14\n\r\n\ + \x05\x04\t\x02\x02\x03\x12\x04\xe1\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\ + \x03\x12\x04\xea\x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\ ted\x20documentation\x20for\x20this\x20specific\x20range.\x20If\n\x20emp\ ty,\x20the\x20`Symbol.documentation`\x20field\x20is\x20used\x20instead.\ \x20One\x20example\n\x20where\x20this\x20field\x20might\x20be\x20useful\ @@ -5118,19 +5131,19 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20values\x20(such\x20as\x20`List`).\n\n\x20This\x20field\x20ca\ n\x20also\x20be\x20used\x20for\x20dynamically\x20or\x20gradually\x20type\ d\x20languages,\n\x20which\x20commonly\x20allow\x20for\x20type-changing\ - \x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xe4\x04\x02\n\n\r\ - \n\x05\x04\t\x02\x03\x05\x12\x04\xe4\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\ - \x01\x12\x04\xe4\x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xe4\x04+,\ - \nX\n\x04\x04\t\x02\x04\x12\x04\xe6\x04\x02\x1d\x1aJ\x20(optional)\x20Wh\ + \x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xea\x04\x02\n\n\r\ + \n\x05\x04\t\x02\x03\x05\x12\x04\xea\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\ + \x01\x12\x04\xea\x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xea\x04+,\ + \nX\n\x04\x04\t\x02\x04\x12\x04\xec\x04\x02\x1d\x1aJ\x20(optional)\x20Wh\ at\x20syntax\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20\ - this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xe6\x04\x02\x0c\n\r\ - \n\x05\x04\t\x02\x04\x01\x12\x04\xe6\x04\r\x18\n\r\n\x05\x04\t\x02\x04\ - \x03\x12\x04\xe6\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\xe8\x04\x02&\ + this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xec\x04\x02\x0c\n\r\ + \n\x05\x04\t\x02\x04\x01\x12\x04\xec\x04\r\x18\n\r\n\x05\x04\t\x02\x04\ + \x03\x12\x04\xec\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\xee\x04\x02&\ \x1aI\x20(optional)\x20Diagnostics\x20that\x20have\x20been\x20reported\ \x20for\x20this\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\ - \x04\xe8\x04\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xe8\x04\x0b\x15\n\ - \r\n\x05\x04\t\x02\x05\x01\x12\x04\xe8\x04\x16!\n\r\n\x05\x04\t\x02\x05\ - \x03\x12\x04\xe8\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\x90\x05\x02\ + \x04\xee\x04\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xee\x04\x0b\x15\n\ + \r\n\x05\x04\t\x02\x05\x01\x12\x04\xee\x04\x16!\n\r\n\x05\x04\t\x02\x05\ + \x03\x12\x04\xee\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\x96\x05\x02\ %\x1a\xf1\x0b\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\ \x20the\x20sibling\x20`range`\x20field,\x20source\n\x20position\x20of\ \x20the\x20nearest\x20non-trivial\x20enclosing\x20AST\x20node.\x20This\ @@ -5171,55 +5184,55 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20a.b(41).f(42).g(43)\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosing_range\n\x20```\n\n\r\n\x05\ - \x04\t\x02\x06\x04\x12\x04\x90\x05\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\ - \x04\x90\x05\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\x90\x05\x11\x20\ - \n\r\n\x05\x04\t\x02\x06\x03\x12\x04\x90\x05#$\nw\n\x02\x04\n\x12\x06\ - \x95\x05\0\xa0\x05\x01\x1ai\x20Represents\x20a\x20diagnostic,\x20such\ + \x04\t\x02\x06\x04\x12\x04\x96\x05\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\ + \x04\x96\x05\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\x96\x05\x11\x20\ + \n\r\n\x05\x04\t\x02\x06\x03\x12\x04\x96\x05#$\nw\n\x02\x04\n\x12\x06\ + \x9b\x05\0\xa6\x05\x01\x1ai\x20Represents\x20a\x20diagnostic,\x20such\ \x20as\x20a\x20compiler\x20error\x20or\x20warning,\x20which\x20should\ \x20be\n\x20reported\x20for\x20a\x20document.\n\n\x0b\n\x03\x04\n\x01\ - \x12\x04\x95\x05\x08\x12\nW\n\x04\x04\n\x02\0\x12\x04\x97\x05\x02\x18\ + \x12\x04\x9b\x05\x08\x12\nW\n\x04\x04\n\x02\0\x12\x04\x9d\x05\x02\x18\ \x1aI\x20Should\x20this\x20diagnostic\x20be\x20reported\x20as\x20an\x20e\ rror,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\x05\x04\n\x02\0\x06\ - \x12\x04\x97\x05\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\x04\x97\x05\x0b\x13\ - \n\r\n\x05\x04\n\x02\0\x03\x12\x04\x97\x05\x16\x17\n]\n\x04\x04\n\x02\ - \x01\x12\x04\x99\x05\x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\ + \x12\x04\x9d\x05\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\x04\x9d\x05\x0b\x13\ + \n\r\n\x05\x04\n\x02\0\x03\x12\x04\x9d\x05\x16\x17\n]\n\x04\x04\n\x02\ + \x01\x12\x04\x9f\x05\x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\ \x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\x20user\x20inte\ - rface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\x99\x05\x02\x08\n\r\n\x05\ - \x04\n\x02\x01\x01\x12\x04\x99\x05\t\r\n\r\n\x05\x04\n\x02\x01\x03\x12\ - \x04\x99\x05\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\x9b\x05\x02\x15\x1a\ + rface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\x9f\x05\x02\x08\n\r\n\x05\ + \x04\n\x02\x01\x01\x12\x04\x9f\x05\t\r\n\r\n\x05\x04\n\x02\x01\x03\x12\ + \x04\x9f\x05\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xa1\x05\x02\x15\x1a\ \x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\n\x02\x02\ - \x05\x12\x04\x9b\x05\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\x9b\x05\ - \t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\x9b\x05\x13\x14\n~\n\x04\x04\ - \n\x02\x03\x12\x04\x9e\x05\x02\x14\x1ap\x20(optional)\x20Human-readable\ + \x05\x12\x04\xa1\x05\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xa1\x05\ + \t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xa1\x05\x13\x14\n~\n\x04\x04\ + \n\x02\x03\x12\x04\xa4\x05\x02\x14\x1ap\x20(optional)\x20Human-readable\ \x20string\x20describing\x20the\x20source\x20of\x20this\x20diagnostic,\ \x20e.g.\n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\n\ - \x02\x03\x05\x12\x04\x9e\x05\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\ - \x9e\x05\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\x9e\x05\x12\x13\n\x0c\ - \n\x04\x04\n\x02\x04\x12\x04\x9f\x05\x02\"\n\r\n\x05\x04\n\x02\x04\x04\ - \x12\x04\x9f\x05\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\x9f\x05\x0b\ - \x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\x9f\x05\x19\x1d\n\r\n\x05\x04\n\ - \x02\x04\x03\x12\x04\x9f\x05\x20!\n\x0c\n\x02\x05\x04\x12\x06\xa2\x05\0\ - \xa8\x05\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xa2\x05\x05\r\n\x0c\n\x04\ - \x05\x04\x02\0\x12\x04\xa3\x05\x02\x1a\n\r\n\x05\x05\x04\x02\0\x01\x12\ - \x04\xa3\x05\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xa3\x05\x18\x19\ - \n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xa4\x05\x02\x0c\n\r\n\x05\x05\x04\ - \x02\x01\x01\x12\x04\xa4\x05\x02\x07\n\r\n\x05\x05\x04\x02\x01\x02\x12\ - \x04\xa4\x05\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xa5\x05\x02\x0e\n\ - \r\n\x05\x05\x04\x02\x02\x01\x12\x04\xa5\x05\x02\t\n\r\n\x05\x05\x04\x02\ - \x02\x02\x12\x04\xa5\x05\x0c\r\n\x0c\n\x04\x05\x04\x02\x03\x12\x04\xa6\ - \x05\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xa6\x05\x02\r\n\r\n\ - \x05\x05\x04\x02\x03\x02\x12\x04\xa6\x05\x10\x11\n\x0c\n\x04\x05\x04\x02\ - \x04\x12\x04\xa7\x05\x02\x0b\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xa7\ - \x05\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xa7\x05\t\n\n\x0c\n\ - \x02\x05\x05\x12\x06\xaa\x05\0\xae\x05\x01\n\x0b\n\x03\x05\x05\x01\x12\ - \x04\xaa\x05\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xab\x05\x02\x1f\n\ - \r\n\x05\x05\x05\x02\0\x01\x12\x04\xab\x05\x02\x1a\n\r\n\x05\x05\x05\x02\ - \0\x02\x12\x04\xab\x05\x1d\x1e\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xac\ - \x05\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xac\x05\x02\r\n\r\n\ - \x05\x05\x05\x02\x01\x02\x12\x04\xac\x05\x10\x11\n\x0c\n\x04\x05\x05\x02\ - \x02\x12\x04\xad\x05\x02\x11\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xad\ - \x05\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xad\x05\x0f\x10\n\xd0\ - \x03\n\x02\x05\x06\x12\x06\xb6\x05\0\xac\x06\x01\x1a\xc1\x03\x20Language\ + \x02\x03\x05\x12\x04\xa4\x05\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\ + \xa4\x05\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xa4\x05\x12\x13\n\x0c\ + \n\x04\x04\n\x02\x04\x12\x04\xa5\x05\x02\"\n\r\n\x05\x04\n\x02\x04\x04\ + \x12\x04\xa5\x05\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xa5\x05\x0b\ + \x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xa5\x05\x19\x1d\n\r\n\x05\x04\n\ + \x02\x04\x03\x12\x04\xa5\x05\x20!\n\x0c\n\x02\x05\x04\x12\x06\xa8\x05\0\ + \xae\x05\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xa8\x05\x05\r\n\x0c\n\x04\ + \x05\x04\x02\0\x12\x04\xa9\x05\x02\x1a\n\r\n\x05\x05\x04\x02\0\x01\x12\ + \x04\xa9\x05\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xa9\x05\x18\x19\ + \n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xaa\x05\x02\x0c\n\r\n\x05\x05\x04\ + \x02\x01\x01\x12\x04\xaa\x05\x02\x07\n\r\n\x05\x05\x04\x02\x01\x02\x12\ + \x04\xaa\x05\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xab\x05\x02\x0e\n\ + \r\n\x05\x05\x04\x02\x02\x01\x12\x04\xab\x05\x02\t\n\r\n\x05\x05\x04\x02\ + \x02\x02\x12\x04\xab\x05\x0c\r\n\x0c\n\x04\x05\x04\x02\x03\x12\x04\xac\ + \x05\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xac\x05\x02\r\n\r\n\ + \x05\x05\x04\x02\x03\x02\x12\x04\xac\x05\x10\x11\n\x0c\n\x04\x05\x04\x02\ + \x04\x12\x04\xad\x05\x02\x0b\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xad\ + \x05\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xad\x05\t\n\n\x0c\n\ + \x02\x05\x05\x12\x06\xb0\x05\0\xb4\x05\x01\n\x0b\n\x03\x05\x05\x01\x12\ + \x04\xb0\x05\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xb1\x05\x02\x1f\n\ + \r\n\x05\x05\x05\x02\0\x01\x12\x04\xb1\x05\x02\x1a\n\r\n\x05\x05\x05\x02\ + \0\x02\x12\x04\xb1\x05\x1d\x1e\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xb2\ + \x05\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xb2\x05\x02\r\n\r\n\ + \x05\x05\x05\x02\x01\x02\x12\x04\xb2\x05\x10\x11\n\x0c\n\x04\x05\x05\x02\ + \x02\x12\x04\xb3\x05\x02\x11\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xb3\ + \x05\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xb3\x05\x0f\x10\n\xd0\ + \x03\n\x02\x05\x06\x12\x06\xbc\x05\0\xb2\x06\x01\x1a\xc1\x03\x20Language\ \x20standardises\x20names\x20of\x20common\x20programming\x20languages\ \x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.language`\x20\ field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\x20to\n\ @@ -5229,244 +5242,244 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20the\x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\x20other\x20na\ mes\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\x20free\ \x20to\x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20programmi\ - ng\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\x04\xb6\x05\x05\r\n\x0c\n\ - \x04\x05\x06\x02\0\x12\x04\xb7\x05\x02\x1a\n\r\n\x05\x05\x06\x02\0\x01\ - \x12\x04\xb7\x05\x02\x15\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xb7\x05\x18\ - \x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xb8\x05\x02\x0c\n\r\n\x05\x05\ - \x06\x02\x01\x01\x12\x04\xb8\x05\x02\x06\n\r\n\x05\x05\x06\x02\x01\x02\ - \x12\x04\xb8\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xb9\x05\x02\ - \x0c\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xb9\x05\x02\x06\n\r\n\x05\x05\ - \x06\x02\x02\x02\x12\x04\xb9\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x03\x12\ - \x04\xba\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xba\x05\x02\ - \x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xba\x05\x08\n\n\x0c\n\x04\x05\ - \x06\x02\x04\x12\x04\xbb\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x04\x01\x12\ - \x04\xbb\x05\x02\x05\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xbb\x05\x08\n\ - \n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xbc\x05\x02\x0c\n\r\n\x05\x05\x06\ - \x02\x05\x01\x12\x04\xbc\x05\x02\x06\n\r\n\x05\x05\x06\x02\x05\x02\x12\ - \x04\xbc\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x06\x12\x04\xbd\x05\x02\x10\n\ - \r\n\x05\x05\x06\x02\x06\x01\x12\x04\xbd\x05\x02\n\n\r\n\x05\x05\x06\x02\ - \x06\x02\x12\x04\xbd\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\x07\x12\x04\xbe\ - \x05\x02\x10\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\xbe\x05\x02\n\n\r\n\ - \x05\x05\x06\x02\x07\x02\x12\x04\xbe\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\ - \x08\x12\x04\xbf\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x08\x01\x12\x04\xbf\ - \x05\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\xbf\x05\x08\n\n\x0c\n\ - \x04\x05\x06\x02\t\x12\x04\xc0\x05\x02\x0b\n\r\n\x05\x05\x06\x02\t\x01\ - \x12\x04\xc0\x05\x02\x05\n\r\n\x05\x05\x06\x02\t\x02\x12\x04\xc0\x05\x08\ - \n\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xc1\x05\x02\x0e\n\r\n\x05\x05\x06\ - \x02\n\x01\x12\x04\xc1\x05\x02\x08\n\r\n\x05\x05\x06\x02\n\x02\x12\x04\ - \xc1\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\xc2\x05\x02\t\n\r\n\ - \x05\x05\x06\x02\x0b\x01\x12\x04\xc2\x05\x02\x03\n\r\n\x05\x05\x06\x02\ - \x0b\x02\x12\x04\xc2\x05\x06\x08\n\x0c\n\x04\x05\x06\x02\x0c\x12\x04\xc3\ - \x05\x02\r\n\r\n\x05\x05\x06\x02\x0c\x01\x12\x04\xc3\x05\x02\x07\n\r\n\ - \x05\x05\x06\x02\x0c\x02\x12\x04\xc3\x05\n\x0c\nH\n\x04\x05\x06\x02\r\ - \x12\x04\xc4\x05\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20\ + ng\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\x04\xbc\x05\x05\r\n\x0c\n\ + \x04\x05\x06\x02\0\x12\x04\xbd\x05\x02\x1a\n\r\n\x05\x05\x06\x02\0\x01\ + \x12\x04\xbd\x05\x02\x15\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xbd\x05\x18\ + \x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xbe\x05\x02\x0c\n\r\n\x05\x05\ + \x06\x02\x01\x01\x12\x04\xbe\x05\x02\x06\n\r\n\x05\x05\x06\x02\x01\x02\ + \x12\x04\xbe\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xbf\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xbf\x05\x02\x06\n\r\n\x05\x05\ + \x06\x02\x02\x02\x12\x04\xbf\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x03\x12\ + \x04\xc0\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xc0\x05\x02\ + \x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xc0\x05\x08\n\n\x0c\n\x04\x05\ + \x06\x02\x04\x12\x04\xc1\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x04\x01\x12\ + \x04\xc1\x05\x02\x05\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xc1\x05\x08\n\ + \n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xc2\x05\x02\x0c\n\r\n\x05\x05\x06\ + \x02\x05\x01\x12\x04\xc2\x05\x02\x06\n\r\n\x05\x05\x06\x02\x05\x02\x12\ + \x04\xc2\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x06\x12\x04\xc3\x05\x02\x10\n\ + \r\n\x05\x05\x06\x02\x06\x01\x12\x04\xc3\x05\x02\n\n\r\n\x05\x05\x06\x02\ + \x06\x02\x12\x04\xc3\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\x07\x12\x04\xc4\ + \x05\x02\x10\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\xc4\x05\x02\n\n\r\n\ + \x05\x05\x06\x02\x07\x02\x12\x04\xc4\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\ + \x08\x12\x04\xc5\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x08\x01\x12\x04\xc5\ + \x05\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\xc5\x05\x08\n\n\x0c\n\ + \x04\x05\x06\x02\t\x12\x04\xc6\x05\x02\x0b\n\r\n\x05\x05\x06\x02\t\x01\ + \x12\x04\xc6\x05\x02\x05\n\r\n\x05\x05\x06\x02\t\x02\x12\x04\xc6\x05\x08\ + \n\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xc7\x05\x02\x0e\n\r\n\x05\x05\x06\ + \x02\n\x01\x12\x04\xc7\x05\x02\x08\n\r\n\x05\x05\x06\x02\n\x02\x12\x04\ + \xc7\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\xc8\x05\x02\t\n\r\n\ + \x05\x05\x06\x02\x0b\x01\x12\x04\xc8\x05\x02\x03\n\r\n\x05\x05\x06\x02\ + \x0b\x02\x12\x04\xc8\x05\x06\x08\n\x0c\n\x04\x05\x06\x02\x0c\x12\x04\xc9\ + \x05\x02\r\n\r\n\x05\x05\x06\x02\x0c\x01\x12\x04\xc9\x05\x02\x07\n\r\n\ + \x05\x05\x06\x02\x0c\x02\x12\x04\xc9\x05\n\x0c\nH\n\x04\x05\x06\x02\r\ + \x12\x04\xca\x05\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20\ chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\x05\x06\x02\r\ - \x01\x12\x04\xc4\x05\x02\x05\n\r\n\x05\x05\x06\x02\r\x02\x12\x04\xc4\x05\ - \x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\xc5\x05\x02\x0b\n\r\n\x05\x05\ - \x06\x02\x0e\x01\x12\x04\xc5\x05\x02\x05\n\r\n\x05\x05\x06\x02\x0e\x02\ - \x12\x04\xc5\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x0f\x12\x04\xc6\x05\x02\r\ - \n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\xc6\x05\x02\x08\n\r\n\x05\x05\x06\ - \x02\x0f\x02\x12\x04\xc6\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x10\x12\x04\ - \xc7\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x01\x12\x04\xc7\x05\x02\t\n\r\ - \n\x05\x05\x06\x02\x10\x02\x12\x04\xc7\x05\x0c\r\n\x0c\n\x04\x05\x06\x02\ - \x11\x12\x04\xc8\x05\x02\x14\n\r\n\x05\x05\x06\x02\x11\x01\x12\x04\xc8\ - \x05\x02\x0e\n\r\n\x05\x05\x06\x02\x11\x02\x12\x04\xc8\x05\x11\x13\n\x0c\ - \n\x04\x05\x06\x02\x12\x12\x04\xc9\x05\x02\x11\n\r\n\x05\x05\x06\x02\x12\ - \x01\x12\x04\xc9\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x12\x02\x12\x04\xc9\ - \x05\x0f\x10\n\x0c\n\x04\x05\x06\x02\x13\x12\x04\xca\x05\x02\x0b\n\r\n\ - \x05\x05\x06\x02\x13\x01\x12\x04\xca\x05\x02\x05\n\r\n\x05\x05\x06\x02\ - \x13\x02\x12\x04\xca\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x14\x12\x04\xcb\ - \x05\x02\x0c\n\r\n\x05\x05\x06\x02\x14\x01\x12\x04\xcb\x05\x02\x06\n\r\n\ - \x05\x05\x06\x02\x14\x02\x12\x04\xcb\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\ - \x15\x12\x04\xcc\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x15\x01\x12\x04\xcc\ - \x05\x02\x06\n\r\n\x05\x05\x06\x02\x15\x02\x12\x04\xcc\x05\t\n\n\x0c\n\ - \x04\x05\x06\x02\x16\x12\x04\xcd\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x16\ - \x01\x12\x04\xcd\x05\x02\x08\n\r\n\x05\x05\x06\x02\x16\x02\x12\x04\xcd\ - \x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x17\x12\x04\xce\x05\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x17\x01\x12\x04\xce\x05\x02\x06\n\r\n\x05\x05\x06\x02\x17\ - \x02\x12\x04\xce\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x18\x12\x04\xcf\x05\ - \x02\x12\n\r\n\x05\x05\x06\x02\x18\x01\x12\x04\xcf\x05\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x18\x02\x12\x04\xcf\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x19\ - \x12\x04\xd0\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x19\x01\x12\x04\xd0\x05\ - \x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\x04\xd0\x05\x0b\r\n\x0c\n\x04\ - \x05\x06\x02\x1a\x12\x04\xd1\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x1a\x01\ - \x12\x04\xd1\x05\x02\x08\n\r\n\x05\x05\x06\x02\x1a\x02\x12\x04\xd1\x05\ - \x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\xd2\x05\x02\x0e\n\r\n\x05\x05\ - \x06\x02\x1b\x01\x12\x04\xd2\x05\x02\x08\n\r\n\x05\x05\x06\x02\x1b\x02\ - \x12\x04\xd2\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1c\x12\x04\xd3\x05\x02\ - \x0e\n\r\n\x05\x05\x06\x02\x1c\x01\x12\x04\xd3\x05\x02\x08\n\r\n\x05\x05\ - \x06\x02\x1c\x02\x12\x04\xd3\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1d\x12\ - \x04\xd4\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1d\x01\x12\x04\xd4\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\xd4\x05\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x1e\x12\x04\xd5\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1e\x01\x12\ - \x04\xd5\x05\x02\x06\n\r\n\x05\x05\x06\x02\x1e\x02\x12\x04\xd5\x05\t\x0b\ - \n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xd6\x05\x02\x0f\n\r\n\x05\x05\x06\ - \x02\x1f\x01\x12\x04\xd6\x05\x02\t\n\r\n\x05\x05\x06\x02\x1f\x02\x12\x04\ - \xd6\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x20\x12\x04\xd7\x05\x02\x12\n\r\ - \n\x05\x05\x06\x02\x20\x01\x12\x04\xd7\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x20\x02\x12\x04\xd7\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02!\x12\x04\xd8\ - \x05\x02\x12\n\r\n\x05\x05\x06\x02!\x01\x12\x04\xd8\x05\x02\x0c\n\r\n\ - \x05\x05\x06\x02!\x02\x12\x04\xd8\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\"\ - \x12\x04\xd9\x05\x02\x12\n\r\n\x05\x05\x06\x02\"\x01\x12\x04\xd9\x05\x02\ - \x0c\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xd9\x05\x0f\x11\n\x0c\n\x04\x05\ - \x06\x02#\x12\x04\xda\x05\x02\n\n\r\n\x05\x05\x06\x02#\x01\x12\x04\xda\ - \x05\x02\x04\n\r\n\x05\x05\x06\x02#\x02\x12\x04\xda\x05\x07\t\n\x0c\n\ - \x04\x05\x06\x02$\x12\x04\xdb\x05\x02\x0f\n\r\n\x05\x05\x06\x02$\x01\x12\ - \x04\xdb\x05\x02\t\n\r\n\x05\x05\x06\x02$\x02\x12\x04\xdb\x05\x0c\x0e\n\ - \x0c\n\x04\x05\x06\x02%\x12\x04\xdc\x05\x02\r\n\r\n\x05\x05\x06\x02%\x01\ - \x12\x04\xdc\x05\x02\x08\n\r\n\x05\x05\x06\x02%\x02\x12\x04\xdc\x05\x0b\ - \x0c\n\x0c\n\x04\x05\x06\x02&\x12\x04\xdd\x05\x02\x0c\n\r\n\x05\x05\x06\ - \x02&\x01\x12\x04\xdd\x05\x02\x06\n\r\n\x05\x05\x06\x02&\x02\x12\x04\xdd\ - \x05\t\x0b\n\x0c\n\x04\x05\x06\x02'\x12\x04\xde\x05\x02\x0c\n\r\n\x05\ - \x05\x06\x02'\x01\x12\x04\xde\x05\x02\x06\n\r\n\x05\x05\x06\x02'\x02\x12\ - \x04\xde\x05\t\x0b\n\x0c\n\x04\x05\x06\x02(\x12\x04\xdf\x05\x02\x12\n\r\ - \n\x05\x05\x06\x02(\x01\x12\x04\xdf\x05\x02\x0c\n\r\n\x05\x05\x06\x02(\ - \x02\x12\x04\xdf\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02)\x12\x04\xe0\x05\ - \x02\x0f\n\r\n\x05\x05\x06\x02)\x01\x12\x04\xe0\x05\x02\t\n\r\n\x05\x05\ - \x06\x02)\x02\x12\x04\xe0\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02*\x12\x04\ - \xe1\x05\x02\r\n\r\n\x05\x05\x06\x02*\x01\x12\x04\xe1\x05\x02\x07\n\r\n\ - \x05\x05\x06\x02*\x02\x12\x04\xe1\x05\n\x0c\n\x0c\n\x04\x05\x06\x02+\x12\ - \x04\xe2\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\x01\x12\x04\xe2\x05\x02\x05\ - \n\r\n\x05\x05\x06\x02+\x02\x12\x04\xe2\x05\x08\n\n\x0c\n\x04\x05\x06\ - \x02,\x12\x04\xe3\x05\x02\t\n\r\n\x05\x05\x06\x02,\x01\x12\x04\xe3\x05\ - \x02\x03\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xe3\x05\x06\x08\n\x0c\n\x04\ - \x05\x06\x02-\x12\x04\xe4\x05\x02\x0c\n\r\n\x05\x05\x06\x02-\x01\x12\x04\ - \xe4\x05\x02\x06\n\r\n\x05\x05\x06\x02-\x02\x12\x04\xe4\x05\t\x0b\n\x0c\ - \n\x04\x05\x06\x02.\x12\x04\xe5\x05\x02\x0b\n\r\n\x05\x05\x06\x02.\x01\ - \x12\x04\xe5\x05\x02\x06\n\r\n\x05\x05\x06\x02.\x02\x12\x04\xe5\x05\t\n\ - \n\x0c\n\x04\x05\x06\x02/\x12\x04\xe6\x05\x02\x12\n\r\n\x05\x05\x06\x02/\ - \x01\x12\x04\xe6\x05\x02\x0c\n\r\n\x05\x05\x06\x02/\x02\x12\x04\xe6\x05\ - \x0f\x11\n\x0c\n\x04\x05\x06\x020\x12\x04\xe7\x05\x02\x17\n\r\n\x05\x05\ - \x06\x020\x01\x12\x04\xe7\x05\x02\x11\n\r\n\x05\x05\x06\x020\x02\x12\x04\ - \xe7\x05\x14\x16\n\x0c\n\x04\x05\x06\x021\x12\x04\xe8\x05\x02\x0f\n\r\n\ - \x05\x05\x06\x021\x01\x12\x04\xe8\x05\x02\t\n\r\n\x05\x05\x06\x021\x02\ - \x12\x04\xe8\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x022\x12\x04\xe9\x05\x02\ - \x0e\n\r\n\x05\x05\x06\x022\x01\x12\x04\xe9\x05\x02\x07\n\r\n\x05\x05\ - \x06\x022\x02\x12\x04\xe9\x05\x0b\r\n\x0c\n\x04\x05\x06\x023\x12\x04\xea\ - \x05\x02\x11\n\r\n\x05\x05\x06\x023\x01\x12\x04\xea\x05\x02\n\n\r\n\x05\ - \x05\x06\x023\x02\x12\x04\xea\x05\r\x10\n\x0c\n\x04\x05\x06\x024\x12\x04\ - \xeb\x05\x02\r\n\r\n\x05\x05\x06\x024\x01\x12\x04\xeb\x05\x02\x08\n\r\n\ - \x05\x05\x06\x024\x02\x12\x04\xeb\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x025\ - \x12\x04\xec\x05\x02\r\n\r\n\x05\x05\x06\x025\x01\x12\x04\xec\x05\x02\ - \x07\n\r\n\x05\x05\x06\x025\x02\x12\x04\xec\x05\n\x0c\n\x0c\n\x04\x05\ - \x06\x026\x12\x04\xed\x05\x02\x0c\n\r\n\x05\x05\x06\x026\x01\x12\x04\xed\ - \x05\x02\x06\n\r\n\x05\x05\x06\x026\x02\x12\x04\xed\x05\t\x0b\n\x0c\n\ - \x04\x05\x06\x027\x12\x04\xee\x05\x02\x0c\n\r\n\x05\x05\x06\x027\x01\x12\ - \x04\xee\x05\x02\x06\n\r\n\x05\x05\x06\x027\x02\x12\x04\xee\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x028\x12\x04\xef\x05\x02\x0b\n\r\n\x05\x05\x06\x028\ - \x01\x12\x04\xef\x05\x02\x05\n\r\n\x05\x05\x06\x028\x02\x12\x04\xef\x05\ - \x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\xf0\x05\x02\r\n\r\n\x05\x05\x06\ - \x029\x01\x12\x04\xf0\x05\x02\x06\n\r\n\x05\x05\x06\x029\x02\x12\x04\xf0\ - \x05\t\x0c\n\x0c\n\x04\x05\x06\x02:\x12\x04\xf1\x05\x02\x10\n\r\n\x05\ - \x05\x06\x02:\x01\x12\x04\xf1\x05\x02\n\n\r\n\x05\x05\x06\x02:\x02\x12\ - \x04\xf1\x05\r\x0f\n\x0c\n\x04\x05\x06\x02;\x12\x04\xf2\x05\x02\x10\n\r\ - \n\x05\x05\x06\x02;\x01\x12\x04\xf2\x05\x02\n\n\r\n\x05\x05\x06\x02;\x02\ - \x12\x04\xf2\x05\r\x0f\n\x0c\n\x04\x05\x06\x02<\x12\x04\xf3\x05\x02\x0e\ - \n\r\n\x05\x05\x06\x02<\x01\x12\x04\xf3\x05\x02\x08\n\r\n\x05\x05\x06\ - \x02<\x02\x12\x04\xf3\x05\x0b\r\n(\n\x04\x05\x06\x02=\x12\x04\xf4\x05\ + \x01\x12\x04\xca\x05\x02\x05\n\r\n\x05\x05\x06\x02\r\x02\x12\x04\xca\x05\ + \x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\xcb\x05\x02\x0b\n\r\n\x05\x05\ + \x06\x02\x0e\x01\x12\x04\xcb\x05\x02\x05\n\r\n\x05\x05\x06\x02\x0e\x02\ + \x12\x04\xcb\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x0f\x12\x04\xcc\x05\x02\r\ + \n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\xcc\x05\x02\x08\n\r\n\x05\x05\x06\ + \x02\x0f\x02\x12\x04\xcc\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x10\x12\x04\ + \xcd\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x01\x12\x04\xcd\x05\x02\t\n\r\ + \n\x05\x05\x06\x02\x10\x02\x12\x04\xcd\x05\x0c\r\n\x0c\n\x04\x05\x06\x02\ + \x11\x12\x04\xce\x05\x02\x14\n\r\n\x05\x05\x06\x02\x11\x01\x12\x04\xce\ + \x05\x02\x0e\n\r\n\x05\x05\x06\x02\x11\x02\x12\x04\xce\x05\x11\x13\n\x0c\ + \n\x04\x05\x06\x02\x12\x12\x04\xcf\x05\x02\x11\n\r\n\x05\x05\x06\x02\x12\ + \x01\x12\x04\xcf\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x12\x02\x12\x04\xcf\ + \x05\x0f\x10\n\x0c\n\x04\x05\x06\x02\x13\x12\x04\xd0\x05\x02\x0b\n\r\n\ + \x05\x05\x06\x02\x13\x01\x12\x04\xd0\x05\x02\x05\n\r\n\x05\x05\x06\x02\ + \x13\x02\x12\x04\xd0\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x14\x12\x04\xd1\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02\x14\x01\x12\x04\xd1\x05\x02\x06\n\r\n\ + \x05\x05\x06\x02\x14\x02\x12\x04\xd1\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\ + \x15\x12\x04\xd2\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x15\x01\x12\x04\xd2\ + \x05\x02\x06\n\r\n\x05\x05\x06\x02\x15\x02\x12\x04\xd2\x05\t\n\n\x0c\n\ + \x04\x05\x06\x02\x16\x12\x04\xd3\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x16\ + \x01\x12\x04\xd3\x05\x02\x08\n\r\n\x05\x05\x06\x02\x16\x02\x12\x04\xd3\ + \x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x17\x12\x04\xd4\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x17\x01\x12\x04\xd4\x05\x02\x06\n\r\n\x05\x05\x06\x02\x17\ + \x02\x12\x04\xd4\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x18\x12\x04\xd5\x05\ + \x02\x12\n\r\n\x05\x05\x06\x02\x18\x01\x12\x04\xd5\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x18\x02\x12\x04\xd5\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x19\ + \x12\x04\xd6\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x19\x01\x12\x04\xd6\x05\ + \x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\x04\xd6\x05\x0b\r\n\x0c\n\x04\ + \x05\x06\x02\x1a\x12\x04\xd7\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x1a\x01\ + \x12\x04\xd7\x05\x02\x08\n\r\n\x05\x05\x06\x02\x1a\x02\x12\x04\xd7\x05\ + \x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\xd8\x05\x02\x0e\n\r\n\x05\x05\ + \x06\x02\x1b\x01\x12\x04\xd8\x05\x02\x08\n\r\n\x05\x05\x06\x02\x1b\x02\ + \x12\x04\xd8\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1c\x12\x04\xd9\x05\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x1c\x01\x12\x04\xd9\x05\x02\x08\n\r\n\x05\x05\ + \x06\x02\x1c\x02\x12\x04\xd9\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1d\x12\ + \x04\xda\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1d\x01\x12\x04\xda\x05\x02\ + \x06\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\xda\x05\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x1e\x12\x04\xdb\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1e\x01\x12\ + \x04\xdb\x05\x02\x06\n\r\n\x05\x05\x06\x02\x1e\x02\x12\x04\xdb\x05\t\x0b\ + \n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xdc\x05\x02\x0f\n\r\n\x05\x05\x06\ + \x02\x1f\x01\x12\x04\xdc\x05\x02\t\n\r\n\x05\x05\x06\x02\x1f\x02\x12\x04\ + \xdc\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x20\x12\x04\xdd\x05\x02\x12\n\r\ + \n\x05\x05\x06\x02\x20\x01\x12\x04\xdd\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x20\x02\x12\x04\xdd\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02!\x12\x04\xde\ + \x05\x02\x12\n\r\n\x05\x05\x06\x02!\x01\x12\x04\xde\x05\x02\x0c\n\r\n\ + \x05\x05\x06\x02!\x02\x12\x04\xde\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\"\ + \x12\x04\xdf\x05\x02\x12\n\r\n\x05\x05\x06\x02\"\x01\x12\x04\xdf\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xdf\x05\x0f\x11\n\x0c\n\x04\x05\ + \x06\x02#\x12\x04\xe0\x05\x02\n\n\r\n\x05\x05\x06\x02#\x01\x12\x04\xe0\ + \x05\x02\x04\n\r\n\x05\x05\x06\x02#\x02\x12\x04\xe0\x05\x07\t\n\x0c\n\ + \x04\x05\x06\x02$\x12\x04\xe1\x05\x02\x0f\n\r\n\x05\x05\x06\x02$\x01\x12\ + \x04\xe1\x05\x02\t\n\r\n\x05\x05\x06\x02$\x02\x12\x04\xe1\x05\x0c\x0e\n\ + \x0c\n\x04\x05\x06\x02%\x12\x04\xe2\x05\x02\r\n\r\n\x05\x05\x06\x02%\x01\ + \x12\x04\xe2\x05\x02\x08\n\r\n\x05\x05\x06\x02%\x02\x12\x04\xe2\x05\x0b\ + \x0c\n\x0c\n\x04\x05\x06\x02&\x12\x04\xe3\x05\x02\x0c\n\r\n\x05\x05\x06\ + \x02&\x01\x12\x04\xe3\x05\x02\x06\n\r\n\x05\x05\x06\x02&\x02\x12\x04\xe3\ + \x05\t\x0b\n\x0c\n\x04\x05\x06\x02'\x12\x04\xe4\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02'\x01\x12\x04\xe4\x05\x02\x06\n\r\n\x05\x05\x06\x02'\x02\x12\ + \x04\xe4\x05\t\x0b\n\x0c\n\x04\x05\x06\x02(\x12\x04\xe5\x05\x02\x12\n\r\ + \n\x05\x05\x06\x02(\x01\x12\x04\xe5\x05\x02\x0c\n\r\n\x05\x05\x06\x02(\ + \x02\x12\x04\xe5\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02)\x12\x04\xe6\x05\ + \x02\x0f\n\r\n\x05\x05\x06\x02)\x01\x12\x04\xe6\x05\x02\t\n\r\n\x05\x05\ + \x06\x02)\x02\x12\x04\xe6\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02*\x12\x04\ + \xe7\x05\x02\r\n\r\n\x05\x05\x06\x02*\x01\x12\x04\xe7\x05\x02\x07\n\r\n\ + \x05\x05\x06\x02*\x02\x12\x04\xe7\x05\n\x0c\n\x0c\n\x04\x05\x06\x02+\x12\ + \x04\xe8\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\x01\x12\x04\xe8\x05\x02\x05\ + \n\r\n\x05\x05\x06\x02+\x02\x12\x04\xe8\x05\x08\n\n\x0c\n\x04\x05\x06\ + \x02,\x12\x04\xe9\x05\x02\t\n\r\n\x05\x05\x06\x02,\x01\x12\x04\xe9\x05\ + \x02\x03\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xe9\x05\x06\x08\n\x0c\n\x04\ + \x05\x06\x02-\x12\x04\xea\x05\x02\x0c\n\r\n\x05\x05\x06\x02-\x01\x12\x04\ + \xea\x05\x02\x06\n\r\n\x05\x05\x06\x02-\x02\x12\x04\xea\x05\t\x0b\n\x0c\ + \n\x04\x05\x06\x02.\x12\x04\xeb\x05\x02\x0b\n\r\n\x05\x05\x06\x02.\x01\ + \x12\x04\xeb\x05\x02\x06\n\r\n\x05\x05\x06\x02.\x02\x12\x04\xeb\x05\t\n\ + \n\x0c\n\x04\x05\x06\x02/\x12\x04\xec\x05\x02\x12\n\r\n\x05\x05\x06\x02/\ + \x01\x12\x04\xec\x05\x02\x0c\n\r\n\x05\x05\x06\x02/\x02\x12\x04\xec\x05\ + \x0f\x11\n\x0c\n\x04\x05\x06\x020\x12\x04\xed\x05\x02\x17\n\r\n\x05\x05\ + \x06\x020\x01\x12\x04\xed\x05\x02\x11\n\r\n\x05\x05\x06\x020\x02\x12\x04\ + \xed\x05\x14\x16\n\x0c\n\x04\x05\x06\x021\x12\x04\xee\x05\x02\x0f\n\r\n\ + \x05\x05\x06\x021\x01\x12\x04\xee\x05\x02\t\n\r\n\x05\x05\x06\x021\x02\ + \x12\x04\xee\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x022\x12\x04\xef\x05\x02\ + \x0e\n\r\n\x05\x05\x06\x022\x01\x12\x04\xef\x05\x02\x07\n\r\n\x05\x05\ + \x06\x022\x02\x12\x04\xef\x05\x0b\r\n\x0c\n\x04\x05\x06\x023\x12\x04\xf0\ + \x05\x02\x11\n\r\n\x05\x05\x06\x023\x01\x12\x04\xf0\x05\x02\n\n\r\n\x05\ + \x05\x06\x023\x02\x12\x04\xf0\x05\r\x10\n\x0c\n\x04\x05\x06\x024\x12\x04\ + \xf1\x05\x02\r\n\r\n\x05\x05\x06\x024\x01\x12\x04\xf1\x05\x02\x08\n\r\n\ + \x05\x05\x06\x024\x02\x12\x04\xf1\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x025\ + \x12\x04\xf2\x05\x02\r\n\r\n\x05\x05\x06\x025\x01\x12\x04\xf2\x05\x02\ + \x07\n\r\n\x05\x05\x06\x025\x02\x12\x04\xf2\x05\n\x0c\n\x0c\n\x04\x05\ + \x06\x026\x12\x04\xf3\x05\x02\x0c\n\r\n\x05\x05\x06\x026\x01\x12\x04\xf3\ + \x05\x02\x06\n\r\n\x05\x05\x06\x026\x02\x12\x04\xf3\x05\t\x0b\n\x0c\n\ + \x04\x05\x06\x027\x12\x04\xf4\x05\x02\x0c\n\r\n\x05\x05\x06\x027\x01\x12\ + \x04\xf4\x05\x02\x06\n\r\n\x05\x05\x06\x027\x02\x12\x04\xf4\x05\t\x0b\n\ + \x0c\n\x04\x05\x06\x028\x12\x04\xf5\x05\x02\x0b\n\r\n\x05\x05\x06\x028\ + \x01\x12\x04\xf5\x05\x02\x05\n\r\n\x05\x05\x06\x028\x02\x12\x04\xf5\x05\ + \x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\xf6\x05\x02\r\n\r\n\x05\x05\x06\ + \x029\x01\x12\x04\xf6\x05\x02\x06\n\r\n\x05\x05\x06\x029\x02\x12\x04\xf6\ + \x05\t\x0c\n\x0c\n\x04\x05\x06\x02:\x12\x04\xf7\x05\x02\x10\n\r\n\x05\ + \x05\x06\x02:\x01\x12\x04\xf7\x05\x02\n\n\r\n\x05\x05\x06\x02:\x02\x12\ + \x04\xf7\x05\r\x0f\n\x0c\n\x04\x05\x06\x02;\x12\x04\xf8\x05\x02\x10\n\r\ + \n\x05\x05\x06\x02;\x01\x12\x04\xf8\x05\x02\n\n\r\n\x05\x05\x06\x02;\x02\ + \x12\x04\xf8\x05\r\x0f\n\x0c\n\x04\x05\x06\x02<\x12\x04\xf9\x05\x02\x0e\ + \n\r\n\x05\x05\x06\x02<\x01\x12\x04\xf9\x05\x02\x08\n\r\n\x05\x05\x06\ + \x02<\x02\x12\x04\xf9\x05\x0b\r\n(\n\x04\x05\x06\x02=\x12\x04\xfa\x05\ \x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\x05\x05\x06\x02=\x01\ - \x12\x04\xf4\x05\x02\x08\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xf4\x05\x0b\ - \x0e\n\x0c\n\x04\x05\x06\x02>\x12\x04\xf5\x05\x02\x0b\n\r\n\x05\x05\x06\ - \x02>\x01\x12\x04\xf5\x05\x02\x05\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xf5\ - \x05\x08\n\n\x0c\n\x04\x05\x06\x02?\x12\x04\xf6\x05\x02\r\n\r\n\x05\x05\ - \x06\x02?\x01\x12\x04\xf6\x05\x02\x07\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ - \xf6\x05\n\x0c\n\x0c\n\x04\x05\x06\x02@\x12\x04\xf7\x05\x02\x13\n\r\n\ - \x05\x05\x06\x02@\x01\x12\x04\xf7\x05\x02\r\n\r\n\x05\x05\x06\x02@\x02\ - \x12\x04\xf7\x05\x10\x12\n\x0c\n\x04\x05\x06\x02A\x12\x04\xf8\x05\x02\ - \x15\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xf8\x05\x02\x0f\n\r\n\x05\x05\ - \x06\x02A\x02\x12\x04\xf8\x05\x12\x14\n\x0c\n\x04\x05\x06\x02B\x12\x04\ - \xf9\x05\x02\x0e\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xf9\x05\x02\x08\n\r\ - \n\x05\x05\x06\x02B\x02\x12\x04\xf9\x05\x0b\r\n\x0c\n\x04\x05\x06\x02C\ - \x12\x04\xfa\x05\x02\x0b\n\r\n\x05\x05\x06\x02C\x01\x12\x04\xfa\x05\x02\ - \x05\n\r\n\x05\x05\x06\x02C\x02\x12\x04\xfa\x05\x08\n\n\x0c\n\x04\x05\ - \x06\x02D\x12\x04\xfb\x05\x02\r\n\r\n\x05\x05\x06\x02D\x01\x12\x04\xfb\ - \x05\x02\x07\n\r\n\x05\x05\x06\x02D\x02\x12\x04\xfb\x05\n\x0c\n\x0c\n\ - \x04\x05\x06\x02E\x12\x04\xfc\x05\x02\x0c\n\r\n\x05\x05\x06\x02E\x01\x12\ - \x04\xfc\x05\x02\x06\n\r\n\x05\x05\x06\x02E\x02\x12\x04\xfc\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x02F\x12\x04\xfd\x05\x02\x12\n\r\n\x05\x05\x06\x02F\ - \x01\x12\x04\xfd\x05\x02\x0c\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xfd\x05\ - \x0f\x11\n\x0c\n\x04\x05\x06\x02G\x12\x04\xfe\x05\x02\x0e\n\r\n\x05\x05\ - \x06\x02G\x01\x12\x04\xfe\x05\x02\x08\n\r\n\x05\x05\x06\x02G\x02\x12\x04\ - \xfe\x05\x0b\r\n\x0c\n\x04\x05\x06\x02H\x12\x04\xff\x05\x02\x11\n\r\n\ - \x05\x05\x06\x02H\x01\x12\x04\xff\x05\x02\n\n\r\n\x05\x05\x06\x02H\x02\ - \x12\x04\xff\x05\r\x10\n\x0c\n\x04\x05\x06\x02I\x12\x04\x80\x06\x02\x0e\ - \n\r\n\x05\x05\x06\x02I\x01\x12\x04\x80\x06\x02\x08\n\r\n\x05\x05\x06\ - \x02I\x02\x12\x04\x80\x06\x0b\r\n\x0c\n\x04\x05\x06\x02J\x12\x04\x81\x06\ - \x02\t\n\r\n\x05\x05\x06\x02J\x01\x12\x04\x81\x06\x02\x03\n\r\n\x05\x05\ - \x06\x02J\x02\x12\x04\x81\x06\x06\x08\n\x0c\n\x04\x05\x06\x02K\x12\x04\ - \x82\x06\x02\x0e\n\r\n\x05\x05\x06\x02K\x01\x12\x04\x82\x06\x02\x08\n\r\ - \n\x05\x05\x06\x02K\x02\x12\x04\x82\x06\x0b\r\n\x0c\n\x04\x05\x06\x02L\ - \x12\x04\x83\x06\x02\x0c\n\r\n\x05\x05\x06\x02L\x01\x12\x04\x83\x06\x02\ - \x06\n\r\n\x05\x05\x06\x02L\x02\x12\x04\x83\x06\t\x0b\n\x0c\n\x04\x05\ - \x06\x02M\x12\x04\x84\x06\x02\r\n\r\n\x05\x05\x06\x02M\x01\x12\x04\x84\ - \x06\x02\x07\n\r\n\x05\x05\x06\x02M\x02\x12\x04\x84\x06\n\x0c\n2\n\x04\ - \x05\x06\x02N\x12\x04\x85\x06\x02\x0e\"$\x20Internal\x20language\x20for\ - \x20testing\x20SCIP\n\n\r\n\x05\x05\x06\x02N\x01\x12\x04\x85\x06\x02\x07\ - \n\r\n\x05\x05\x06\x02N\x02\x12\x04\x85\x06\n\r\n\x0c\n\x04\x05\x06\x02O\ - \x12\x04\x86\x06\x02\x0c\n\r\n\x05\x05\x06\x02O\x01\x12\x04\x86\x06\x02\ - \x06\n\r\n\x05\x05\x06\x02O\x02\x12\x04\x86\x06\t\x0b\n\x0c\n\x04\x05\ - \x06\x02P\x12\x04\x87\x06\x02\x0c\n\r\n\x05\x05\x06\x02P\x01\x12\x04\x87\ - \x06\x02\x06\n\r\n\x05\x05\x06\x02P\x02\x12\x04\x87\x06\t\x0b\n\x0c\n\ - \x04\x05\x06\x02Q\x12\x04\x88\x06\x02\x0c\n\r\n\x05\x05\x06\x02Q\x01\x12\ - \x04\x88\x06\x02\x06\n\r\n\x05\x05\x06\x02Q\x02\x12\x04\x88\x06\t\x0b\n\ - \x0c\n\x04\x05\x06\x02R\x12\x04\x89\x06\x02\x0b\n\r\n\x05\x05\x06\x02R\ - \x01\x12\x04\x89\x06\x02\x05\n\r\n\x05\x05\x06\x02R\x02\x12\x04\x89\x06\ - \x08\n\n\x0c\n\x04\x05\x06\x02S\x12\x04\x8a\x06\x02\x0c\n\r\n\x05\x05\ - \x06\x02S\x01\x12\x04\x8a\x06\x02\x06\n\r\n\x05\x05\x06\x02S\x02\x12\x04\ - \x8a\x06\t\x0b\n\x0c\n\x04\x05\x06\x02T\x12\x04\x8b\x06\x02\x0b\n\r\n\ - \x05\x05\x06\x02T\x01\x12\x04\x8b\x06\x02\x05\n\r\n\x05\x05\x06\x02T\x02\ - \x12\x04\x8b\x06\x08\n\n\x0c\n\x04\x05\x06\x02U\x12\x04\x8c\x06\x02\x0b\ - \n\r\n\x05\x05\x06\x02U\x01\x12\x04\x8c\x06\x02\x05\n\r\n\x05\x05\x06\ - \x02U\x02\x12\x04\x8c\x06\x08\n\n\x0c\n\x04\x05\x06\x02V\x12\x04\x8d\x06\ - \x02\x0c\n\r\n\x05\x05\x06\x02V\x01\x12\x04\x8d\x06\x02\x06\n\r\n\x05\ - \x05\x06\x02V\x02\x12\x04\x8d\x06\t\x0b\n\x0c\n\x04\x05\x06\x02W\x12\x04\ - \x8e\x06\x02\x0c\n\r\n\x05\x05\x06\x02W\x01\x12\x04\x8e\x06\x02\x07\n\r\ - \n\x05\x05\x06\x02W\x02\x12\x04\x8e\x06\n\x0b\n\x0c\n\x04\x05\x06\x02X\ - \x12\x04\x8f\x06\x02\x0e\n\r\n\x05\x05\x06\x02X\x01\x12\x04\x8f\x06\x02\ - \x08\n\r\n\x05\x05\x06\x02X\x02\x12\x04\x8f\x06\x0b\r\n\x14\n\x04\x05\ - \x06\x02Y\x12\x04\x90\x06\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\x06\x02Y\ - \x01\x12\x04\x90\x06\x02\r\n\r\n\x05\x05\x06\x02Y\x02\x12\x04\x90\x06\ - \x10\x12\n\x0c\n\x04\x05\x06\x02Z\x12\x04\x91\x06\x02\x0f\n\r\n\x05\x05\ - \x06\x02Z\x01\x12\x04\x91\x06\x02\t\n\r\n\x05\x05\x06\x02Z\x02\x12\x04\ - \x91\x06\x0c\x0e\n\x0c\n\x04\x05\x06\x02[\x12\x04\x92\x06\x02\x0e\n\r\n\ - \x05\x05\x06\x02[\x01\x12\x04\x92\x06\x02\x07\n\r\n\x05\x05\x06\x02[\x02\ - \x12\x04\x92\x06\n\r\n\x0c\n\x04\x05\x06\x02\\\x12\x04\x93\x06\x02\x10\n\ - \r\n\x05\x05\x06\x02\\\x01\x12\x04\x93\x06\x02\n\n\r\n\x05\x05\x06\x02\\\ - \x02\x12\x04\x93\x06\r\x0f\n\x0c\n\x04\x05\x06\x02]\x12\x04\x94\x06\x02\ - \x0f\n\r\n\x05\x05\x06\x02]\x01\x12\x04\x94\x06\x02\x08\n\r\n\x05\x05\ - \x06\x02]\x02\x12\x04\x94\x06\x0b\x0e\n\x0c\n\x04\x05\x06\x02^\x12\x04\ - \x95\x06\x02\x0c\n\r\n\x05\x05\x06\x02^\x01\x12\x04\x95\x06\x02\x07\n\r\ - \n\x05\x05\x06\x02^\x02\x12\x04\x95\x06\n\x0b\n\x0c\n\x04\x05\x06\x02_\ - \x12\x04\x96\x06\x02\x0c\n\r\n\x05\x05\x06\x02_\x01\x12\x04\x96\x06\x02\ - \x05\n\r\n\x05\x05\x06\x02_\x02\x12\x04\x96\x06\x08\x0b\n\x0c\n\x04\x05\ - \x06\x02`\x12\x04\x97\x06\x02\x0c\n\r\n\x05\x05\x06\x02`\x01\x12\x04\x97\ - \x06\x02\x06\n\r\n\x05\x05\x06\x02`\x02\x12\x04\x97\x06\t\x0b\n\x0c\n\ - \x04\x05\x06\x02a\x12\x04\x98\x06\x02\x0b\n\r\n\x05\x05\x06\x02a\x01\x12\ - \x04\x98\x06\x02\x05\n\r\n\x05\x05\x06\x02a\x02\x12\x04\x98\x06\x08\n\n\ - \x0c\n\x04\x05\x06\x02b\x12\x04\x99\x06\x02\x0f\n\r\n\x05\x05\x06\x02b\ - \x01\x12\x04\x99\x06\x02\x08\n\r\n\x05\x05\x06\x02b\x02\x12\x04\x99\x06\ - \x0b\x0e\n\x0c\n\x04\x05\x06\x02c\x12\x04\x9a\x06\x02\x12\n\r\n\x05\x05\ - \x06\x02c\x01\x12\x04\x9a\x06\x02\x0c\n\r\n\x05\x05\x06\x02c\x02\x12\x04\ - \x9a\x06\x0f\x11\n\x0c\n\x04\x05\x06\x02d\x12\x04\x9b\x06\x02\x17\n\r\n\ - \x05\x05\x06\x02d\x01\x12\x04\x9b\x06\x02\x11\n\r\n\x05\x05\x06\x02d\x02\ - \x12\x04\x9b\x06\x14\x16\n\x0c\n\x04\x05\x06\x02e\x12\x04\x9c\x06\x02\ - \x10\n\r\n\x05\x05\x06\x02e\x01\x12\x04\x9c\x06\x02\t\n\r\n\x05\x05\x06\ - \x02e\x02\x12\x04\x9c\x06\x0c\x0f\n\x0c\n\x04\x05\x06\x02f\x12\x04\x9d\ - \x06\x02\r\n\r\n\x05\x05\x06\x02f\x01\x12\x04\x9d\x06\x02\x06\n\r\n\x05\ - \x05\x06\x02f\x02\x12\x04\x9d\x06\t\x0c\n\x0c\n\x04\x05\x06\x02g\x12\x04\ - \x9e\x06\x02\x13\n\r\n\x05\x05\x06\x02g\x01\x12\x04\x9e\x06\x02\r\n\r\n\ - \x05\x05\x06\x02g\x02\x12\x04\x9e\x06\x10\x12\n\x0c\n\x04\x05\x06\x02h\ - \x12\x04\x9f\x06\x02\x0b\n\r\n\x05\x05\x06\x02h\x01\x12\x04\x9f\x06\x02\ - \x05\n\r\n\x05\x05\x06\x02h\x02\x12\x04\x9f\x06\x08\n\n\x0c\n\x04\x05\ - \x06\x02i\x12\x04\xa0\x06\x02\x0f\n\r\n\x05\x05\x06\x02i\x01\x12\x04\xa0\ - \x06\x02\t\n\r\n\x05\x05\x06\x02i\x02\x12\x04\xa0\x06\x0c\x0e\n\x0c\n\ - \x04\x05\x06\x02j\x12\x04\xa1\x06\x02\x0b\n\r\n\x05\x05\x06\x02j\x01\x12\ - \x04\xa1\x06\x02\x05\n\r\n\x05\x05\x06\x02j\x02\x12\x04\xa1\x06\x08\n\n\ - \x0c\n\x04\x05\x06\x02k\x12\x04\xa2\x06\x02\x0b\n\r\n\x05\x05\x06\x02k\ - \x01\x12\x04\xa2\x06\x02\x05\n\r\n\x05\x05\x06\x02k\x02\x12\x04\xa2\x06\ - \x08\n\n\x0c\n\x04\x05\x06\x02l\x12\x04\xa3\x06\x02\x0c\n\r\n\x05\x05\ - \x06\x02l\x01\x12\x04\xa3\x06\x02\x06\n\r\n\x05\x05\x06\x02l\x02\x12\x04\ - \xa3\x06\t\x0b\n\x93\x03\n\x04\x05\x06\x02m\x12\x04\xa4\x06\x02\x0b\"\ + \x12\x04\xfa\x05\x02\x08\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xfa\x05\x0b\ + \x0e\n\x0c\n\x04\x05\x06\x02>\x12\x04\xfb\x05\x02\x0b\n\r\n\x05\x05\x06\ + \x02>\x01\x12\x04\xfb\x05\x02\x05\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xfb\ + \x05\x08\n\n\x0c\n\x04\x05\x06\x02?\x12\x04\xfc\x05\x02\r\n\r\n\x05\x05\ + \x06\x02?\x01\x12\x04\xfc\x05\x02\x07\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ + \xfc\x05\n\x0c\n\x0c\n\x04\x05\x06\x02@\x12\x04\xfd\x05\x02\x13\n\r\n\ + \x05\x05\x06\x02@\x01\x12\x04\xfd\x05\x02\r\n\r\n\x05\x05\x06\x02@\x02\ + \x12\x04\xfd\x05\x10\x12\n\x0c\n\x04\x05\x06\x02A\x12\x04\xfe\x05\x02\ + \x15\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xfe\x05\x02\x0f\n\r\n\x05\x05\ + \x06\x02A\x02\x12\x04\xfe\x05\x12\x14\n\x0c\n\x04\x05\x06\x02B\x12\x04\ + \xff\x05\x02\x0e\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xff\x05\x02\x08\n\r\ + \n\x05\x05\x06\x02B\x02\x12\x04\xff\x05\x0b\r\n\x0c\n\x04\x05\x06\x02C\ + \x12\x04\x80\x06\x02\x0b\n\r\n\x05\x05\x06\x02C\x01\x12\x04\x80\x06\x02\ + \x05\n\r\n\x05\x05\x06\x02C\x02\x12\x04\x80\x06\x08\n\n\x0c\n\x04\x05\ + \x06\x02D\x12\x04\x81\x06\x02\r\n\r\n\x05\x05\x06\x02D\x01\x12\x04\x81\ + \x06\x02\x07\n\r\n\x05\x05\x06\x02D\x02\x12\x04\x81\x06\n\x0c\n\x0c\n\ + \x04\x05\x06\x02E\x12\x04\x82\x06\x02\x0c\n\r\n\x05\x05\x06\x02E\x01\x12\ + \x04\x82\x06\x02\x06\n\r\n\x05\x05\x06\x02E\x02\x12\x04\x82\x06\t\x0b\n\ + \x0c\n\x04\x05\x06\x02F\x12\x04\x83\x06\x02\x12\n\r\n\x05\x05\x06\x02F\ + \x01\x12\x04\x83\x06\x02\x0c\n\r\n\x05\x05\x06\x02F\x02\x12\x04\x83\x06\ + \x0f\x11\n\x0c\n\x04\x05\x06\x02G\x12\x04\x84\x06\x02\x0e\n\r\n\x05\x05\ + \x06\x02G\x01\x12\x04\x84\x06\x02\x08\n\r\n\x05\x05\x06\x02G\x02\x12\x04\ + \x84\x06\x0b\r\n\x0c\n\x04\x05\x06\x02H\x12\x04\x85\x06\x02\x11\n\r\n\ + \x05\x05\x06\x02H\x01\x12\x04\x85\x06\x02\n\n\r\n\x05\x05\x06\x02H\x02\ + \x12\x04\x85\x06\r\x10\n\x0c\n\x04\x05\x06\x02I\x12\x04\x86\x06\x02\x0e\ + \n\r\n\x05\x05\x06\x02I\x01\x12\x04\x86\x06\x02\x08\n\r\n\x05\x05\x06\ + \x02I\x02\x12\x04\x86\x06\x0b\r\n\x0c\n\x04\x05\x06\x02J\x12\x04\x87\x06\ + \x02\t\n\r\n\x05\x05\x06\x02J\x01\x12\x04\x87\x06\x02\x03\n\r\n\x05\x05\ + \x06\x02J\x02\x12\x04\x87\x06\x06\x08\n\x0c\n\x04\x05\x06\x02K\x12\x04\ + \x88\x06\x02\x0e\n\r\n\x05\x05\x06\x02K\x01\x12\x04\x88\x06\x02\x08\n\r\ + \n\x05\x05\x06\x02K\x02\x12\x04\x88\x06\x0b\r\n\x0c\n\x04\x05\x06\x02L\ + \x12\x04\x89\x06\x02\x0c\n\r\n\x05\x05\x06\x02L\x01\x12\x04\x89\x06\x02\ + \x06\n\r\n\x05\x05\x06\x02L\x02\x12\x04\x89\x06\t\x0b\n\x0c\n\x04\x05\ + \x06\x02M\x12\x04\x8a\x06\x02\r\n\r\n\x05\x05\x06\x02M\x01\x12\x04\x8a\ + \x06\x02\x07\n\r\n\x05\x05\x06\x02M\x02\x12\x04\x8a\x06\n\x0c\n2\n\x04\ + \x05\x06\x02N\x12\x04\x8b\x06\x02\x0e\"$\x20Internal\x20language\x20for\ + \x20testing\x20SCIP\n\n\r\n\x05\x05\x06\x02N\x01\x12\x04\x8b\x06\x02\x07\ + \n\r\n\x05\x05\x06\x02N\x02\x12\x04\x8b\x06\n\r\n\x0c\n\x04\x05\x06\x02O\ + \x12\x04\x8c\x06\x02\x0c\n\r\n\x05\x05\x06\x02O\x01\x12\x04\x8c\x06\x02\ + \x06\n\r\n\x05\x05\x06\x02O\x02\x12\x04\x8c\x06\t\x0b\n\x0c\n\x04\x05\ + \x06\x02P\x12\x04\x8d\x06\x02\x0c\n\r\n\x05\x05\x06\x02P\x01\x12\x04\x8d\ + \x06\x02\x06\n\r\n\x05\x05\x06\x02P\x02\x12\x04\x8d\x06\t\x0b\n\x0c\n\ + \x04\x05\x06\x02Q\x12\x04\x8e\x06\x02\x0c\n\r\n\x05\x05\x06\x02Q\x01\x12\ + \x04\x8e\x06\x02\x06\n\r\n\x05\x05\x06\x02Q\x02\x12\x04\x8e\x06\t\x0b\n\ + \x0c\n\x04\x05\x06\x02R\x12\x04\x8f\x06\x02\x0b\n\r\n\x05\x05\x06\x02R\ + \x01\x12\x04\x8f\x06\x02\x05\n\r\n\x05\x05\x06\x02R\x02\x12\x04\x8f\x06\ + \x08\n\n\x0c\n\x04\x05\x06\x02S\x12\x04\x90\x06\x02\x0c\n\r\n\x05\x05\ + \x06\x02S\x01\x12\x04\x90\x06\x02\x06\n\r\n\x05\x05\x06\x02S\x02\x12\x04\ + \x90\x06\t\x0b\n\x0c\n\x04\x05\x06\x02T\x12\x04\x91\x06\x02\x0b\n\r\n\ + \x05\x05\x06\x02T\x01\x12\x04\x91\x06\x02\x05\n\r\n\x05\x05\x06\x02T\x02\ + \x12\x04\x91\x06\x08\n\n\x0c\n\x04\x05\x06\x02U\x12\x04\x92\x06\x02\x0b\ + \n\r\n\x05\x05\x06\x02U\x01\x12\x04\x92\x06\x02\x05\n\r\n\x05\x05\x06\ + \x02U\x02\x12\x04\x92\x06\x08\n\n\x0c\n\x04\x05\x06\x02V\x12\x04\x93\x06\ + \x02\x0c\n\r\n\x05\x05\x06\x02V\x01\x12\x04\x93\x06\x02\x06\n\r\n\x05\ + \x05\x06\x02V\x02\x12\x04\x93\x06\t\x0b\n\x0c\n\x04\x05\x06\x02W\x12\x04\ + \x94\x06\x02\x0c\n\r\n\x05\x05\x06\x02W\x01\x12\x04\x94\x06\x02\x07\n\r\ + \n\x05\x05\x06\x02W\x02\x12\x04\x94\x06\n\x0b\n\x0c\n\x04\x05\x06\x02X\ + \x12\x04\x95\x06\x02\x0e\n\r\n\x05\x05\x06\x02X\x01\x12\x04\x95\x06\x02\ + \x08\n\r\n\x05\x05\x06\x02X\x02\x12\x04\x95\x06\x0b\r\n\x14\n\x04\x05\ + \x06\x02Y\x12\x04\x96\x06\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\x06\x02Y\ + \x01\x12\x04\x96\x06\x02\r\n\r\n\x05\x05\x06\x02Y\x02\x12\x04\x96\x06\ + \x10\x12\n\x0c\n\x04\x05\x06\x02Z\x12\x04\x97\x06\x02\x0f\n\r\n\x05\x05\ + \x06\x02Z\x01\x12\x04\x97\x06\x02\t\n\r\n\x05\x05\x06\x02Z\x02\x12\x04\ + \x97\x06\x0c\x0e\n\x0c\n\x04\x05\x06\x02[\x12\x04\x98\x06\x02\x0e\n\r\n\ + \x05\x05\x06\x02[\x01\x12\x04\x98\x06\x02\x07\n\r\n\x05\x05\x06\x02[\x02\ + \x12\x04\x98\x06\n\r\n\x0c\n\x04\x05\x06\x02\\\x12\x04\x99\x06\x02\x10\n\ + \r\n\x05\x05\x06\x02\\\x01\x12\x04\x99\x06\x02\n\n\r\n\x05\x05\x06\x02\\\ + \x02\x12\x04\x99\x06\r\x0f\n\x0c\n\x04\x05\x06\x02]\x12\x04\x9a\x06\x02\ + \x0f\n\r\n\x05\x05\x06\x02]\x01\x12\x04\x9a\x06\x02\x08\n\r\n\x05\x05\ + \x06\x02]\x02\x12\x04\x9a\x06\x0b\x0e\n\x0c\n\x04\x05\x06\x02^\x12\x04\ + \x9b\x06\x02\x0c\n\r\n\x05\x05\x06\x02^\x01\x12\x04\x9b\x06\x02\x07\n\r\ + \n\x05\x05\x06\x02^\x02\x12\x04\x9b\x06\n\x0b\n\x0c\n\x04\x05\x06\x02_\ + \x12\x04\x9c\x06\x02\x0c\n\r\n\x05\x05\x06\x02_\x01\x12\x04\x9c\x06\x02\ + \x05\n\r\n\x05\x05\x06\x02_\x02\x12\x04\x9c\x06\x08\x0b\n\x0c\n\x04\x05\ + \x06\x02`\x12\x04\x9d\x06\x02\x0c\n\r\n\x05\x05\x06\x02`\x01\x12\x04\x9d\ + \x06\x02\x06\n\r\n\x05\x05\x06\x02`\x02\x12\x04\x9d\x06\t\x0b\n\x0c\n\ + \x04\x05\x06\x02a\x12\x04\x9e\x06\x02\x0b\n\r\n\x05\x05\x06\x02a\x01\x12\ + \x04\x9e\x06\x02\x05\n\r\n\x05\x05\x06\x02a\x02\x12\x04\x9e\x06\x08\n\n\ + \x0c\n\x04\x05\x06\x02b\x12\x04\x9f\x06\x02\x0f\n\r\n\x05\x05\x06\x02b\ + \x01\x12\x04\x9f\x06\x02\x08\n\r\n\x05\x05\x06\x02b\x02\x12\x04\x9f\x06\ + \x0b\x0e\n\x0c\n\x04\x05\x06\x02c\x12\x04\xa0\x06\x02\x12\n\r\n\x05\x05\ + \x06\x02c\x01\x12\x04\xa0\x06\x02\x0c\n\r\n\x05\x05\x06\x02c\x02\x12\x04\ + \xa0\x06\x0f\x11\n\x0c\n\x04\x05\x06\x02d\x12\x04\xa1\x06\x02\x17\n\r\n\ + \x05\x05\x06\x02d\x01\x12\x04\xa1\x06\x02\x11\n\r\n\x05\x05\x06\x02d\x02\ + \x12\x04\xa1\x06\x14\x16\n\x0c\n\x04\x05\x06\x02e\x12\x04\xa2\x06\x02\ + \x10\n\r\n\x05\x05\x06\x02e\x01\x12\x04\xa2\x06\x02\t\n\r\n\x05\x05\x06\ + \x02e\x02\x12\x04\xa2\x06\x0c\x0f\n\x0c\n\x04\x05\x06\x02f\x12\x04\xa3\ + \x06\x02\r\n\r\n\x05\x05\x06\x02f\x01\x12\x04\xa3\x06\x02\x06\n\r\n\x05\ + \x05\x06\x02f\x02\x12\x04\xa3\x06\t\x0c\n\x0c\n\x04\x05\x06\x02g\x12\x04\ + \xa4\x06\x02\x13\n\r\n\x05\x05\x06\x02g\x01\x12\x04\xa4\x06\x02\r\n\r\n\ + \x05\x05\x06\x02g\x02\x12\x04\xa4\x06\x10\x12\n\x0c\n\x04\x05\x06\x02h\ + \x12\x04\xa5\x06\x02\x0b\n\r\n\x05\x05\x06\x02h\x01\x12\x04\xa5\x06\x02\ + \x05\n\r\n\x05\x05\x06\x02h\x02\x12\x04\xa5\x06\x08\n\n\x0c\n\x04\x05\ + \x06\x02i\x12\x04\xa6\x06\x02\x0f\n\r\n\x05\x05\x06\x02i\x01\x12\x04\xa6\ + \x06\x02\t\n\r\n\x05\x05\x06\x02i\x02\x12\x04\xa6\x06\x0c\x0e\n\x0c\n\ + \x04\x05\x06\x02j\x12\x04\xa7\x06\x02\x0b\n\r\n\x05\x05\x06\x02j\x01\x12\ + \x04\xa7\x06\x02\x05\n\r\n\x05\x05\x06\x02j\x02\x12\x04\xa7\x06\x08\n\n\ + \x0c\n\x04\x05\x06\x02k\x12\x04\xa8\x06\x02\x0b\n\r\n\x05\x05\x06\x02k\ + \x01\x12\x04\xa8\x06\x02\x05\n\r\n\x05\x05\x06\x02k\x02\x12\x04\xa8\x06\ + \x08\n\n\x0c\n\x04\x05\x06\x02l\x12\x04\xa9\x06\x02\x0c\n\r\n\x05\x05\ + \x06\x02l\x01\x12\x04\xa9\x06\x02\x06\n\r\n\x05\x05\x06\x02l\x02\x12\x04\ + \xa9\x06\t\x0b\n\x93\x03\n\x04\x05\x06\x02m\x12\x04\xaa\x06\x02\x0b\"\ \x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\x20add\x20a\x20new\x20l\ anguage:\n\x201.\x20Copy-paste\x20the\x20\"NextLanguage\x20=\x20N\"\x20l\ ine\x20above\n\x202.\x20Increment\x20\"NextLanguage\x20=\x20N\"\x20to\ @@ -5476,7 +5489,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20above\x20using\x20alphabetical\x20order\n\x205.\x20(optional)\x20Add\ \x20a\x20brief\x20comment\x20behind\x20the\x20language\x20if\x20the\x20n\ ame\x20is\x20not\x20self-explanatory\n\n\r\n\x05\x05\x06\x02m\x01\x12\ - \x04\xa4\x06\x02\x05\n\r\n\x05\x05\x06\x02m\x02\x12\x04\xa4\x06\x08\nb\ + \x04\xaa\x06\x02\x05\n\r\n\x05\x05\x06\x02m\x02\x12\x04\xaa\x06\x08\nb\ \x06proto3\ "; diff --git a/bindings/typescript/scip.ts b/bindings/typescript/scip.ts index 32c9cd24..6531818d 100644 --- a/bindings/typescript/scip.ts +++ b/bindings/typescript/scip.ts @@ -20,7 +20,8 @@ export namespace scip { WriteAccess = 4, ReadAccess = 8, Generated = 16, - Test = 32 + Test = 32, + ForwardDefinition = 64 } export enum SyntaxKind { UnspecifiedSyntaxKind = 0, diff --git a/cmd/scip/lint.go b/cmd/scip/lint.go index 6c06fbc8..88dd8e58 100644 --- a/cmd/scip/lint.go +++ b/cmd/scip/lint.go @@ -204,6 +204,9 @@ func (st *symbolTable) addOccurrence(path string, occ *scip.Occurrence) error { if occ.Symbol == "" { return emptyStringError{what: "symbol", context: fmt.Sprintf("occurrence at %s @ %s", path, scipRangeToString(*scip.NewRange(occ.Range)))} } + if scip.SymbolRole_Definition.Matches(occ) && scip.SymbolRole_ForwardDefinition.Matches(occ) { + return forwardDefIsDefinitionError{occ.Symbol, path, *scip.NewRange(occ.Range)} + } tryInsertOccurrence := func(occMap fileOccurrenceMap) error { occKey := scipOccurrenceKey(occ) if fileOccs, ok := occMap[path]; ok { @@ -327,6 +330,17 @@ func (e missingSymbolForOccurrenceError) Error() string { " in external symbols or any document", e.path, scipRangeToString(e.occ), e.symbol) } +type forwardDefIsDefinitionError struct { + symbol string + path string + range_ scip.Range +} + +func (e forwardDefIsDefinitionError) Error() string { + return fmt.Sprintf("error: forward declaration for %v at %v @ %v was marked as definition", + e.symbol, e.path, scipRangeToString(e.range_)) +} + type duplicateOccurrenceWarning struct { symbol string path string diff --git a/cmd/scip/tests/reprolang/bindings/go/repro/ast.go b/cmd/scip/tests/reprolang/bindings/go/repro/ast.go index 05cb031f..372841fb 100644 --- a/cmd/scip/tests/reprolang/bindings/go/repro/ast.go +++ b/cmd/scip/tests/reprolang/bindings/go/repro/ast.go @@ -27,7 +27,8 @@ func (r *relationships) identifiers() []*identifier { } type referenceStatement struct { - name *identifier + name *identifier + isForwardDef bool } type identifier struct { diff --git a/cmd/scip/tests/reprolang/bindings/go/repro/parser.go b/cmd/scip/tests/reprolang/bindings/go/repro/parser.go index 8c2bd09e..5e22a0d0 100644 --- a/cmd/scip/tests/reprolang/bindings/go/repro/parser.go +++ b/cmd/scip/tests/reprolang/bindings/go/repro/parser.go @@ -62,7 +62,8 @@ func (s *reproSourceFile) loadStatements() { } case "reference_statement": s.references = append(s.references, &referenceStatement{ - name: newIdentifier(s, child.ChildByFieldName("name")), + name: newIdentifier(s, child.ChildByFieldName("name")), + isForwardDef: child.ChildByFieldName("forward_definition") != nil, }) } } diff --git a/cmd/scip/tests/reprolang/bindings/go/repro/scip.go b/cmd/scip/tests/reprolang/bindings/go/repro/scip.go index 7501cc96..10dcbb63 100644 --- a/cmd/scip/tests/reprolang/bindings/go/repro/scip.go +++ b/cmd/scip/tests/reprolang/bindings/go/repro/scip.go @@ -63,7 +63,11 @@ func (s *reproSourceFile) occurrences() []*scip.Occurrence { emit(rel.relations) } for _, ref := range s.references { - result = append(result, ref.name.occurrence(scip.SymbolRole_UnspecifiedSymbolRole)) + role := scip.SymbolRole_UnspecifiedSymbolRole + if ref.isForwardDef { + role = scip.SymbolRole_ForwardDefinition + } + result = append(result, ref.name.occurrence(role)) } return result } diff --git a/cmd/scip/tests/reprolang/grammar.js b/cmd/scip/tests/reprolang/grammar.js index 67eddd1e..1d1d3751 100644 --- a/cmd/scip/tests/reprolang/grammar.js +++ b/cmd/scip/tests/reprolang/grammar.js @@ -22,7 +22,12 @@ module.exports = grammar({ field('name', $.identifier), field('roles', repeat($._definition_relations)) ), - reference_statement: $ => seq('reference', field('name', $.identifier)), + reference_statement: $ => + seq( + 'reference', + field('forward_definition', optional('forward_definition')), + field('name', $.identifier) + ), _definition_relations: $ => choice( $.implementation_relation, diff --git a/cmd/scip/tests/reprolang/src/grammar.json b/cmd/scip/tests/reprolang/src/grammar.json index efeddbef..cd55a797 100644 --- a/cmd/scip/tests/reprolang/src/grammar.json +++ b/cmd/scip/tests/reprolang/src/grammar.json @@ -99,6 +99,22 @@ "type": "STRING", "value": "reference" }, + { + "type": "FIELD", + "name": "forward_definition", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "forward_definition" + }, + { + "type": "BLANK" + } + ] + } + }, { "type": "FIELD", "name": "name", diff --git a/cmd/scip/tests/reprolang/src/node-types.json b/cmd/scip/tests/reprolang/src/node-types.json index 78239757..f4154347 100644 --- a/cmd/scip/tests/reprolang/src/node-types.json +++ b/cmd/scip/tests/reprolang/src/node-types.json @@ -145,6 +145,16 @@ "type": "reference_statement", "named": true, "fields": { + "forward_definition": { + "multiple": false, + "required": false, + "types": [ + { + "type": "forward_definition", + "named": false + } + ] + }, "name": { "multiple": false, "required": true, @@ -274,6 +284,10 @@ "type": "definition", "named": false }, + { + "type": "forward_definition", + "named": false + }, { "type": "global", "named": false diff --git a/cmd/scip/tests/reprolang/src/parser.c b/cmd/scip/tests/reprolang/src/parser.c index dc10c634..e69f026c 100644 --- a/cmd/scip/tests/reprolang/src/parser.c +++ b/cmd/scip/tests/reprolang/src/parser.c @@ -6,48 +6,49 @@ #endif #define LANGUAGE_VERSION 13 -#define STATE_COUNT 39 +#define STATE_COUNT 41 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 32 +#define SYMBOL_COUNT 33 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 14 +#define TOKEN_COUNT 15 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 7 +#define FIELD_COUNT 8 #define MAX_ALIAS_SEQUENCE_LENGTH 5 -#define PRODUCTION_ID_COUNT 8 +#define PRODUCTION_ID_COUNT 9 enum { sym_workspace_identifier = 1, anon_sym_LF = 2, anon_sym_definition = 3, anon_sym_reference = 4, - anon_sym_implements = 5, - anon_sym_type_defines = 6, - anon_sym_references = 7, - anon_sym_relationships = 8, - anon_sym_defined_by = 9, - anon_sym_POUND = 10, - aux_sym_comment_token1 = 11, - anon_sym_POUNDdocstring_COLON = 12, - anon_sym_global = 13, - sym_source_file = 14, - sym__statement = 15, - sym_definition_statement = 16, - sym_reference_statement = 17, - sym__definition_relations = 18, - sym_implementation_relation = 19, - sym_type_definition_relation = 20, - sym_references_relation = 21, - sym_relationships_statement = 22, - sym__all_relations = 23, - sym_defined_by_relation = 24, - sym_comment = 25, - sym_docstring = 26, - sym_identifier = 27, - sym_global_identifier = 28, - aux_sym_source_file_repeat1 = 29, - aux_sym_definition_statement_repeat1 = 30, - aux_sym_relationships_statement_repeat1 = 31, + anon_sym_forward_definition = 5, + anon_sym_implements = 6, + anon_sym_type_defines = 7, + anon_sym_references = 8, + anon_sym_relationships = 9, + anon_sym_defined_by = 10, + anon_sym_POUND = 11, + aux_sym_comment_token1 = 12, + anon_sym_POUNDdocstring_COLON = 13, + anon_sym_global = 14, + sym_source_file = 15, + sym__statement = 16, + sym_definition_statement = 17, + sym_reference_statement = 18, + sym__definition_relations = 19, + sym_implementation_relation = 20, + sym_type_definition_relation = 21, + sym_references_relation = 22, + sym_relationships_statement = 23, + sym__all_relations = 24, + sym_defined_by_relation = 25, + sym_comment = 26, + sym_docstring = 27, + sym_identifier = 28, + sym_global_identifier = 29, + aux_sym_source_file_repeat1 = 30, + aux_sym_definition_statement_repeat1 = 31, + aux_sym_relationships_statement_repeat1 = 32, }; static const char * const ts_symbol_names[] = { @@ -56,6 +57,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_LF] = "\n", [anon_sym_definition] = "definition", [anon_sym_reference] = "reference", + [anon_sym_forward_definition] = "forward_definition", [anon_sym_implements] = "implements", [anon_sym_type_defines] = "type_defines", [anon_sym_references] = "references", @@ -91,6 +93,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LF] = anon_sym_LF, [anon_sym_definition] = anon_sym_definition, [anon_sym_reference] = anon_sym_reference, + [anon_sym_forward_definition] = anon_sym_forward_definition, [anon_sym_implements] = anon_sym_implements, [anon_sym_type_defines] = anon_sym_type_defines, [anon_sym_references] = anon_sym_references, @@ -141,6 +144,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_forward_definition] = { + .visible = true, + .named = false, + }, [anon_sym_implements] = { .visible = true, .named = false, @@ -254,17 +261,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { enum { field_descriptors = 1, field_docstring = 2, - field_global = 3, - field_name = 4, - field_project_name = 5, - field_roles = 6, - field_workspace = 7, + field_forward_definition = 3, + field_global = 4, + field_name = 5, + field_project_name = 6, + field_roles = 7, + field_workspace = 8, }; static const char * const ts_field_names[] = { [0] = NULL, [field_descriptors] = "descriptors", [field_docstring] = "docstring", + [field_forward_definition] = "forward_definition", [field_global] = "global", [field_name] = "name", [field_project_name] = "project_name", @@ -278,8 +287,9 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [3] = {.index = 2, .length = 1}, [4] = {.index = 3, .length = 2}, [5] = {.index = 5, .length = 2}, - [6] = {.index = 7, .length = 3}, - [7] = {.index = 10, .length = 4}, + [6] = {.index = 7, .length = 2}, + [7] = {.index = 9, .length = 3}, + [8] = {.index = 12, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -293,13 +303,16 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1}, {field_roles, 2}, [5] = + {field_forward_definition, 1}, + {field_name, 2}, + [7] = {field_descriptors, 2}, {field_project_name, 1}, - [7] = + [9] = {field_docstring, 0}, {field_docstring, 1}, {field_name, 3}, - [10] = + [12] = {field_docstring, 0}, {field_docstring, 1}, {field_name, 3}, @@ -802,159 +815,214 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (lookahead == 'd') ADVANCE(1); - if (lookahead == 'g') ADVANCE(2); - if (lookahead == 'i') ADVANCE(3); - if (lookahead == 'r') ADVANCE(4); - if (lookahead == 't') ADVANCE(5); + if (lookahead == 'f') ADVANCE(2); + if (lookahead == 'g') ADVANCE(3); + if (lookahead == 'i') ADVANCE(4); + if (lookahead == 'r') ADVANCE(5); + if (lookahead == 't') ADVANCE(6); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'e') ADVANCE(6); + if (lookahead == 'e') ADVANCE(7); END_STATE(); case 2: - if (lookahead == 'l') ADVANCE(7); + if (lookahead == 'o') ADVANCE(8); END_STATE(); case 3: - if (lookahead == 'm') ADVANCE(8); + if (lookahead == 'l') ADVANCE(9); END_STATE(); case 4: - if (lookahead == 'e') ADVANCE(9); + if (lookahead == 'm') ADVANCE(10); END_STATE(); case 5: - if (lookahead == 'y') ADVANCE(10); + if (lookahead == 'e') ADVANCE(11); END_STATE(); case 6: - if (lookahead == 'f') ADVANCE(11); + if (lookahead == 'y') ADVANCE(12); END_STATE(); case 7: - if (lookahead == 'o') ADVANCE(12); + if (lookahead == 'f') ADVANCE(13); END_STATE(); case 8: - if (lookahead == 'p') ADVANCE(13); + if (lookahead == 'r') ADVANCE(14); END_STATE(); case 9: - if (lookahead == 'f') ADVANCE(14); + if (lookahead == 'o') ADVANCE(15); END_STATE(); case 10: - if (lookahead == 'p') ADVANCE(15); + if (lookahead == 'p') ADVANCE(16); END_STATE(); case 11: - if (lookahead == 'i') ADVANCE(16); + if (lookahead == 'f') ADVANCE(17); END_STATE(); case 12: - if (lookahead == 'b') ADVANCE(17); + if (lookahead == 'p') ADVANCE(18); END_STATE(); case 13: - if (lookahead == 'l') ADVANCE(18); + if (lookahead == 'i') ADVANCE(19); END_STATE(); case 14: - if (lookahead == 'e') ADVANCE(19); + if (lookahead == 'w') ADVANCE(20); END_STATE(); case 15: - if (lookahead == 'e') ADVANCE(20); + if (lookahead == 'b') ADVANCE(21); END_STATE(); case 16: - if (lookahead == 'n') ADVANCE(21); + if (lookahead == 'l') ADVANCE(22); END_STATE(); case 17: - if (lookahead == 'a') ADVANCE(22); + if (lookahead == 'e') ADVANCE(23); END_STATE(); case 18: - if (lookahead == 'e') ADVANCE(23); + if (lookahead == 'e') ADVANCE(24); END_STATE(); case 19: - if (lookahead == 'r') ADVANCE(24); + if (lookahead == 'n') ADVANCE(25); END_STATE(); case 20: - if (lookahead == '_') ADVANCE(25); + if (lookahead == 'a') ADVANCE(26); END_STATE(); case 21: - if (lookahead == 'e') ADVANCE(26); + if (lookahead == 'a') ADVANCE(27); END_STATE(); case 22: - if (lookahead == 'l') ADVANCE(27); + if (lookahead == 'e') ADVANCE(28); END_STATE(); case 23: - if (lookahead == 'm') ADVANCE(28); + if (lookahead == 'r') ADVANCE(29); END_STATE(); case 24: - if (lookahead == 'e') ADVANCE(29); + if (lookahead == '_') ADVANCE(30); END_STATE(); case 25: - if (lookahead == 'd') ADVANCE(30); + if (lookahead == 'e') ADVANCE(31); END_STATE(); case 26: - if (lookahead == 'd') ADVANCE(31); + if (lookahead == 'r') ADVANCE(32); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_global); + if (lookahead == 'l') ADVANCE(33); END_STATE(); case 28: - if (lookahead == 'e') ADVANCE(32); + if (lookahead == 'm') ADVANCE(34); END_STATE(); case 29: - if (lookahead == 'n') ADVANCE(33); + if (lookahead == 'e') ADVANCE(35); END_STATE(); case 30: - if (lookahead == 'e') ADVANCE(34); + if (lookahead == 'd') ADVANCE(36); END_STATE(); case 31: - if (lookahead == '_') ADVANCE(35); + if (lookahead == 'd') ADVANCE(37); END_STATE(); case 32: - if (lookahead == 'n') ADVANCE(36); + if (lookahead == 'd') ADVANCE(38); END_STATE(); case 33: - if (lookahead == 'c') ADVANCE(37); + ACCEPT_TOKEN(anon_sym_global); END_STATE(); case 34: - if (lookahead == 'f') ADVANCE(38); + if (lookahead == 'e') ADVANCE(39); END_STATE(); case 35: - if (lookahead == 'b') ADVANCE(39); + if (lookahead == 'n') ADVANCE(40); END_STATE(); case 36: - if (lookahead == 't') ADVANCE(40); + if (lookahead == 'e') ADVANCE(41); END_STATE(); case 37: - if (lookahead == 'e') ADVANCE(41); + if (lookahead == '_') ADVANCE(42); END_STATE(); case 38: - if (lookahead == 'i') ADVANCE(42); + if (lookahead == '_') ADVANCE(43); END_STATE(); case 39: - if (lookahead == 'y') ADVANCE(43); + if (lookahead == 'n') ADVANCE(44); END_STATE(); case 40: - if (lookahead == 's') ADVANCE(44); + if (lookahead == 'c') ADVANCE(45); END_STATE(); case 41: - if (lookahead == 's') ADVANCE(45); + if (lookahead == 'f') ADVANCE(46); END_STATE(); case 42: - if (lookahead == 'n') ADVANCE(46); + if (lookahead == 'b') ADVANCE(47); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_defined_by); + if (lookahead == 'd') ADVANCE(48); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_implements); + if (lookahead == 't') ADVANCE(49); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_references); + if (lookahead == 'e') ADVANCE(50); END_STATE(); case 46: - if (lookahead == 'e') ADVANCE(47); + if (lookahead == 'i') ADVANCE(51); END_STATE(); case 47: - if (lookahead == 's') ADVANCE(48); + if (lookahead == 'y') ADVANCE(52); END_STATE(); case 48: + if (lookahead == 'e') ADVANCE(53); + END_STATE(); + case 49: + if (lookahead == 's') ADVANCE(54); + END_STATE(); + case 50: + if (lookahead == 's') ADVANCE(55); + END_STATE(); + case 51: + if (lookahead == 'n') ADVANCE(56); + END_STATE(); + case 52: + ACCEPT_TOKEN(anon_sym_defined_by); + END_STATE(); + case 53: + if (lookahead == 'f') ADVANCE(57); + END_STATE(); + case 54: + ACCEPT_TOKEN(anon_sym_implements); + END_STATE(); + case 55: + ACCEPT_TOKEN(anon_sym_references); + END_STATE(); + case 56: + if (lookahead == 'e') ADVANCE(58); + END_STATE(); + case 57: + if (lookahead == 'i') ADVANCE(59); + END_STATE(); + case 58: + if (lookahead == 's') ADVANCE(60); + END_STATE(); + case 59: + if (lookahead == 'n') ADVANCE(61); + END_STATE(); + case 60: ACCEPT_TOKEN(anon_sym_type_defines); END_STATE(); + case 61: + if (lookahead == 'i') ADVANCE(62); + END_STATE(); + case 62: + if (lookahead == 't') ADVANCE(63); + END_STATE(); + case 63: + if (lookahead == 'i') ADVANCE(64); + END_STATE(); + case 64: + if (lookahead == 'o') ADVANCE(65); + END_STATE(); + case 65: + if (lookahead == 'n') ADVANCE(66); + END_STATE(); + case 66: + ACCEPT_TOKEN(anon_sym_forward_definition); + END_STATE(); default: return false; } @@ -975,13 +1043,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [11] = {.lex_state = 1}, [12] = {.lex_state = 41}, [13] = {.lex_state = 1}, - [14] = {.lex_state = 1}, + [14] = {.lex_state = 40}, [15] = {.lex_state = 1}, [16] = {.lex_state = 1}, [17] = {.lex_state = 1}, [18] = {.lex_state = 1}, [19] = {.lex_state = 1}, - [20] = {.lex_state = 40}, + [20] = {.lex_state = 1}, [21] = {.lex_state = 40}, [22] = {.lex_state = 40}, [23] = {.lex_state = 40}, @@ -989,17 +1057,19 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [25] = {.lex_state = 40}, [26] = {.lex_state = 40}, [27] = {.lex_state = 40}, - [28] = {.lex_state = 2}, - [29] = {.lex_state = 40}, + [28] = {.lex_state = 40}, + [29] = {.lex_state = 41}, [30] = {.lex_state = 52}, - [31] = {.lex_state = 41}, + [31] = {.lex_state = 40}, [32] = {.lex_state = 2}, [33] = {.lex_state = 2}, [34] = {.lex_state = 2}, - [35] = {.lex_state = 40}, - [36] = {.lex_state = 2}, - [37] = {.lex_state = 0}, - [38] = {.lex_state = 52}, + [35] = {.lex_state = 2}, + [36] = {.lex_state = 40}, + [37] = {.lex_state = 2}, + [38] = {.lex_state = 2}, + [39] = {.lex_state = 0}, + [40] = {.lex_state = 52}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -1008,6 +1078,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_workspace_identifier] = ACTIONS(1), [anon_sym_definition] = ACTIONS(1), [anon_sym_reference] = ACTIONS(1), + [anon_sym_forward_definition] = ACTIONS(1), [anon_sym_implements] = ACTIONS(1), [anon_sym_type_defines] = ACTIONS(1), [anon_sym_references] = ACTIONS(1), @@ -1018,13 +1089,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_global] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(37), + [sym_source_file] = STATE(39), [sym__statement] = STATE(2), - [sym_definition_statement] = STATE(36), - [sym_reference_statement] = STATE(36), - [sym_relationships_statement] = STATE(36), - [sym_comment] = STATE(36), - [sym_docstring] = STATE(28), + [sym_definition_statement] = STATE(38), + [sym_reference_statement] = STATE(38), + [sym_relationships_statement] = STATE(38), + [sym_comment] = STATE(38), + [sym_docstring] = STATE(32), [aux_sym_source_file_repeat1] = STATE(2), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_definition] = ACTIONS(5), @@ -1049,12 +1120,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUNDdocstring_COLON, ACTIONS(15), 1, ts_builtin_sym_end, - STATE(28), 1, + STATE(32), 1, sym_docstring, STATE(3), 2, sym__statement, aux_sym_source_file_repeat1, - STATE(36), 4, + STATE(38), 4, sym_definition_statement, sym_reference_statement, sym_relationships_statement, @@ -1072,12 +1143,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(31), 1, anon_sym_POUNDdocstring_COLON, - STATE(28), 1, + STATE(32), 1, sym_docstring, STATE(3), 2, sym__statement, aux_sym_source_file_repeat1, - STATE(36), 4, + STATE(38), 4, sym_definition_statement, sym_reference_statement, sym_relationships_statement, @@ -1087,13 +1158,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(36), 1, anon_sym_implements, - ACTIONS(39), 1, + ACTIONS(38), 1, anon_sym_type_defines, - ACTIONS(42), 1, + ACTIONS(40), 1, anon_sym_references, - ACTIONS(45), 1, + ACTIONS(42), 1, anon_sym_defined_by, - STATE(4), 7, + STATE(5), 7, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, @@ -1102,17 +1173,17 @@ static const uint16_t ts_small_parse_table[] = { sym_defined_by_relation, aux_sym_relationships_statement_repeat1, [89] = 6, - ACTIONS(48), 1, + ACTIONS(44), 1, anon_sym_LF, - ACTIONS(50), 1, + ACTIONS(46), 1, anon_sym_implements, - ACTIONS(52), 1, + ACTIONS(49), 1, anon_sym_type_defines, - ACTIONS(54), 1, + ACTIONS(52), 1, anon_sym_references, - ACTIONS(56), 1, + ACTIONS(55), 1, anon_sym_defined_by, - STATE(4), 7, + STATE(5), 7, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, @@ -1121,17 +1192,17 @@ static const uint16_t ts_small_parse_table[] = { sym_defined_by_relation, aux_sym_relationships_statement_repeat1, [114] = 6, - ACTIONS(50), 1, + ACTIONS(36), 1, anon_sym_implements, - ACTIONS(52), 1, + ACTIONS(38), 1, anon_sym_type_defines, - ACTIONS(54), 1, + ACTIONS(40), 1, anon_sym_references, - ACTIONS(56), 1, + ACTIONS(42), 1, anon_sym_defined_by, ACTIONS(58), 1, anon_sym_LF, - STATE(5), 7, + STATE(4), 7, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, @@ -1140,11 +1211,11 @@ static const uint16_t ts_small_parse_table[] = { sym_defined_by_relation, aux_sym_relationships_statement_repeat1, [139] = 5, - ACTIONS(50), 1, + ACTIONS(36), 1, anon_sym_implements, - ACTIONS(52), 1, + ACTIONS(38), 1, anon_sym_type_defines, - ACTIONS(54), 1, + ACTIONS(40), 1, anon_sym_references, ACTIONS(60), 1, anon_sym_LF, @@ -1155,60 +1226,60 @@ static const uint16_t ts_small_parse_table[] = { sym_references_relation, aux_sym_definition_statement_repeat1, [159] = 5, - ACTIONS(50), 1, + ACTIONS(36), 1, anon_sym_implements, - ACTIONS(52), 1, + ACTIONS(38), 1, anon_sym_type_defines, - ACTIONS(54), 1, + ACTIONS(40), 1, anon_sym_references, ACTIONS(62), 1, anon_sym_LF, - STATE(11), 5, + STATE(9), 5, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, sym_references_relation, aux_sym_definition_statement_repeat1, [179] = 5, - ACTIONS(50), 1, + ACTIONS(64), 1, + anon_sym_LF, + ACTIONS(66), 1, anon_sym_implements, - ACTIONS(52), 1, + ACTIONS(69), 1, anon_sym_type_defines, - ACTIONS(54), 1, + ACTIONS(72), 1, anon_sym_references, - ACTIONS(64), 1, - anon_sym_LF, - STATE(8), 5, + STATE(9), 5, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, sym_references_relation, aux_sym_definition_statement_repeat1, [199] = 5, - ACTIONS(50), 1, + ACTIONS(36), 1, anon_sym_implements, - ACTIONS(52), 1, + ACTIONS(38), 1, anon_sym_type_defines, - ACTIONS(54), 1, + ACTIONS(40), 1, anon_sym_references, - ACTIONS(66), 1, + ACTIONS(75), 1, anon_sym_LF, - STATE(11), 5, + STATE(9), 5, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, sym_references_relation, aux_sym_definition_statement_repeat1, [219] = 5, - ACTIONS(68), 1, - anon_sym_LF, - ACTIONS(70), 1, + ACTIONS(36), 1, anon_sym_implements, - ACTIONS(73), 1, + ACTIONS(38), 1, anon_sym_type_defines, - ACTIONS(76), 1, + ACTIONS(40), 1, anon_sym_references, - STATE(11), 5, + ACTIONS(77), 1, + anon_sym_LF, + STATE(8), 5, sym__definition_relations, sym_implementation_relation, sym_type_definition_relation, @@ -1231,158 +1302,172 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [260] = 2, + [260] = 5, ACTIONS(87), 1, + sym_workspace_identifier, + ACTIONS(89), 1, + anon_sym_forward_definition, + ACTIONS(91), 1, + anon_sym_global, + STATE(13), 1, + sym_global_identifier, + STATE(37), 1, + sym_identifier, + [276] = 2, + ACTIONS(93), 1, anon_sym_LF, - ACTIONS(89), 4, + ACTIONS(95), 4, anon_sym_implements, anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [270] = 2, - ACTIONS(91), 1, + [286] = 2, + ACTIONS(97), 1, anon_sym_LF, - ACTIONS(93), 4, + ACTIONS(99), 4, anon_sym_implements, anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [280] = 2, - ACTIONS(95), 1, + [296] = 2, + ACTIONS(101), 1, anon_sym_LF, - ACTIONS(97), 4, + ACTIONS(103), 4, anon_sym_implements, anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [290] = 2, - ACTIONS(99), 1, + [306] = 2, + ACTIONS(105), 1, anon_sym_LF, - ACTIONS(101), 4, + ACTIONS(107), 4, anon_sym_implements, anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [300] = 2, - ACTIONS(103), 1, + [316] = 2, + ACTIONS(109), 1, anon_sym_LF, - ACTIONS(105), 4, + ACTIONS(111), 4, anon_sym_implements, anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [310] = 2, - ACTIONS(107), 1, + [326] = 2, + ACTIONS(113), 1, anon_sym_LF, - ACTIONS(109), 4, + ACTIONS(115), 4, anon_sym_implements, anon_sym_type_defines, anon_sym_references, anon_sym_defined_by, - [320] = 4, - ACTIONS(111), 1, + [336] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_global, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, - STATE(34), 1, - sym_identifier, - [333] = 4, - ACTIONS(111), 1, - sym_workspace_identifier, - ACTIONS(113), 1, - anon_sym_global, - STATE(6), 1, + STATE(17), 1, sym_identifier, - STATE(15), 1, - sym_global_identifier, - [346] = 4, - ACTIONS(111), 1, + [349] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_global, - STATE(7), 1, + STATE(11), 1, sym_identifier, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, - [359] = 4, - ACTIONS(111), 1, + [362] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_global, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, - STATE(17), 1, + STATE(18), 1, sym_identifier, - [372] = 4, - ACTIONS(111), 1, + [375] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_global, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, STATE(16), 1, sym_identifier, - [385] = 4, - ACTIONS(111), 1, + [388] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_global, - STATE(13), 1, + STATE(6), 1, sym_identifier, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, - [398] = 4, - ACTIONS(111), 1, + [401] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_global, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, STATE(19), 1, sym_identifier, - [411] = 4, - ACTIONS(111), 1, + [414] = 4, + ACTIONS(87), 1, sym_workspace_identifier, - ACTIONS(113), 1, + ACTIONS(91), 1, + anon_sym_global, + STATE(13), 1, + sym_global_identifier, + STATE(33), 1, + sym_identifier, + [427] = 4, + ACTIONS(87), 1, + sym_workspace_identifier, + ACTIONS(91), 1, anon_sym_global, - STATE(9), 1, + STATE(7), 1, sym_identifier, - STATE(15), 1, + STATE(13), 1, sym_global_identifier, - [424] = 1, - ACTIONS(115), 1, - anon_sym_LF, - [428] = 1, + [440] = 1, ACTIONS(117), 1, - sym_workspace_identifier, - [432] = 1, + anon_sym_definition, + [444] = 1, ACTIONS(119), 1, aux_sym_comment_token1, - [436] = 1, + [448] = 1, ACTIONS(121), 1, - anon_sym_definition, - [440] = 1, + sym_workspace_identifier, + [452] = 1, ACTIONS(123), 1, anon_sym_LF, - [444] = 1, + [456] = 1, ACTIONS(125), 1, anon_sym_LF, - [448] = 1, + [460] = 1, ACTIONS(127), 1, anon_sym_LF, - [452] = 1, + [464] = 1, ACTIONS(129), 1, - sym_workspace_identifier, - [456] = 1, - ACTIONS(131), 1, anon_sym_LF, - [460] = 1, + [468] = 1, + ACTIONS(131), 1, + sym_workspace_identifier, + [472] = 1, ACTIONS(133), 1, - ts_builtin_sym_end, - [464] = 1, + anon_sym_LF, + [476] = 1, ACTIONS(135), 1, + anon_sym_LF, + [480] = 1, + ACTIONS(137), 1, + ts_builtin_sym_end, + [484] = 1, + ACTIONS(139), 1, aux_sym_comment_token1, }; @@ -1400,96 +1485,100 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(12)] = 239, [SMALL_STATE(13)] = 250, [SMALL_STATE(14)] = 260, - [SMALL_STATE(15)] = 270, - [SMALL_STATE(16)] = 280, - [SMALL_STATE(17)] = 290, - [SMALL_STATE(18)] = 300, - [SMALL_STATE(19)] = 310, - [SMALL_STATE(20)] = 320, - [SMALL_STATE(21)] = 333, - [SMALL_STATE(22)] = 346, - [SMALL_STATE(23)] = 359, - [SMALL_STATE(24)] = 372, - [SMALL_STATE(25)] = 385, - [SMALL_STATE(26)] = 398, - [SMALL_STATE(27)] = 411, - [SMALL_STATE(28)] = 424, - [SMALL_STATE(29)] = 428, - [SMALL_STATE(30)] = 432, - [SMALL_STATE(31)] = 436, - [SMALL_STATE(32)] = 440, - [SMALL_STATE(33)] = 444, - [SMALL_STATE(34)] = 448, - [SMALL_STATE(35)] = 452, - [SMALL_STATE(36)] = 456, - [SMALL_STATE(37)] = 460, - [SMALL_STATE(38)] = 464, + [SMALL_STATE(15)] = 276, + [SMALL_STATE(16)] = 286, + [SMALL_STATE(17)] = 296, + [SMALL_STATE(18)] = 306, + [SMALL_STATE(19)] = 316, + [SMALL_STATE(20)] = 326, + [SMALL_STATE(21)] = 336, + [SMALL_STATE(22)] = 349, + [SMALL_STATE(23)] = 362, + [SMALL_STATE(24)] = 375, + [SMALL_STATE(25)] = 388, + [SMALL_STATE(26)] = 401, + [SMALL_STATE(27)] = 414, + [SMALL_STATE(28)] = 427, + [SMALL_STATE(29)] = 440, + [SMALL_STATE(30)] = 444, + [SMALL_STATE(31)] = 448, + [SMALL_STATE(32)] = 452, + [SMALL_STATE(33)] = 456, + [SMALL_STATE(34)] = 460, + [SMALL_STATE(35)] = 464, + [SMALL_STATE(36)] = 468, + [SMALL_STATE(37)] = 472, + [SMALL_STATE(38)] = 476, + [SMALL_STATE(39)] = 480, + [SMALL_STATE(40)] = 484, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(22), - [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(20), - [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(21), + [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(28), + [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(14), + [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(25), [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(30), - [31] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(38), - [34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), - [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(23), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(24), - [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(25), - [45] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(26), - [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationships_statement, 3, .production_id = 4), - [50] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [52] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [54] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [56] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [31] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(40), + [34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationships_statement, 3, .production_id = 4), + [36] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [38] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [40] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [42] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [44] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), + [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(26), + [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(23), + [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(21), + [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_relationships_statement_repeat1, 2), SHIFT_REPEAT(24), [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationships_statement, 2, .production_id = 2), [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 2, .production_id = 2), - [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 5, .production_id = 7), - [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 4, .production_id = 6), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 3, .production_id = 4), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_definition_statement_repeat1, 2), - [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_statement_repeat1, 2), SHIFT_REPEAT(23), - [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_statement_repeat1, 2), SHIFT_REPEAT(24), - [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_statement_repeat1, 2), SHIFT_REPEAT(25), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 5, .production_id = 8), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_definition_statement_repeat1, 2), + [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_statement_repeat1, 2), SHIFT_REPEAT(26), + [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_statement_repeat1, 2), SHIFT_REPEAT(23), + [72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_statement_repeat1, 2), SHIFT_REPEAT(21), + [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 3, .production_id = 4), + [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition_statement, 4, .production_id = 7), [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_references_relation, 2, .production_id = 2), - [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_references_relation, 2, .production_id = 2), - [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1, .production_id = 1), - [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1, .production_id = 1), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1, .production_id = 3), - [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1, .production_id = 3), - [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_relation, 2, .production_id = 2), - [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_relation, 2, .production_id = 2), - [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implementation_relation, 2, .production_id = 2), - [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_implementation_relation, 2, .production_id = 2), - [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3, .production_id = 5), - [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3, .production_id = 5), - [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_defined_by_relation, 2, .production_id = 2), - [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_defined_by_relation, 2, .production_id = 2), - [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_docstring, 2), - [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), - [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reference_statement, 2, .production_id = 2), - [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [133] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1, .production_id = 3), + [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1, .production_id = 3), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1, .production_id = 1), + [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1, .production_id = 1), + [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_defined_by_relation, 2, .production_id = 2), + [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_defined_by_relation, 2, .production_id = 2), + [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_references_relation, 2, .production_id = 2), + [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_references_relation, 2, .production_id = 2), + [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_relation, 2, .production_id = 2), + [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_relation, 2, .production_id = 2), + [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implementation_relation, 2, .production_id = 2), + [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_implementation_relation, 2, .production_id = 2), + [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3, .production_id = 6), + [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3, .production_id = 6), + [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reference_statement, 3, .production_id = 5), + [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_docstring, 2), + [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), + [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reference_statement, 2, .production_id = 2), + [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [137] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), }; #ifdef __cplusplus diff --git a/cmd/scip/tests/snapshots/input/forward-def/forward_def.repro b/cmd/scip/tests/snapshots/input/forward-def/forward_def.repro new file mode 100644 index 00000000..7d8b2c4a --- /dev/null +++ b/cmd/scip/tests/snapshots/input/forward-def/forward_def.repro @@ -0,0 +1,3 @@ +reference forward_definition abc# +definition abc# +reference abc# diff --git a/cmd/scip/tests/snapshots/output/forward-def/dump.lsif b/cmd/scip/tests/snapshots/output/forward-def/dump.lsif new file mode 100755 index 00000000..2fce177a --- /dev/null +++ b/cmd/scip/tests/snapshots/output/forward-def/dump.lsif @@ -0,0 +1,24 @@ +{"id":1,"version":"0.4.3","projectRoot":"file:/root","positionEncoding":"utf-8","toolInfo":{"name":"reprolang","version":"1.0.0"},"type":"vertex","label":"metaData"} +{"id":2,"type":"vertex","label":"definitionResult"} +{"id":3,"type":"vertex","label":"resultSet"} +{"id":4,"type":"vertex","label":"referenceResult"} +{"id":5,"type":"vertex","label":"hoverResult","result":{"contents":{"kind":"markdown","value":"signature of abc#"}}} +{"id":6,"type":"edge","label":"textDocument/definition","inV":2,"outV":3} +{"id":7,"type":"edge","label":"textDocument/references","inV":4,"outV":3} +{"id":8,"type":"edge","label":"textDocument/hover","inV":5,"outV":3} +{"id":9,"type":"vertex","label":"moniker","identifier":"reprolang repro_manager forward-def 1.0.0 forward_def.repro/abc#","kind":"export","scheme":"reprolang"} +{"id":10,"type":"edge","label":"moniker","inV":9,"outV":3} +{"id":11,"name":"forward-def","version":"1.0.0","manager":"repro_manager","type":"vertex","label":"packageInformation"} +{"id":12,"type":"edge","label":"packageInformation","inV":11,"outV":9} +{"id":13,"type":"vertex","label":"document","uri":"file:/root/forward_def.repro"} +{"id":14,"type":"vertex","label":"range","start":{"line":0,"character":29},"end":{"line":0,"character":33}} +{"id":15,"type":"edge","label":"next","inV":3,"outV":14} +{"id":16,"type":"edge","label":"item","inVs":[14],"outV":4,"document":13} +{"id":17,"type":"vertex","label":"range","start":{"line":1,"character":11},"end":{"line":1,"character":15}} +{"id":18,"type":"edge","label":"next","inV":3,"outV":17} +{"id":19,"type":"edge","label":"item","inVs":[17],"outV":2,"document":13} +{"id":20,"type":"edge","label":"item","inVs":[17],"outV":4,"document":13} +{"id":21,"type":"vertex","label":"range","start":{"line":2,"character":10},"end":{"line":2,"character":14}} +{"id":22,"type":"edge","label":"next","inV":3,"outV":21} +{"id":23,"type":"edge","label":"item","inVs":[21],"outV":4,"document":13} +{"id":24,"type":"edge","label":"contains","inVs":[14,17,21],"outV":13} diff --git a/cmd/scip/tests/snapshots/output/forward-def/forward_def.repro b/cmd/scip/tests/snapshots/output/forward-def/forward_def.repro new file mode 100755 index 00000000..049addb5 --- /dev/null +++ b/cmd/scip/tests/snapshots/output/forward-def/forward_def.repro @@ -0,0 +1,8 @@ + reference forward_definition abc# +# ^^^^ forward_definition forward_def.repro/abc# + definition abc# +# ^^^^ definition forward_def.repro/abc# +# documentation signature of abc# + reference abc# +# ^^^^ reference forward_def.repro/abc# + diff --git a/docs/scip.md b/docs/scip.md index c9024fe7..b8e1dee7 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -625,6 +625,15 @@ logic: `const isImportRole = (role.value & SymbolRole.Import.value) > 0`. | 8 | ReadAccess | Is the symbol read here? | | 16 | Generated | Is the symbol in generated code? | | 32 | Test | Is the symbol in test code? | +| 64 | ForwardDefinition | Is this a signature for a symbol that is defined elsewhere? | + +Additional notes on **ForwardDefinition**: + +Is this a signature for a symbol that is defined elsewhere? + +Applies to forward declarations for languages like C, C++ +and Objective-C, as well as `val` declarations in interface +files in languages like SML and OCaml. ### SyntaxKind diff --git a/scip.proto b/scip.proto index c359e77b..4bbaffe9 100644 --- a/scip.proto +++ b/scip.proto @@ -474,6 +474,12 @@ enum SymbolRole { Generated = 0x10; // Is the symbol in test code? Test = 0x20; + // Is this a signature for a symbol that is defined elsewhere? + // + // Applies to forward declarations for languages like C, C++ + // and Objective-C, as well as `val` declarations in interface + // files in languages like SML and OCaml. + ForwardDefinition = 0x40; } enum SyntaxKind {