1
1
mirror of https://github.com/github/semantic.git synced 2024-12-28 09:21:35 +03:00
semantic/proto/haskell_term.proto

783 lines
17 KiB
Protocol Buffer

// This file was generated by proto-gen. Do not edit by hand.
syntax = "proto3";
package github.semantic.haskellterm;
import "types.proto";
option java_package = "com.github.semantic.haskellterm";
option go_package = "github.com/semantic/haskellterm;haskell";
message HaskellTerm {
HaskellSyntax syntax = 1;
}
message HaskellSyntax {
oneof syntax {
Comment comment = 1;
Constructor constructor = 2;
Datatype datatype = 3;
Function function = 4;
Array array = 5;
Character character = 6;
Float float = 7;
Integer integer = 8;
TextElement textElement = 9;
Tuple tuple = 10;
If if = 11;
Match match = 12;
Pattern pattern = 13;
AllConstructors allConstructors = 14;
AnnotatedTypeVariable annotatedTypeVariable = 15;
App app = 16;
ArithmeticSequence arithmeticSequence = 17;
AsPattern asPattern = 18;
BindPattern bindPattern = 19;
CaseGuardPattern caseGuardPattern = 20;
Class class = 21;
ConstructorIdentifier constructorIdentifier = 22;
ConstructorOperator constructorOperator = 23;
ConstructorPattern constructorPattern = 24;
ConstructorSymbol constructorSymbol = 25;
Context context = 26;
ContextAlt contextAlt = 27;
CPPDirective cPPDirective = 28;
DefaultDeclaration defaultDeclaration = 29;
DefaultSignature defaultSignature = 30;
Deriving deriving = 31;
Do do = 32;
Empty empty = 33;
Error error = 34;
EqualityConstraint equalityConstraint = 35;
Export export = 36;
ExpressionTypeSignature expressionTypeSignature = 37;
Field field = 38;
FieldBind fieldBind = 39;
FieldPattern fieldPattern = 40;
FixityAlt fixityAlt = 41;
FunctionalDependency functionalDependency = 42;
FunctionConstructor functionConstructor = 43;
FunctionGuardPattern functionGuardPattern = 44;
FunctionType functionType = 45;
GADT gADT = 46;
GADTConstructor gADTConstructor = 47;
Generator generator = 48;
Guard guard = 49;
HiddenImport hiddenImport = 50;
Identifier identifier = 51;
InfixConstructorIdentifier infixConstructorIdentifier = 52;
InfixOperatorApp infixOperatorApp = 53;
InfixVariableIdentifier infixVariableIdentifier = 54;
ImplicitParameterIdentifier implicitParameterIdentifier = 55;
Import import = 56;
ImportAlias importAlias = 57;
ImportDeclaration importDeclaration = 58;
InfixDataConstructor infixDataConstructor = 59;
InfixOperatorPattern infixOperatorPattern = 60;
Instance instance = 61;
IrrefutablePattern irrefutablePattern = 62;
Kind kind = 63;
KindFunctionType kindFunctionType = 64;
KindListType kindListType = 65;
KindParenthesizedConstructor kindParenthesizedConstructor = 66;
KindSignature kindSignature = 67;
KindTupleType kindTupleType = 68;
LabeledConstruction labeledConstruction = 69;
LabeledPattern labeledPattern = 70;
LabeledUpdate labeledUpdate = 71;
Lambda lambda = 72;
LambdaCase lambdaCase = 73;
LeftOperatorSection leftOperatorSection = 74;
Let let = 75;
ListComprehension listComprehension = 76;
ListConstructor listConstructor = 77;
ListPattern listPattern = 78;
Module module = 79;
ModuleExport moduleExport = 80;
ModuleIdentifier moduleIdentifier = 81;
NamedFieldPun namedFieldPun = 82;
NegativeLiteral negativeLiteral = 83;
NewType newType = 84;
PatternGuard patternGuard = 85;
Pragma pragma = 86;
PrefixNegation prefixNegation = 87;
PrimitiveConstructorIdentifier primitiveConstructorIdentifier = 88;
PrimitiveVariableIdentifier primitiveVariableIdentifier = 89;
PromotedTypeOperator promotedTypeOperator = 90;
QualifiedConstructorIdentifier qualifiedConstructorIdentifier = 91;
QualifiedInfixVariableIdentifier qualifiedInfixVariableIdentifier = 92;
QualifiedModuleIdentifier qualifiedModuleIdentifier = 93;
QualifiedImportDeclaration qualifiedImportDeclaration = 94;
QualifiedTypeClassIdentifier qualifiedTypeClassIdentifier = 95;
QualifiedTypeConstructorIdentifier qualifiedTypeConstructorIdentifier = 96;
QualifiedVariableIdentifier qualifiedVariableIdentifier = 97;
QuasiQuotation quasiQuotation = 98;
QuasiQuotationDeclaration quasiQuotationDeclaration = 99;
QuasiQuotationExpression quasiQuotationExpression = 100;
QuasiQuotationExpressionBody quasiQuotationExpressionBody = 101;
QuasiQuotationPattern quasiQuotationPattern = 102;
QuasiQuotationQuoter quasiQuotationQuoter = 103;
QuasiQuotationType quasiQuotationType = 104;
QuotedName quotedName = 105;
RecordDataConstructor recordDataConstructor = 106;
RecordWildCards recordWildCards = 107;
RightOperatorSection rightOperatorSection = 108;
ScopedTypeVariables scopedTypeVariables = 109;
Splice splice = 110;
StandaloneDerivingInstance standaloneDerivingInstance = 111;
Star star = 112;
StrictPattern strictPattern = 113;
StrictType strictType = 114;
StrictTypeVariable strictTypeVariable = 115;
TupleConstructor tupleConstructor = 116;
TupleExpression tupleExpression = 117;
TuplePattern tuplePattern = 118;
Type type = 119;
TypeApp typeApp = 120;
TypeClass typeClass = 121;
TypeClassIdentifier typeClassIdentifier = 122;
TypeClassInstance typeClassInstance = 123;
TypeConstructorExport typeConstructorExport = 124;
TypeConstructorIdentifier typeConstructorIdentifier = 125;
TypeFamily typeFamily = 126;
TypeInstance typeInstance = 127;
TypeOperator typeOperator = 128;
TypePattern typePattern = 129;
TypeSignature typeSignature = 130;
TypeSynonym typeSynonym = 131;
TypeVariableIdentifier typeVariableIdentifier = 132;
UnitConstructor unitConstructor = 133;
VariableIdentifier variableIdentifier = 134;
VariableOperator variableOperator = 135;
VariableSymbol variableSymbol = 136;
ViewPattern viewPattern = 137;
Wildcard wildcard = 138;
TypeParameters typeParameters = 139;
List list = 140;
}
}
message Comment {
string commentContent = 1;
}
message Constructor {
repeated HaskellTerm constructorContext = 1;
HaskellTerm constructorName = 2;
HaskellTerm constructorFields = 3;
}
message Datatype {
HaskellTerm datatypeContext = 1;
HaskellTerm datatypeName = 2;
repeated HaskellTerm datatypeConstructors = 3;
HaskellTerm datatypeDeriving = 4;
}
message Function {
repeated HaskellTerm functionContext = 1;
HaskellTerm functionName = 2;
repeated HaskellTerm functionParameters = 3;
HaskellTerm functionBody = 4;
}
message Array {
repeated HaskellTerm arrayElements = 1;
}
message Character {
string characterContent = 1;
}
message Float {
string floatContent = 1;
}
message Integer {
string integerContent = 1;
}
message TextElement {
string textElementContent = 1;
}
message Tuple {
repeated HaskellTerm tupleContents = 1;
}
message If {
HaskellTerm ifCondition = 1;
HaskellTerm ifThenBody = 2;
HaskellTerm ifElseBody = 3;
}
message Match {
HaskellTerm matchSubject = 1;
HaskellTerm matchPatterns = 2;
}
message Pattern {
HaskellTerm value = 1;
HaskellTerm patternBody = 2;
}
message AllConstructors { }
message AnnotatedTypeVariable {
HaskellTerm annotatedTypeVariableIdentifier = 1;
HaskellTerm annotatedTypeVariableannotation = 2;
}
message App {
HaskellTerm appLeft = 1;
HaskellTerm appLeftTypeApp = 2;
HaskellTerm appRight = 3;
}
message ArithmeticSequence {
HaskellTerm from = 1;
repeated HaskellTerm next = 2;
repeated HaskellTerm to = 3;
}
message AsPattern {
HaskellTerm asPatternLeft = 1;
HaskellTerm asPatternRight = 2;
}
message BindPattern {
repeated HaskellTerm bindPatternLeft = 1;
HaskellTerm bindPatternRight = 2;
}
message CaseGuardPattern {
repeated HaskellTerm values = 1;
}
message Class {
repeated HaskellTerm classContent = 1;
}
message ConstructorIdentifier {
bytes name = 1;
}
message ConstructorOperator {
HaskellTerm value = 1;
}
message ConstructorPattern {
HaskellTerm value = 1;
}
message ConstructorSymbol {
bytes constructorSymbolName = 1;
}
message Context {
repeated HaskellTerm contextTerms = 1;
HaskellTerm contextSubject = 2;
}
message ContextAlt {
HaskellTerm value = 1;
}
message CPPDirective {
string value = 1;
}
message DefaultDeclaration {
repeated HaskellTerm defaultDeclarationContent = 1;
}
message DefaultSignature {
repeated HaskellTerm defaultSignatureName = 1;
repeated HaskellTerm defaultSignatureContext = 2;
HaskellTerm defaultSignatureContent = 3;
}
message Deriving {
repeated HaskellTerm values = 1;
}
message Do {
repeated HaskellTerm values = 1;
}
message Empty { }
message Error {
repeated ErrorSite errorCallStack = 1;
repeated string errorExpected = 2;
string errorActual = 3;
repeated HaskellTerm errorChildren = 4;
}
message EqualityConstraint {
HaskellTerm equalityConstraintLeft = 1;
HaskellTerm equalityConstraintRight = 2;
}
message Export {
HaskellTerm exportContent = 1;
}
message ExpressionTypeSignature {
repeated HaskellTerm expressionTypeSignatureName = 1;
repeated HaskellTerm expressionTypeSignatureContext = 2;
HaskellTerm expressionTypeSignatureContent = 3;
}
message Field {
HaskellTerm fieldName = 1;
HaskellTerm fieldBody = 2;
}
message FieldBind {
HaskellTerm fieldBindLeft = 1;
HaskellTerm fieldBindRight = 2;
}
message FieldPattern {
HaskellTerm fieldPatternLeft = 1;
HaskellTerm fieldPatternRight = 2;
}
message FixityAlt {
HaskellTerm fixityPrecedence = 1;
repeated HaskellTerm fixityIdentifier = 2;
}
message FunctionalDependency {
HaskellTerm functionalDependencyContent = 1;
}
message FunctionConstructor { }
message FunctionGuardPattern {
repeated HaskellTerm values = 1;
}
message FunctionType {
HaskellTerm functionTypeLeft = 1;
HaskellTerm functionTypeRight = 2;
}
message GADT {
HaskellTerm gadtContext = 1;
HaskellTerm gadtName = 2;
HaskellTerm gadtConstructors = 3;
}
message GADTConstructor {
HaskellTerm gadtConstructorContext = 1;
HaskellTerm gadtConstructorName = 2;
HaskellTerm gadtConstructorTypeSignature = 3;
}
message Generator {
HaskellTerm generatorValue = 1;
HaskellTerm generatorSource = 2;
}
message Guard {
HaskellTerm value = 1;
}
message HiddenImport {
HaskellTerm hiddenimportContent = 1;
}
message Identifier {
bytes name = 1;
}
message InfixConstructorIdentifier {
bytes name = 1;
}
message InfixOperatorApp {
HaskellTerm infixOperatorAppLeft = 1;
HaskellTerm infixOperatorAppLeftTypeApp = 2;
HaskellTerm infixOperatorAppOperator = 3;
HaskellTerm infixOperatorAppRight = 4;
}
message InfixVariableIdentifier {
bytes name = 1;
}
message ImplicitParameterIdentifier {
bytes name = 1;
}
message Import {
HaskellTerm importContent = 1;
}
message ImportAlias {
HaskellTerm importAliasSource = 1;
HaskellTerm importAliasName = 2;
}
message ImportDeclaration {
HaskellTerm importPackageQualifiedContent = 1;
HaskellTerm importModule = 2;
repeated HaskellTerm importSpec = 3;
}
message InfixDataConstructor {
repeated HaskellTerm infixDataConstructorContext = 1;
HaskellTerm infixDataConstructorLeft = 2;
HaskellTerm infixDataConstructorOperator = 3;
HaskellTerm infixDataConstructorRight = 4;
}
message InfixOperatorPattern {
HaskellTerm infixOperatorPatternLeft = 1;
HaskellTerm infixOperatorPatternOperator = 2;
HaskellTerm infixOperatorPatternRight = 3;
}
message Instance {
HaskellTerm value = 1;
}
message IrrefutablePattern {
HaskellTerm value = 1;
}
message Kind {
HaskellTerm kindKind = 1;
}
message KindFunctionType {
HaskellTerm kindFunctionTypeLeft = 1;
HaskellTerm kindFunctionTypeRight = 2;
}
message KindListType {
HaskellTerm kindListTypeKind = 1;
}
message KindParenthesizedConstructor {
HaskellTerm kindParenthesizedConstructorContent = 1;
}
message KindSignature {
HaskellTerm kindSignatureContent = 1;
}
message KindTupleType {
repeated HaskellTerm kindTupleType = 1;
}
message LabeledConstruction {
HaskellTerm labeledConstructionConstructor = 1;
repeated HaskellTerm labeledConstructionFields = 2;
}
message LabeledPattern {
HaskellTerm value = 1;
}
message LabeledUpdate {
repeated HaskellTerm values = 1;
}
message Lambda {
HaskellTerm lambdaHead = 1;
HaskellTerm lambdaBody = 2;
}
message LambdaCase {
repeated HaskellTerm values = 1;
}
message LeftOperatorSection {
HaskellTerm lhs = 1;
HaskellTerm rhs = 2;
}
message Let {
repeated HaskellTerm letStatements = 1;
HaskellTerm letInClause = 2;
}
message ListComprehension {
HaskellTerm comprehensionValue = 1;
repeated HaskellTerm comprehensionSource = 2;
}
message ListConstructor { }
message ListPattern {
HaskellTerm value = 1;
}
message Module {
repeated HaskellTerm moduleContext = 1;
HaskellTerm moduleIdentifier = 2;
repeated HaskellTerm moduleExports = 3;
HaskellTerm moduleStatements = 4;
}
message ModuleExport {
HaskellTerm moduleExportContent = 1;
}
message ModuleIdentifier {
bytes name = 1;
}
message NamedFieldPun {
HaskellTerm value = 1;
}
message NegativeLiteral {
HaskellTerm value = 1;
}
message NewType {
repeated HaskellTerm newTypeContext = 1;
HaskellTerm newTypeLeft = 2;
HaskellTerm newTypeRight = 3;
HaskellTerm newTypeDeriving = 4;
}
message PatternGuard {
HaskellTerm patternGuardPattern = 1;
HaskellTerm patternGuardExpression = 2;
}
message Pragma {
string value = 1;
}
message PrefixNegation {
HaskellTerm value = 1;
}
message PrimitiveConstructorIdentifier {
bytes name = 1;
}
message PrimitiveVariableIdentifier {
bytes name = 1;
}
message PromotedTypeOperator {
HaskellTerm value = 1;
}
message QualifiedConstructorIdentifier {
repeated HaskellTerm values = 1;
}
message QualifiedInfixVariableIdentifier {
repeated HaskellTerm values = 1;
}
message QualifiedModuleIdentifier {
repeated HaskellTerm values = 1;
}
message QualifiedImportDeclaration {
HaskellTerm qualifiedImportPackageQualifiedContent = 1;
HaskellTerm qualifiedImportModule = 2;
repeated HaskellTerm qualifiedImportSpec = 3;
}
message QualifiedTypeClassIdentifier {
repeated HaskellTerm values = 1;
}
message QualifiedTypeConstructorIdentifier {
repeated HaskellTerm values = 1;
}
message QualifiedVariableIdentifier {
repeated HaskellTerm values = 1;
}
message QuasiQuotation {
HaskellTerm quasiQuotationHead = 1;
HaskellTerm quasiQuotationBody = 2;
}
message QuasiQuotationDeclaration { }
message QuasiQuotationExpression { }
message QuasiQuotationExpressionBody {
bytes name = 1;
}
message QuasiQuotationPattern { }
message QuasiQuotationQuoter {
bytes name = 1;
}
message QuasiQuotationType { }
message QuotedName {
HaskellTerm quotedNameContent = 1;
}
message RecordDataConstructor {
repeated HaskellTerm recordDataConstructorContext = 1;
HaskellTerm recordDataConstructorName = 2;
HaskellTerm recordDataConstructorFields = 3;
}
message RecordWildCards { }
message RightOperatorSection {
HaskellTerm lhs = 1;
HaskellTerm rhs = 2;
}
message ScopedTypeVariables {
HaskellTerm scopedTypeVariablesContent = 1;
}
message Splice {
HaskellTerm value = 1;
}
message StandaloneDerivingInstance {
repeated HaskellTerm standaloneDerivingInstanceContext = 1;
HaskellTerm standaloneDerivingInstanceClass = 2;
HaskellTerm standaloneDerivingInstanceInstance = 3;
}
message Star { }
message StrictPattern {
HaskellTerm value = 1;
}
message StrictType {
HaskellTerm strictTypeIdentifier = 1;
HaskellTerm strictTypeParameters = 2;
}
message StrictTypeVariable {
HaskellTerm value = 1;
}
message TupleConstructor {
int64 tupleConstructorArity = 1;
}
message TupleExpression {
repeated HaskellTerm values = 1;
}
message TuplePattern {
repeated HaskellTerm value = 1;
}
message Type {
HaskellTerm typeIdentifier = 1;
HaskellTerm typeParameters = 2;
HaskellTerm typeKindSignature = 3;
}
message TypeApp {
HaskellTerm typeAppType = 1;
}
message TypeClass {
HaskellTerm typeClassContext = 1;
HaskellTerm typeClassIdentifier = 2;
repeated HaskellTerm typeClassParameters = 3;
HaskellTerm typeClassBody = 4;
}
message TypeClassIdentifier {
bytes name = 1;
}
message TypeClassInstance {
repeated HaskellTerm typeClassInstanceContext = 1;
HaskellTerm typeClassInstanceIdentifier = 2;
HaskellTerm typeClassInstanceInstance = 3;
HaskellTerm typeClassInstanceBody = 4;
}
message TypeConstructorExport {
HaskellTerm typeConstructorExportContent = 1;
}
message TypeConstructorIdentifier {
bytes name = 1;
}
message TypeFamily {
HaskellTerm typeFamilyIdentifier = 1;
repeated HaskellTerm typeFamilyParameters = 2;
HaskellTerm typeFamilySignature = 3;
HaskellTerm typeFamilyBody = 4;
}
message TypeInstance {
HaskellTerm typeInstanceType = 1;
HaskellTerm typeInstanceBody = 2;
}
message TypeOperator {
bytes name = 1;
}
message TypePattern {
HaskellTerm typePatternContent = 1;
}
message TypeSignature {
repeated HaskellTerm typeSignatureName = 1;
repeated HaskellTerm typeSignatureContext = 2;
HaskellTerm typeSignatureContent = 3;
}
message TypeSynonym {
HaskellTerm typeSynonymLeft = 1;
repeated HaskellTerm typeSynonymContext = 2;
HaskellTerm typeSynonymRight = 3;
}
message TypeVariableIdentifier {
bytes name = 1;
}
message UnitConstructor { }
message VariableIdentifier {
bytes name = 1;
}
message VariableOperator {
HaskellTerm value = 1;
}
message VariableSymbol {
bytes variableSymbolName = 1;
}
message ViewPattern {
HaskellTerm viewPatternLeft = 1;
HaskellTerm viewPatternRight = 2;
}
message Wildcard { }
message TypeParameters {
repeated HaskellTerm terms = 1;
}
message List {
repeated HaskellTerm listContent = 1;
}