* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto3";
package protoPanda;
import "assemblyIns.proto";
import "assemblyLabel.proto";
import "assemblyType.proto";
import "assemblyDebug.proto";
import "assemblyFileLocation.proto";
import "ideHelpers.proto";
import "meta.proto";
message CatchBlock {
bytes wholeLine = 1;
bytes exceptionRecord = 2;
bytes tryBeginLabel = 3;
bytes tryEndLabel = 4;
bytes catchBeginLabel = 5;
bytes catchEndLabel = 6;
}
message TryCatchInfo {
message TryCatchLabel {
bytes key = 1;
uint64 value = 2;
}
message TryCatchMap {
bytes key = 1;
repeated CatchBlock catchBlocks = 2;
}
repeated TryCatchLabel tryCatchLabels = 1;
repeated TryCatchMap tryCatchMap = 2;
repeated bytes tryCatchOrder = 3;
}
message Parameter {
Type type = 1;
ParamMetadata metadata = 2;
}
message Function {
message LabelTable {
bytes key = 1;
Label value = 2;
}
bytes name = 1;
uint32 language = 2;
FunctionMetadata metadata = 3;
repeated LabelTable labelTable = 4;
repeated Ins ins = 5;
repeated LocalVariable localVariableDebug = 6;
bytes sourceFile = 7;
bytes sourceCode = 8;
repeated CatchBlock catchBlocks = 9;
int64 valueOfFirstParam = 10;
uint64 regsNum = 11;
repeated Parameter params = 12;
bool bodyPresence = 13;
Type returnType = 14;
SourceLocation bodyLocation = 15;
optional FileLocation fileLocation = 16;
uint32 function_kind = 17;
uint64 slotsNum = 18;
repeated uint32 concurrent_module_requests = 19;
}