public override Value VisitAssignmentExpression([NotNull] AssignmentExpressionContext context) { var rhs = context.Value.Accept(this); if (rhs == null) { return(null); } if (!NamedValues.TryGetValue(context.VariableName, out Alloca varSlot)) { throw new ArgumentException("Unknown variable name"); } InstructionBuilder.Store(rhs, varSlot); return(rhs); }
public AssignmentExpressionContext assignmentExpression() { AssignmentExpressionContext _localctx = new AssignmentExpressionContext(Context, State); EnterRule(_localctx, 46, RULE_assignmentExpression); try { State = 320; switch ( Interpreter.AdaptivePredict(TokenStream,30,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { State = 315; conditionalExpression(); } break; case 2: EnterOuterAlt(_localctx, 2); { State = 316; unaryExpression(); State = 317; assignmentOperator(); State = 318; assignmentExpression(); } break; } } catch (RecognitionException re) { _localctx.exception = re; ErrorHandler.ReportError(this, re); ErrorHandler.Recover(this, re); } finally { ExitRule(); } return _localctx; }