// This file was generated by proto-gen. Do not edit by hand. syntax = "proto3"; package github.semantic.typescriptterm; import "types.proto"; option java_package = "com.github.semantic.typescriptterm"; option go_package = "github.com/semantic/typescriptterm;typescript"; message TypeScriptTerm { TypeScriptSyntax syntax = 1; } message TypeScriptSyntax { oneof syntax { Comment comment = 1; HashBang hashBang = 2; Class class = 3; Function function = 4; Method method = 5; MethodSignature methodSignature = 6; InterfaceDeclaration interfaceDeclaration = 7; PublicFieldDefinition publicFieldDefinition = 8; VariableDeclaration variableDeclaration = 9; TypeAlias typeAlias = 10; AccessControl accessControl = 11; Plus plus = 12; Minus minus = 13; Times times = 14; DividedBy dividedBy = 15; Modulo modulo = 16; Power power = 17; Negate negate = 18; FloorDivision floorDivision = 19; BAnd bAnd = 20; BOr bOr = 21; BXOr bXOr = 22; LShift lShift = 23; RShift rShift = 24; UnsignedRShift unsignedRShift = 25; Complement complement = 26; And and = 27; Not not = 28; Or or = 29; XOr xOr = 30; Call call = 31; Cast cast = 32; LessThan lessThan = 33; LessThanEqual lessThanEqual = 34; GreaterThan greaterThan = 35; GreaterThanEqual greaterThanEqual = 36; Equal equal = 37; StrictEqual strictEqual = 38; Comparison comparison = 39; Enumeration enumeration = 40; MemberAccess memberAccess = 41; NonNullExpression nonNullExpression = 42; ScopeResolution scopeResolution = 43; SequenceExpression sequenceExpression = 44; Subscript subscript = 45; Member member = 46; Delete delete = 47; Void void = 48; Typeof typeof = 49; InstanceOf instanceOf = 50; New new = 51; Await await = 52; This this = 53; Array array = 54; Boolean boolean = 55; Float float = 56; Hash hash = 57; Integer integer = 58; KeyValue keyValue = 59; Null null = 60; String string = 61; TextElement textElement = 62; Regex regex = 63; Assignment assignment = 64; Break break = 65; Catch catch = 66; Continue continue = 67; DoWhile doWhile = 68; Else else = 69; Finally finally = 70; For for = 71; ForEach forEach = 72; If if = 73; Match match = 74; Pattern pattern = 75; Retry retry = 76; Return return = 77; ScopeEntry scopeEntry = 78; ScopeExit scopeExit = 79; Statements statements = 80; Throw throw = 81; Try try = 82; While while = 83; Yield yield = 84; AccessibilityModifier accessibilityModifier = 85; Empty empty = 86; Error error = 87; Identifier identifier = 88; Context context = 89; Readonly readonly = 90; TypeParameters typeParameters = 91; TypeParameter typeParameter = 92; Constraint constraint = 93; ParenthesizedType parenthesizedType = 94; DefaultType defaultType = 95; PredefinedType predefinedType = 96; TypeIdentifier typeIdentifier = 97; NestedIdentifier nestedIdentifier = 98; NestedTypeIdentifier nestedTypeIdentifier = 99; GenericType genericType = 100; TypeArguments typeArguments = 101; TypePredicate typePredicate = 102; CallSignature callSignature = 103; ConstructSignature constructSignature = 104; ArrayType arrayType = 105; LookupType lookupType = 106; FlowMaybeType flowMaybeType = 107; TypeQuery typeQuery = 108; IndexTypeQuery indexTypeQuery = 109; ThisType thisType = 110; ExistentialType existentialType = 111; AbstractMethodSignature abstractMethodSignature = 112; IndexSignature indexSignature = 113; ObjectType objectType = 114; LiteralType literalType = 115; Union union = 116; Intersection intersection = 117; Module module = 118; InternalModule internalModule = 119; FunctionType functionType = 120; Tuple tuple = 121; Constructor constructor = 122; TypeAssertion typeAssertion = 123; ImportAlias importAlias = 124; Debugger debugger = 125; ShorthandPropertyIdentifier shorthandPropertyIdentifier = 126; Super super = 127; Undefined undefined = 128; ClassHeritage classHeritage = 129; AbstractClass abstractClass = 130; ImplementsClause implementsClause = 131; JsxElement jsxElement = 132; JsxSelfClosingElement jsxSelfClosingElement = 133; JsxOpeningElement jsxOpeningElement = 134; JsxText jsxText = 135; JsxClosingElement jsxClosingElement = 136; JsxExpression jsxExpression = 137; JsxAttribute jsxAttribute = 138; JsxFragment jsxFragment = 139; JsxNamespaceName jsxNamespaceName = 140; OptionalParameter optionalParameter = 141; RequiredParameter requiredParameter = 142; RestParameter restParameter = 143; PropertySignature propertySignature = 144; AmbientDeclaration ambientDeclaration = 145; EnumDeclaration enumDeclaration = 146; ExtendsClause extendsClause = 147; AmbientFunction ambientFunction = 148; ImportRequireClause importRequireClause = 149; ImportClause importClause = 150; LabeledStatement labeledStatement = 151; Annotation annotation = 152; With with = 153; ForOf forOf = 154; Update update = 155; ComputedPropertyName computedPropertyName = 156; Decorator decorator = 157; Import import = 158; QualifiedAliasedImport qualifiedAliasedImport = 159; SideEffectImport sideEffectImport = 160; DefaultExport defaultExport = 161; QualifiedExport qualifiedExport = 162; QualifiedExportFrom qualifiedExportFrom = 163; JavaScriptRequire javaScriptRequire = 164; List list = 165; StatementBlock statementBlock = 166; MetaProperty metaProperty = 167; } } message Comment { string commentContent = 1; } message HashBang { string value = 1; } message Class { repeated TypeScriptTerm classContext = 1; TypeScriptTerm classIdentifier = 2; repeated TypeScriptTerm classSuperclasses = 3; TypeScriptTerm classBody = 4; } message Function { repeated TypeScriptTerm functionContext = 1; TypeScriptTerm functionName = 2; repeated TypeScriptTerm functionParameters = 3; TypeScriptTerm functionBody = 4; } message Method { repeated TypeScriptTerm methodContext = 1; TypeScriptTerm methodAccessControl = 2; TypeScriptTerm methodReceiver = 3; TypeScriptTerm methodName = 4; repeated TypeScriptTerm methodParameters = 5; TypeScriptTerm methodBody = 6; } message MethodSignature { repeated TypeScriptTerm methodSignatureContext = 1; TypeScriptTerm methodSignatureAccessControl = 2; TypeScriptTerm methodSignatureName = 3; repeated TypeScriptTerm methodSignatureParameters = 4; } message InterfaceDeclaration { repeated TypeScriptTerm interfaceDeclarationContext = 1; TypeScriptTerm interfaceDeclarationIdentifier = 2; repeated TypeScriptTerm interfaceDeclarationSuperInterfaces = 3; TypeScriptTerm interfaceDeclarationBody = 4; } message PublicFieldDefinition { repeated TypeScriptTerm publicFieldContext = 1; TypeScriptTerm publicFieldAccessControl = 2; TypeScriptTerm publicFieldPropertyName = 3; TypeScriptTerm publicFieldValue = 4; } message VariableDeclaration { repeated TypeScriptTerm variableDeclarations = 1; } message TypeAlias { repeated TypeScriptTerm typeAliasContext = 1; TypeScriptTerm typeAliasIdentifier = 2; TypeScriptTerm typeAliasKind = 3; } message AccessControl { } message Plus { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Minus { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Times { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message DividedBy { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Modulo { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Power { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Negate { TypeScriptTerm value = 1; } message FloorDivision { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message BAnd { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message BOr { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message BXOr { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message LShift { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message RShift { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message UnsignedRShift { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Complement { TypeScriptTerm value = 1; } message And { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Not { TypeScriptTerm value = 1; } message Or { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message XOr { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Call { repeated TypeScriptTerm callContext = 1; TypeScriptTerm callFunction = 2; repeated TypeScriptTerm callParams = 3; TypeScriptTerm callBlock = 4; } message Cast { TypeScriptTerm castSubject = 1; TypeScriptTerm castType = 2; } message LessThan { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message LessThanEqual { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message GreaterThan { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message GreaterThanEqual { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Equal { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message StrictEqual { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Comparison { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Enumeration { TypeScriptTerm enumerationStart = 1; TypeScriptTerm enumerationEnd = 2; TypeScriptTerm enumerationStep = 3; } message MemberAccess { TypeScriptTerm lhs = 1; bytes rhs = 2; } message NonNullExpression { TypeScriptTerm nonNullExpression = 1; } message ScopeResolution { repeated TypeScriptTerm scopes = 1; } message SequenceExpression { TypeScriptTerm firstExpression = 1; TypeScriptTerm secondExpression = 2; } message Subscript { TypeScriptTerm lhs = 1; repeated TypeScriptTerm rhs = 2; } message Member { TypeScriptTerm lhs = 1; TypeScriptTerm rhs = 2; } message Delete { TypeScriptTerm value = 1; } message Void { TypeScriptTerm value = 1; } message Typeof { TypeScriptTerm value = 1; } message InstanceOf { TypeScriptTerm instanceOfSubject = 1; TypeScriptTerm instanceOfObject = 2; } message New { TypeScriptTerm newSubject = 1; TypeScriptTerm newTypeParameters = 2; repeated TypeScriptTerm newArguments = 3; } message Await { TypeScriptTerm awaitSubject = 1; } message This { } message Array { repeated TypeScriptTerm arrayElements = 1; } message Boolean { bool booleanContent = 1; } message Float { string floatContent = 1; } message Hash { repeated TypeScriptTerm hashElements = 1; } message Integer { string integerContent = 1; } message KeyValue { TypeScriptTerm key = 1; TypeScriptTerm value = 2; } message Null { } message String { repeated TypeScriptTerm stringElements = 1; } message TextElement { string textElementContent = 1; } message Regex { string regexContent = 1; } message Assignment { repeated TypeScriptTerm assignmentContext = 1; TypeScriptTerm assignmentTarget = 2; TypeScriptTerm assignmentValue = 3; } message Break { TypeScriptTerm value = 1; } message Catch { TypeScriptTerm catchException = 1; TypeScriptTerm catchBody = 2; } message Continue { TypeScriptTerm value = 1; } message DoWhile { TypeScriptTerm doWhileCondition = 1; TypeScriptTerm doWhileBody = 2; } message Else { TypeScriptTerm elseCondition = 1; TypeScriptTerm elseBody = 2; } message Finally { TypeScriptTerm value = 1; } message For { TypeScriptTerm forBefore = 1; TypeScriptTerm forCondition = 2; TypeScriptTerm forStep = 3; TypeScriptTerm forBody = 4; } message ForEach { TypeScriptTerm forEachBinding = 1; TypeScriptTerm forEachSubject = 2; TypeScriptTerm forEachBody = 3; } message If { TypeScriptTerm ifCondition = 1; TypeScriptTerm ifThenBody = 2; TypeScriptTerm ifElseBody = 3; } message Match { TypeScriptTerm matchSubject = 1; TypeScriptTerm matchPatterns = 2; } message Pattern { TypeScriptTerm value = 1; TypeScriptTerm patternBody = 2; } message Retry { TypeScriptTerm value = 1; } message Return { TypeScriptTerm value = 1; } message ScopeEntry { repeated TypeScriptTerm terms = 1; } message ScopeExit { repeated TypeScriptTerm terms = 1; } message Statements { repeated TypeScriptTerm statements = 1; } message Throw { TypeScriptTerm value = 1; } message Try { TypeScriptTerm tryBody = 1; repeated TypeScriptTerm tryCatch = 2; } message While { TypeScriptTerm whileCondition = 1; TypeScriptTerm whileBody = 2; } message Yield { TypeScriptTerm value = 1; } message AccessibilityModifier { string contents = 1; } message Empty { } message Error { repeated ErrorSite errorCallStack = 1; repeated string errorExpected = 2; string errorActual = 3; repeated TypeScriptTerm errorChildren = 4; } message Identifier { bytes name = 1; } message Context { repeated TypeScriptTerm contextTerms = 1; TypeScriptTerm contextSubject = 2; } message Readonly { } message TypeParameters { repeated TypeScriptTerm terms = 1; } message TypeParameter { TypeScriptTerm typeParameter = 1; TypeScriptTerm typeParameterConstraint = 2; TypeScriptTerm typeParameterDefaultType = 3; } message Constraint { TypeScriptTerm constraintType = 1; } message ParenthesizedType { TypeScriptTerm parenthesizedType = 1; } message DefaultType { TypeScriptTerm defaultType = 1; } message PredefinedType { string predefinedType = 1; } message TypeIdentifier { string contents = 1; } message NestedIdentifier { TypeScriptTerm left = 1; TypeScriptTerm right = 2; } message NestedTypeIdentifier { TypeScriptTerm left = 1; TypeScriptTerm right = 2; } message GenericType { TypeScriptTerm genericTypeIdentifier = 1; TypeScriptTerm genericTypeArguments = 2; } message TypeArguments { repeated TypeScriptTerm typeArguments = 1; } message TypePredicate { TypeScriptTerm typePredicateIdentifier = 1; TypeScriptTerm typePredicateType = 2; } message CallSignature { TypeScriptTerm callSignatureTypeParameters = 1; repeated TypeScriptTerm callSignatureParameters = 2; TypeScriptTerm callSignatureType = 3; } message ConstructSignature { TypeScriptTerm constructSignatureTypeParameters = 1; repeated TypeScriptTerm constructSignatureParameters = 2; TypeScriptTerm constructSignatureType = 3; } message ArrayType { TypeScriptTerm arrayType = 1; } message LookupType { TypeScriptTerm lookupTypeIdentifier = 1; TypeScriptTerm lookupTypeKey = 2; } message FlowMaybeType { TypeScriptTerm flowMaybeType = 1; } message TypeQuery { TypeScriptTerm typeQuerySubject = 1; } message IndexTypeQuery { TypeScriptTerm indexTypeQuerySubject = 1; } message ThisType { string contents = 1; } message ExistentialType { string contents = 1; } message AbstractMethodSignature { repeated TypeScriptTerm abstractMethodSignatureContext = 1; TypeScriptTerm abstractMethodSignatureName = 2; repeated TypeScriptTerm abstractMethodSignatureParameters = 3; } message IndexSignature { TypeScriptTerm subject = 1; TypeScriptTerm subjectType = 2; TypeScriptTerm typeAnnotation = 3; } message ObjectType { repeated TypeScriptTerm objectTypeElements = 1; } message LiteralType { TypeScriptTerm literalTypeSubject = 1; } message Union { TypeScriptTerm unionLeft = 1; TypeScriptTerm unionRight = 2; } message Intersection { TypeScriptTerm intersectionLeft = 1; TypeScriptTerm intersectionRight = 2; } message Module { TypeScriptTerm moduleIdentifier = 1; repeated TypeScriptTerm moduleStatements = 2; } message InternalModule { TypeScriptTerm internalModuleIdentifier = 1; repeated TypeScriptTerm internalModuleStatements = 2; } message FunctionType { TypeScriptTerm functionTypeParameters = 1; repeated TypeScriptTerm functionFormalParameters = 2; TypeScriptTerm functionType = 3; } message Tuple { repeated TypeScriptTerm tupleElements = 1; } message Constructor { TypeScriptTerm constructorTypeParameters = 1; repeated TypeScriptTerm constructorFormalParameters = 2; TypeScriptTerm constructorType = 3; } message TypeAssertion { TypeScriptTerm typeAssertionParameters = 1; TypeScriptTerm typeAssertionExpression = 2; } message ImportAlias { TypeScriptTerm importAliasSubject = 1; TypeScriptTerm importAlias = 2; } message Debugger { } message ShorthandPropertyIdentifier { string contents = 1; } message Super { } message Undefined { } message ClassHeritage { TypeScriptTerm classHeritageExtendsClause = 1; TypeScriptTerm implementsClause = 2; } message AbstractClass { TypeScriptTerm abstractClassIdentifier = 1; TypeScriptTerm abstractClassTypeParameters = 2; repeated TypeScriptTerm classHeritage = 3; TypeScriptTerm classBody = 4; } message ImplementsClause { repeated TypeScriptTerm implementsClauseTypes = 1; } message JsxElement { TypeScriptTerm jsxOpeningElement = 1; repeated TypeScriptTerm jsxElements = 2; TypeScriptTerm jsxClosingElement = 3; } message JsxSelfClosingElement { TypeScriptTerm jsxSelfClosingElementIdentifier = 1; repeated TypeScriptTerm jsxSelfClosingElementAttributes = 2; } message JsxOpeningElement { TypeScriptTerm jsxOpeningElementIdentifier = 1; repeated TypeScriptTerm jsxAttributes = 2; } message JsxText { string contents = 1; } message JsxClosingElement { TypeScriptTerm jsxClosingElementIdentifier = 1; } message JsxExpression { TypeScriptTerm jsxExpression = 1; } message JsxAttribute { TypeScriptTerm jsxAttributeTarget = 1; TypeScriptTerm jsxAttributeValue = 2; } message JsxFragment { repeated TypeScriptTerm terms = 1; } message JsxNamespaceName { TypeScriptTerm left = 1; TypeScriptTerm right = 2; } message OptionalParameter { repeated TypeScriptTerm optionalParameterContext = 1; TypeScriptTerm optionalParameterSubject = 2; } message RequiredParameter { repeated TypeScriptTerm requiredParameterContext = 1; TypeScriptTerm requiredParameterSubject = 2; TypeScriptTerm requiredParameterValue = 3; } message RestParameter { repeated TypeScriptTerm restParameterContext = 1; TypeScriptTerm restParameterSubject = 2; } message PropertySignature { repeated TypeScriptTerm modifiers = 1; TypeScriptTerm propertySignaturePropertyName = 2; } message AmbientDeclaration { TypeScriptTerm ambientDeclarationBody = 1; } message EnumDeclaration { TypeScriptTerm enumDeclarationIdentifier = 1; repeated TypeScriptTerm enumDeclarationBody = 2; } message ExtendsClause { repeated TypeScriptTerm extendsClauses = 1; } message AmbientFunction { repeated TypeScriptTerm ambientFunctionContext = 1; TypeScriptTerm ambientFunctionIdentifier = 2; repeated TypeScriptTerm ambientFunctionParameters = 3; } message ImportRequireClause { TypeScriptTerm importRequireIdentifier = 1; TypeScriptTerm importRequireSubject = 2; } message ImportClause { repeated TypeScriptTerm importClauseElements = 1; } message LabeledStatement { TypeScriptTerm labeledStatementIdentifier = 1; TypeScriptTerm labeledStatementSubject = 2; } message Annotation { TypeScriptTerm annotationType = 1; } message With { TypeScriptTerm withExpression = 1; TypeScriptTerm withBody = 2; } message ForOf { TypeScriptTerm forOfBinding = 1; TypeScriptTerm forOfSubject = 2; TypeScriptTerm forOfBody = 3; } message Update { TypeScriptTerm updateSubject = 1; } message ComputedPropertyName { TypeScriptTerm propertyName = 1; } message Decorator { TypeScriptTerm decoratorTerm = 1; } message Import { repeated Alias importSymbols = 1; ImportPath importFrom = 2; } message QualifiedAliasedImport { TypeScriptTerm qualifiedAliasedImportAlias = 1; ImportPath qualifiedAliasedImportFrom = 2; } message SideEffectImport { ImportPath sideEffectImportFrom = 1; } message DefaultExport { TypeScriptTerm defaultExport = 1; } message QualifiedExport { repeated Alias qualifiedExportSymbols = 1; } message QualifiedExportFrom { ImportPath qualifiedExportFrom = 1; repeated Alias qualifiedExportFromSymbols = 2; } message JavaScriptRequire { TypeScriptTerm javascriptRequireIden = 1; ImportPath javascriptRequireFrom = 2; } message List { repeated TypeScriptTerm listContent = 1; } message StatementBlock { repeated TypeScriptTerm statements = 1; } message MetaProperty { } message Alias { bytes aliasValue = 1; bytes aliasName = 2; } message ImportPath { string unPath = 1; IsRelative pathIsRelative = 2; } enum IsRelative { Unknown = 0; Relative = 1; NonRelative = 2; }