protected override IValue VisitSimpleLambdaExpression(SimpleLambdaExpressionSyntax node) { FunctionDeclarationParameter a = _VisitParameter(node.Parameter); var tmp = context.Arguments.ToArray(); context.Arguments.Add(a); var bodyExpression = Visit(node.Body); context.Arguments = tmp.ToList(); return(new SimpleLambdaExpression(a, bodyExpression)); }
private FunctionDeclarationParameter rVisit(IParameterSymbol s) { var name = s.Name; var m = rVisit(s.RefKind); var type = context.Roslyn_ResolveType(s.Type); IValue initial = null; if (s.HasExplicitDefaultValue) { initial = new ConstValue(s.ExplicitDefaultValue); } var a = new FunctionDeclarationParameter(name, m, new LangType(type), initial); return(a); }