File: ISyntaxKinds.cs
Web Access
Project: ..\..\..\src\Workspaces\Core\Portable\Microsoft.CodeAnalysis.Workspaces.csproj (Microsoft.CodeAnalysis.Workspaces)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
namespace Microsoft.CodeAnalysis.LanguageService
{
    /// <summary>
    /// Provides a uniform view of SyntaxKinds over C# and VB for constructs they have
    /// in common.
    /// </summary>
    internal interface ISyntaxKinds
    {
        TSyntaxKind Convert<TSyntaxKind>(int kind) where TSyntaxKind : struct;
        int Convert<TSyntaxKind>(TSyntaxKind kind) where TSyntaxKind : struct;
 
        #region trivia
 
        int ConflictMarkerTrivia { get; }
        int DisabledTextTrivia { get; }
        int EndOfLineTrivia { get; }
        int SkippedTokensTrivia { get; }
        int WhitespaceTrivia { get; }
        int SingleLineCommentTrivia { get; }
 
        /// <summary>
        /// Gets the syntax kind for a multi-line comment.
        /// </summary>
        /// <value>
        /// The raw syntax kind for a multi-line comment; otherwise, <see langword="null"/> if the language does not
        /// support multi-line comments.
        /// </value>
        int? MultiLineCommentTrivia { get; }
 
        int SingleLineDocCommentTrivia { get; }
        int? MultiLineDocCommentTrivia { get; }
        int? ShebangDirectiveTrivia { get; }
 
        int IfDirectiveTrivia { get; }
 
        #endregion
 
        #region keywords
 
        int AwaitKeyword { get; }
        int AsyncKeyword { get; }
        int DelegateKeyword { get; }
        int GlobalKeyword { get; }
        int IfKeyword { get; }
        int? GlobalStatement { get; }
        int TrueKeyword { get; }
        int FalseKeyword { get; }
        int UsingKeyword { get; }
 
        #endregion
 
        #region literal tokens
 
        int CharacterLiteralToken { get; }
        int StringLiteralToken { get; }
        int? SingleLineRawStringLiteralToken { get; }
        int? MultiLineRawStringLiteralToken { get; }
        int? Utf8StringLiteralToken { get; }
        int? Utf8SingleLineRawStringLiteralToken { get; }
        int? Utf8MultiLineRawStringLiteralToken { get; }
 
        #endregion
 
        #region tokens
 
        int CloseBraceToken { get; }
        int? CloseBracketToken { get; }
        int CloseParenToken { get; }
        int CommaToken { get; }
        int ColonToken { get; }
        int DotToken { get; }
        int EndOfFileToken { get; }
        int HashToken { get; }
        int GreaterThanToken { get; }
        int IdentifierToken { get; }
        int InterpolatedStringTextToken { get; }
        int LessThanToken { get; }
        int OpenBraceToken { get; }
        int? OpenBracketToken { get; }
        int OpenParenToken { get; }
        int QuestionToken { get; }
 
        #endregion
 
        #region xml tokens
 
        int XmlTextLiteralToken { get; }
 
        #endregion
 
        #region names
 
        int GenericName { get; }
        int IdentifierName { get; }
        int QualifiedName { get; }
 
        #endregion
 
        #region types
 
        int TupleType { get; }
 
        #endregion
 
        #region literal expressions
 
        int CharacterLiteralExpression { get; }
        int DefaultLiteralExpression { get; }
        int FalseLiteralExpression { get; }
        int NullLiteralExpression { get; }
        int NumericLiteralExpression { get; }
        int StringLiteralExpression { get; }
        int TrueLiteralExpression { get; }
 
        #endregion
 
        #region expressions
 
        int AddressOfExpression { get; }
        int AnonymousObjectCreationExpression { get; }
        int ArrayCreationExpression { get; }
        int AwaitExpression { get; }
        int BaseExpression { get; }
        int ConditionalAccessExpression { get; }
        int ConditionalExpression { get; }
        int? ImplicitArrayCreationExpression { get; }
        int? ImplicitObjectCreationExpression { get; }
        int? IndexExpression { get; }
        int InterpolatedStringExpression { get; }
        int InvocationExpression { get; }
        int IsTypeExpression { get; }
        int? IsNotTypeExpression { get; }
        int? IsPatternExpression { get; }
        int LogicalAndExpression { get; }
        int LogicalOrExpression { get; }
        int LogicalNotExpression { get; }
        int ObjectCreationExpression { get; }
        int ParenthesizedExpression { get; }
        int QueryExpression { get; }
        int? RangeExpression { get; }
        int? RefExpression { get; }
        int ReferenceEqualsExpression { get; }
        int ReferenceNotEqualsExpression { get; }
        int SimpleMemberAccessExpression { get; }
        int TernaryConditionalExpression { get; }
        int ThisExpression { get; }
        int? ThrowExpression { get; }
        int TupleExpression { get; }
 
        #endregion
 
        #region patterns
 
        int? AndPattern { get; }
        int? ConstantPattern { get; }
        int? DeclarationPattern { get; }
        int? NotPattern { get; }
        int? OrPattern { get; }
        int? ParenthesizedPattern { get; }
        int? RecursivePattern { get; }
        int? RelationalPattern { get; }
        int? TypePattern { get; }
        int? VarPattern { get; }
 
        #endregion
 
        #region statements
 
        int ExpressionStatement { get; }
        int ForEachStatement { get; }
        int IfStatement { get; }
        int LocalDeclarationStatement { get; }
        int? LocalFunctionStatement { get; }
        int LockStatement { get; }
        int ReturnStatement { get; }
        int ThrowStatement { get; }
        int UsingStatement { get; }
        int WhileStatement { get; }
        int YieldReturnStatement { get; }
 
        #endregion
 
        #region members/declarations
 
        int Attribute { get; }
        int ClassDeclaration { get; }
        int ConstructorDeclaration { get; }
        int EnumDeclaration { get; }
        int InterfaceDeclaration { get; }
        int? StructDeclaration { get; }
        int Parameter { get; }
        int TypeConstraint { get; }
        int VariableDeclarator { get; }
        int FieldDeclaration { get; }
        int PropertyDeclaration { get; }
 
        int IncompleteMember { get; }
        int TypeArgumentList { get; }
        int ParameterList { get; }
 
        #endregion
 
        #region clauses
 
        int ElseClause { get; }
        int EqualsValueClause { get; }
 
        #endregion
 
        #region other
 
        int? ImplicitElementAccess { get; }
        int Interpolation { get; }
        int InterpolatedStringText { get; }
        int? IndexerMemberCref { get; }
 
        #endregion
    }
}