public ElementAccessSharpnode(ElementAccessExpressionSyntax syntax) : base(syntax) { this.eaes = syntax; this.Container = RoslynToSharpnode.MapExpression(syntax.Expression); // Only single-dimensional arrays are supported. this.Index = RoslynToSharpnode.MapExpression(syntax.ArgumentList.Arguments[0].Expression); }
public InvocationExpressionSharpnode(InvocationExpressionSyntax syntax) : base(syntax) { this.MethodGroup = syntax.Expression; this.methodGroupSharpnode = RoslynToSharpnode.MapExpression(syntax.Expression); foreach (var argument in syntax.ArgumentList.Arguments) { this.Arguments.Add(RoslynToSharpnode.MapExpression(argument.Expression)); } }
public LambdaSharpnode(SimpleLambdaExpressionSyntax syntax) : base(syntax) { this.parameter = new ParameterSharpnode(syntax.Parameter); if (syntax.Body is ExpressionSyntax) { this.body = RoslynToSharpnode.MapExpression((ExpressionSyntax)syntax.Body); } else { this.errorneousResult = new Error( Diagnostics.SSIL126_LambdasMustBeExpressions, syntax.Body); } }
public LambdaSharpnode(ParenthesizedLambdaExpressionSyntax syntax) : base(syntax) { // We only allow for a single kind of lambda expressions: those that fit ForAll and Exists. if (syntax.ParameterList.Parameters.Count != 1) { this.errorneousResult = new Error( Diagnostics.SSIL125_LambdasMustHaveSingleParameter, syntax.ParameterList); return; } this.parameter = new ParameterSharpnode(syntax.ParameterList.Parameters[0]); if (syntax.Body is ExpressionSyntax) { this.body = RoslynToSharpnode.MapExpression((ExpressionSyntax)syntax.Body); } else { this.errorneousResult = new Error( Diagnostics.SSIL126_LambdasMustBeExpressions, syntax.Body); } }
public ForStatementSharpnode(ForStatementSyntax stmt) : base(stmt) { this.Condition = RoslynToSharpnode.MapExpression(stmt.Condition); this.Statement = RoslynToSharpnode.MapStatement(stmt.Statement); // Add declarations if (stmt.Declaration != null) { this.Initializers.Add(new LocalDeclarationSharpnode(stmt.Declaration)); } // Add initializers if (stmt.Initializers != null) { foreach (var initializer in stmt.Initializers) { Initializers.Add(new ExpressionStatementSharpnode(initializer)); } } foreach (var incrementor in stmt.Incrementors) { this.Incrementors.Add(RoslynToSharpnode.MapExpression(incrementor)); } }
public IfStatementSharpnode(IfStatementSyntax stmt) : base(stmt) { this.Condition = RoslynToSharpnode.MapExpression(stmt.Condition); this.Then = RoslynToSharpnode.MapStatement(stmt.Statement); this.Else = stmt.Else != null?RoslynToSharpnode.MapStatement(stmt.Else.Statement) : null; }
public IncrementExpressionSharpnode(PostfixUnaryExpressionSyntax syntax, IncrementExpressionDirection direction) : base(syntax) { this.direction = direction; this.order = IncrementExpressionOrder.Post; this.expression = RoslynToSharpnode.MapExpression(syntax.Operand); }
public ExpressionStatementSharpnode(ExpressionStatementSyntax originalNode) : base(originalNode) { this.Expression = RoslynToSharpnode.MapExpression(originalNode.Expression); }