Ejemplo n.º 1
0
        public string ToString(Dictionary <int, string> tokenMap, bool putPositionAtFront = true)
        {
            string value = "";

            if (putPositionAtFront)
            {
                value += Location.ToString() + " ";
            }
            value += "Error: Expected ";
            value += Expected.Match(EOF: () => "EOF",
                                    Token: t => tokenMap[t],
                                    Option: options =>
            {
                string description = "";
                for (int i = 0; i < options.Count(); i++)
                {
                    if (i != options.Count() - 1)
                    {
                        description += options[i] + ", ";
                    }
                    else
                    {
                        description += "or " + options[i];
                    }
                }
                return(description);
            });
            value += Got.Match(EOF: () => ", but got EOF",
                               Token: t => ", but got " + tokenMap[t.Type],
                               None: () => ""
                               );
            if (!putPositionAtFront)
            {
                value += " at " + Location.ToString();
            }
            return(value);
        }