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; }
public Bound_Variable_Expression_Node(Variable_Symbol variable) { Variable = variable; }