Example #1
0
        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);
        }