private void ReturnConst(LexerState state, Symbol trigger) { Log(LogEventLevel.Information, "Found a constant"); var value = ConstantToken <float> .Parse(CurrentToken.ToString()); var con = Constants.FirstOrDefault(x => Math.Abs(x.Value - value) < 1E-5)?.Clone() as ConstantToken <float>; if (con == null) { con = new ConstantToken <float>(CurrentToken.ToString()) { TokenIndex = ConstIndex, Substring = CurrentToken.ToString() }; Constants.Add(con); } else { Log(LogEventLevel.Information, "The constant is already processed"); } con.Line = Line; ReturnToken(con, trigger); }