xref: /aosp_15_r20/external/googleapis/google/api/expr/v1beta1/source.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2019 Google LLC.
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker//
15*d5c09012SAndroid Build Coastguard Worker
16*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
17*d5c09012SAndroid Build Coastguard Worker
18*d5c09012SAndroid Build Coastguard Workerpackage google.api.expr.v1beta1;
19*d5c09012SAndroid Build Coastguard Worker
20*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
21*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
22*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
23*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "SourceProto";
24*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api.expr.v1beta1";
25*d5c09012SAndroid Build Coastguard Worker
26*d5c09012SAndroid Build Coastguard Worker// Source information collected at parse time.
27*d5c09012SAndroid Build Coastguard Workermessage SourceInfo {
28*d5c09012SAndroid Build Coastguard Worker  // The location name. All position information attached to an expression is
29*d5c09012SAndroid Build Coastguard Worker  // relative to this location.
30*d5c09012SAndroid Build Coastguard Worker  //
31*d5c09012SAndroid Build Coastguard Worker  // The location could be a file, UI element, or similar. For example,
32*d5c09012SAndroid Build Coastguard Worker  // `acme/app/AnvilPolicy.cel`.
33*d5c09012SAndroid Build Coastguard Worker  string location = 2;
34*d5c09012SAndroid Build Coastguard Worker
35*d5c09012SAndroid Build Coastguard Worker  // Monotonically increasing list of character offsets where newlines appear.
36*d5c09012SAndroid Build Coastguard Worker  //
37*d5c09012SAndroid Build Coastguard Worker  // The line number of a given position is the index `i` where for a given
38*d5c09012SAndroid Build Coastguard Worker  // `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The
39*d5c09012SAndroid Build Coastguard Worker  // column may be derivd from `id_positions[id] - line_offsets[i]`.
40*d5c09012SAndroid Build Coastguard Worker  repeated int32 line_offsets = 3;
41*d5c09012SAndroid Build Coastguard Worker
42*d5c09012SAndroid Build Coastguard Worker  // A map from the parse node id (e.g. `Expr.id`) to the character offset
43*d5c09012SAndroid Build Coastguard Worker  // within source.
44*d5c09012SAndroid Build Coastguard Worker  map<int32, int32> positions = 4;
45*d5c09012SAndroid Build Coastguard Worker}
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker// A specific position in source.
48*d5c09012SAndroid Build Coastguard Workermessage SourcePosition {
49*d5c09012SAndroid Build Coastguard Worker  // The soucre location name (e.g. file name).
50*d5c09012SAndroid Build Coastguard Worker  string location = 1;
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker  // The character offset.
53*d5c09012SAndroid Build Coastguard Worker  int32 offset = 2;
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker  // The 1-based index of the starting line in the source text
56*d5c09012SAndroid Build Coastguard Worker  // where the issue occurs, or 0 if unknown.
57*d5c09012SAndroid Build Coastguard Worker  int32 line = 3;
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // The 0-based index of the starting position within the line of source text
60*d5c09012SAndroid Build Coastguard Worker  // where the issue occurs.  Only meaningful if line is nonzer..
61*d5c09012SAndroid Build Coastguard Worker  int32 column = 4;
62*d5c09012SAndroid Build Coastguard Worker}
63