IronLua.Compiler.Scope.AddLocal C# (CSharp) Method

AddLocal() public method

public AddLocal ( string name, Type type = null ) : System.Linq.Expressions.ParameterExpression
name string
type System.Type
return System.Linq.Expressions.ParameterExpression
        public ParamExpr AddLocal(string name, Type type = null)
        {
            // We have this behavior so that ex. "local x, x = 1, 2" works
            ParamExpr param;
            if (!variables.TryGetValue(name, out param))
                variables.Add(name, param = Expr.Variable(type ?? typeof(object)));

            return param;
        }

Usage Example

示例#1
0
        Expr IStatementVisitor <Expr> .Visit(Statement.LocalAssign statement)
        {
            var values = WrapWithVarargsFirst(statement.Values);
            var locals = statement.Identifiers.Select(v => scope.AddLocal(v)).ToList();

            if (statement.Values.Last().IsVarargs() || statement.Values.Last().IsFunctionCall())
            {
                return(VarargsExpandAssignment(locals, values));
            }

            return(AssignWithTemporaries(locals, values, Expr.Assign));
        }
All Usage Examples Of IronLua.Compiler.Scope::AddLocal