mirror of
https://github.com/github/semantic.git
synced 2024-12-01 09:15:01 +03:00
481 lines
7.6 KiB
Protocol Buffer
481 lines
7.6 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package github.semantic.ruby;
|
|
|
|
import "types.proto";
|
|
|
|
option java_package = "com.github.semantic.ruby";
|
|
option go_package = "github.com/semantic/ruby;ruby";
|
|
|
|
message RubyTerm {
|
|
RubySyntax syntax = 1;
|
|
}
|
|
|
|
message Comment {
|
|
string commentContent = 1;
|
|
}
|
|
|
|
message Function {
|
|
repeated RubyTerm functionContext = 1;
|
|
RubyTerm functionName = 2;
|
|
repeated RubyTerm functionParameters = 3;
|
|
RubyTerm functionBody = 4;
|
|
}
|
|
|
|
message Method {
|
|
repeated RubyTerm methodContext = 1;
|
|
RubyTerm methodReceiver = 2;
|
|
RubyTerm methodName = 3;
|
|
repeated RubyTerm methodParameters = 4;
|
|
RubyTerm methodBody = 5;
|
|
}
|
|
|
|
message File { }
|
|
|
|
message Line { }
|
|
|
|
message Error {
|
|
repeated ErrorSite errorCallStack = 1;
|
|
repeated string errorExpected = 2;
|
|
string errorActual = 3;
|
|
repeated RubyTerm errorChildren = 4;
|
|
}
|
|
|
|
message And {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message BAnd {
|
|
RubyTerm left = 1;
|
|
RubyTerm right = 2;
|
|
}
|
|
|
|
message BOr {
|
|
RubyTerm left = 1;
|
|
RubyTerm right = 2;
|
|
}
|
|
|
|
message BXOr {
|
|
RubyTerm left = 1;
|
|
RubyTerm right = 2;
|
|
}
|
|
|
|
message Call {
|
|
repeated RubyTerm callContext = 1;
|
|
RubyTerm callFunction = 2;
|
|
repeated RubyTerm callParams = 3;
|
|
RubyTerm callBlock = 4;
|
|
}
|
|
|
|
message Comparison {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Complement {
|
|
RubyTerm value = 1;
|
|
}
|
|
|
|
message DividedBy {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Enumeration {
|
|
RubyTerm enumerationStart = 1;
|
|
RubyTerm enumerationEnd = 2;
|
|
RubyTerm enumerationStep = 3;
|
|
}
|
|
|
|
message Equal {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message FloorDivision {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message GreaterThan {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message GreaterThanEqual {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message LShift {
|
|
RubyTerm left = 1;
|
|
RubyTerm right = 2;
|
|
}
|
|
|
|
message LessThan {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message LessThanEqual {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Matches {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Member {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message MemberAccess {
|
|
RubyTerm lhs = 1;
|
|
bytes rhs = 2;
|
|
}
|
|
|
|
message Minus {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Modulo {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Negate {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message Not {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message NotMatches {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Or {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Plus {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Power {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message RShift {
|
|
RubyTerm left = 1;
|
|
RubyTerm right = 2;
|
|
}
|
|
|
|
message ScopeResolution {
|
|
repeated RubyTerm scopes = 1;
|
|
}
|
|
|
|
message StrictEqual {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Subscript {
|
|
RubyTerm lhs = 1;
|
|
repeated RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Times {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message XOr {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Array {
|
|
repeated RubyTerm arrayElements = 1;
|
|
}
|
|
|
|
message Boolean {
|
|
bool booleanContent = 1;
|
|
}
|
|
|
|
message Complex {
|
|
string value = 1;
|
|
}
|
|
|
|
message Float {
|
|
string floatContent = 1;
|
|
}
|
|
|
|
message Hash {
|
|
repeated RubyTerm hashElements = 1;
|
|
}
|
|
|
|
message Integer {
|
|
string integerContent = 1;
|
|
}
|
|
|
|
message KeyValue {
|
|
RubyTerm key = 1;
|
|
RubyTerm value = 2;
|
|
}
|
|
|
|
message Null { }
|
|
|
|
message Rational {
|
|
string value = 1;
|
|
}
|
|
|
|
message Regex {
|
|
string regexContent = 1;
|
|
}
|
|
|
|
message String {
|
|
repeated RubyTerm stringElements = 1;
|
|
}
|
|
|
|
message Symbol {
|
|
string symbolContent = 1;
|
|
}
|
|
|
|
message TextElement {
|
|
string textElementContent = 1;
|
|
}
|
|
|
|
message Class {
|
|
RubyTerm classIdentifier = 1;
|
|
repeated RubyTerm classSuperClass = 2;
|
|
RubyTerm classBody = 3;
|
|
}
|
|
|
|
message Load {
|
|
RubyTerm loadPath = 1;
|
|
repeated RubyTerm loadWrap = 2;
|
|
}
|
|
|
|
message LowPrecedenceAnd {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message LowPrecedenceOr {
|
|
RubyTerm lhs = 1;
|
|
RubyTerm rhs = 2;
|
|
}
|
|
|
|
message Module {
|
|
RubyTerm moduleIdentifier = 1;
|
|
repeated RubyTerm moduleStatements = 2;
|
|
}
|
|
|
|
message Require {
|
|
bool requireRelative = 1;
|
|
RubyTerm requirePath = 2;
|
|
}
|
|
|
|
message Send {
|
|
repeated RubyTerm sendReceiver = 1;
|
|
repeated RubyTerm sendSelector = 2;
|
|
repeated RubyTerm sendArgs = 3;
|
|
repeated RubyTerm sendBlock = 4;
|
|
}
|
|
|
|
message Assignment {
|
|
repeated RubyTerm assignmentContext = 1;
|
|
RubyTerm assignmentTarget = 2;
|
|
RubyTerm assignmentValue = 3;
|
|
}
|
|
|
|
message Break {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message Catch {
|
|
RubyTerm catchException = 1;
|
|
RubyTerm catchBody = 2;
|
|
}
|
|
|
|
message Continue {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message Else {
|
|
RubyTerm elseCondition = 1;
|
|
RubyTerm elseBody = 2;
|
|
}
|
|
|
|
message Finally {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message ForEach {
|
|
RubyTerm forEachBinding = 1;
|
|
RubyTerm forEachSubject = 2;
|
|
RubyTerm forEachBody = 3;
|
|
}
|
|
|
|
message If {
|
|
RubyTerm ifCondition = 1;
|
|
RubyTerm ifThenBody = 2;
|
|
RubyTerm ifElseBody = 3;
|
|
}
|
|
|
|
message Match {
|
|
RubyTerm matchSubject = 1;
|
|
RubyTerm matchPatterns = 2;
|
|
}
|
|
|
|
message Pattern {
|
|
RubyTerm value = 1;
|
|
RubyTerm patternBody = 2;
|
|
}
|
|
|
|
message Retry {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message Return {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message ScopeEntry {
|
|
repeated RubyTerm terms = 1;
|
|
}
|
|
|
|
message ScopeExit {
|
|
repeated RubyTerm terms = 1;
|
|
}
|
|
|
|
message Statements {
|
|
repeated RubyTerm statements = 1;
|
|
}
|
|
|
|
message Try {
|
|
RubyTerm tryBody = 1;
|
|
repeated RubyTerm tryCatch = 2;
|
|
}
|
|
|
|
message While {
|
|
RubyTerm whileCondition = 1;
|
|
RubyTerm whileBody = 2;
|
|
}
|
|
|
|
message Yield {
|
|
RubyTerm term = 1;
|
|
}
|
|
|
|
message RubySyntax {
|
|
oneof syntax {
|
|
Comment comment = 1;
|
|
Function function = 2;
|
|
Boolean boolean = 3;
|
|
Method method = 4;
|
|
File file = 5;
|
|
Line line = 6;
|
|
Plus plus = 7;
|
|
Minus minus = 8;
|
|
Times times = 9;
|
|
DividedBy dividedBy = 10;
|
|
Modulo modulo = 11;
|
|
Power power = 12;
|
|
Negate negate = 13;
|
|
FloorDivision floorDivision = 14;
|
|
BAnd bAnd = 15;
|
|
BOr bOr = 16;
|
|
BXOr bXOr = 17;
|
|
LShift lShift = 18;
|
|
RShift rShift = 19;
|
|
Complement complement = 20;
|
|
And and = 21;
|
|
Not not = 22;
|
|
Or or = 23;
|
|
XOr xOr = 24;
|
|
Call call = 25;
|
|
LessThan lessThan = 26;
|
|
LessThanEqual lessThanEqual = 27;
|
|
GreaterThan greaterThan = 28;
|
|
GreaterThanEqual greaterThanEqual = 29;
|
|
Equal equal = 30;
|
|
StrictEqual strictEqual = 31;
|
|
Comparison comparison = 32;
|
|
Enumeration enumeration = 33;
|
|
Matches matches = 34;
|
|
NotMatches notMatches = 35;
|
|
MemberAccess memberAccess = 36;
|
|
ScopeResolution scopeResolution = 37;
|
|
Subscript subscript = 38;
|
|
Member member = 39;
|
|
Array array = 40;
|
|
Complex complex = 41;
|
|
Float float = 42;
|
|
Hash hash = 43;
|
|
Integer integer = 44;
|
|
KeyValue keyValue = 45;
|
|
Null null = 46;
|
|
Rational rational = 47;
|
|
Regex regex = 48;
|
|
String string = 49;
|
|
Symbol symbol = 50;
|
|
TextElement textElement = 51;
|
|
Assignment assignment = 52;
|
|
Break break = 53;
|
|
Catch catch = 54;
|
|
Continue continue = 55;
|
|
Else else = 56;
|
|
Finally finally = 57;
|
|
ForEach forEach = 58;
|
|
If if = 59;
|
|
Match match = 60;
|
|
Pattern pattern = 61;
|
|
Retry retry = 62;
|
|
Return return = 63;
|
|
ScopeEntry scopeEntry = 64;
|
|
ScopeExit scopeExit = 65;
|
|
Statements statements = 66;
|
|
Try try = 67;
|
|
While while = 68;
|
|
Yield yield = 69;
|
|
Context context = 70;
|
|
Empty empty = 71;
|
|
Error error = 72;
|
|
Identifier identifier = 73;
|
|
Class class = 74;
|
|
Load load = 75;
|
|
LowPrecedenceAnd lowPrecedenceAnd = 76;
|
|
LowPrecedenceOr lowPrecedenceOr = 77;
|
|
Module module = 78;
|
|
Require require = 79;
|
|
Send send = 80;
|
|
List list = 81;
|
|
}
|
|
}
|
|
|
|
message Context {
|
|
repeated RubyTerm contextTerms = 1;
|
|
RubyTerm contextSubject = 2;
|
|
}
|
|
|
|
message Empty { }
|
|
|
|
message Identifier {
|
|
bytes name = 1;
|
|
}
|
|
|
|
message List {
|
|
repeated RubyTerm listContent = 1;
|
|
}
|