Example #1
0
        /// <summary>
        /// Determines if the tokenizer is pointing at a parameter list for an anonymous function.
        /// </summary>
        internal static bool IsAnonymousParameterList(PositionalTokenizer tokenizer)
        {
            var result = false;

            tokenizer.PushState();

            if (tokenizer.Match("("))
            {
                tokenizer.SkipWhitespace();

                do
                {
                    tokenizer.ReadIdentifier();
                    tokenizer.SkipWhitespace();

                    if (tokenizer.NextChar != ',')
                    {
                        break;
                    }

                    tokenizer.Advance();
                    tokenizer.SkipWhitespace();
                } while (true);

                if (tokenizer.Match(")"))
                {
                    tokenizer.SkipWhitespace();
                    result = (tokenizer.NextChar == '{' || tokenizer.Match("=>"));
                }
            }

            tokenizer.PopState();

            return(result);
        }