////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////// Right Hand Expressions Implementations ///////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Right Hand Expressions Implementations public override LLVMRegister VisitVariableAssignment([NotNull] ClepsParser.VariableAssignmentContext context) { string variableName = context.variable().VariableName.Text; LLVMRegister ret = VariableManager.GetVariable(variableName); return(ret); }
private IValueRegister GetVariableRegisterOrNullWithError([NotNull] ClepsParser.VariableAssignmentContext context) { string variableName = Visit(context.variable()) as string; var variableManager = VariableManagers.Last(); IValueRegister register; if (!variableManager.IsVariableAvailable(variableName)) { string errorMessage = String.Format("Variable {0} does not exist", variableName); Status.AddError(new CompilerError(FileName, context.Start.Line, context.Start.Column, errorMessage)); register = null; } else { register = variableManager.GetVariableRegister(variableName); } return(register); }