示例#1
0
        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));
        }
示例#2
0
        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);
        }