public override BaseComputable VisitSimpleValue([NotNull] SimpleValueContext context) { //simple constant if (context.NUM() != null) { var value = int.Parse(context.NUM().GetText()); if (context.OPERATOR_1()?.GetText().Equals("-") ?? false) { value = -value; } return(new SimpleValue(value)); } //simple constant if (context.CHAR() != null) { return(new SimpleValue(context.CHAR().GetText()[1])); } //string if (context.STR() != null) { var str = context.STR().GetText(); return(new Str(str.Substring(1, str.Length - 2))); } if (context.NEW() != null) { if (context.a2 != null) { return(new Array(context.a2.logical_statement_1().Accept(this).GetValue())); } else { return(new Structure(context.ID().GetText())); } } string variableName = context.ID().GetText(); var runnable = _evaluationContext.GetVaribale(variableName); foreach (var args in context.args()) { runnable = CallFunction(runnable, args); } runnable = Resolve(context, ref runnable); return(runnable); }
public ref BaseComputable GetReference(SimpleValueContext context) { string variableName = context.ID().GetText(); ref var runnable = ref _evaluationContext.GetVaribale(variableName);