using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Ariadne.Generator { public enum PassageCallKind { Discard, Assign, Declare, Return, } /// /// A statement that calls a passage and does nothing else but take its value, if it has one. /// public class PassageCall { public readonly PassageCallKind Kind; public readonly InvocationExpressionSyntax Invocation; /// /// Holds the left side of an assignment, or null. /// public readonly ExpressionSyntax Target; /// /// Holds the variable a declaration declares, or null. /// public readonly VariableDeclaratorSyntax Declarator; public PassageCall(PassageCallKind kind, InvocationExpressionSyntax invocation, ExpressionSyntax target, VariableDeclaratorSyntax declarator) { Kind = kind; Invocation = invocation; Target = target; Declarator = declarator; } } }