Example #1
0
        private Bound_Expression_Node Bind_Assignment_Expression(Assignment_Expression_Syntax_Node expression_syntax)
        {
            var name             = expression_syntax.Identifier_Token.Text;
            var bound_expression = Bind_Expression(expression_syntax.Expression);

            var existing_variable = _variables.Keys.FirstOrDefault(v => v.Name == name);

            if (existing_variable != null)
            {
                _variables.Remove(existing_variable);
            }

            var variable = new Variable_Symbol(name, bound_expression.Type);

            _variables[variable] = null;
            return(new Bound_Assignment_Expression_Node(variable, bound_expression));
        }
 public Bound_Assignment_Expression_Node(Variable_Symbol variable, Bound_Expression_Node expression)
 {
     Variable   = variable;
     Expression = expression;
 }
Example #3
0
 public Bound_Variable_Expression_Node(Variable_Symbol variable)
 {
     Variable = variable;
 }