1
1
mirror of https://github.com/github/semantic.git synced 2024-12-21 05:41:54 +03:00
semantic/proto/types.proto
2018-06-20 16:33:58 -04:00

70 lines
2.2 KiB
Protocol Buffer

syntax = "proto3";
package github.semantic.v1alpha1;
enum Language {Unknown = 0;
Go = 1;
Haskell = 2;
Java = 3;
JavaScript = 4;
JSON = 5;
JSX = 6;
Markdown = 7;
Python = 8;
Ruby = 9;
TypeScript = 10;
PHP = 11;}
message Blob { bytes blobSource = 1;
string blobPath = 2;
Language blobLanguage = 3;
}
message Pos { int64 posLine = 1;
int64 posColumn = 2;
}
message Span { Pos spanStart = 1;
Pos spanEnd = 2;
}
message SrcLoc { string srcLocPackage = 1;
string srcLocModule = 2;
string srcLocFile = 3;
int64 srcLocStartLine = 4;
int64 srcLocStartCol = 5;
int64 srcLocEndLine = 6;
int64 srcLocEndCol = 7;
}
message ErrorSite { string errorMessage = 1;
SrcLoc errorLocation = 2;
}
message Error { repeated ErrorSite errorCallStack = 1;
repeated string errorExpected = 2;
string errorActual = 3;
repeated Term errorChildren = 4;
}
message Array { repeated Term arrayElements = 1;
}
message Boolean { bool booleanContent = 1;
}
message Hash { repeated Term hashElements = 1;
}
message Float { string floatContent = 1;
}
message KeyValue { Term key = 1;
Term value = 2;
}
message Null {
}
message TextElement { string textElementContent = 1;
}
message Statements { repeated Term statements = 1;
}
message Syntax { oneof syntax {Null null = 1;
Array array = 2;
Boolean boolean = 3;
Hash hash = 4;
Float float = 5;
KeyValue keyValue = 6;
TextElement textElement = 7;
Statements statements = 8;}
}
message Term {
Syntax syntax = 1;
}