Exemple #1
0
        /// <summary>
        /// Analyzes characters that are between " " in a json string.
        /// </summary>
        /// <param name="c">Character is analyze</param>
        /// <param name="engage">Never used</param>
        /// <returns>Analysis of character</returns>
        public ECharacterAnalyzerResponse Analyze(char c, out ICharacterAnalyzer engage)
        {
            engage = null;
            if (c == '"')
            {
                return(ECharacterAnalyzerResponse.ReleaseCharacter);
            }

            if (c == '\\')
            {
                return(ECharacterAnalyzerResponse.IncludeEscapeCharacter);
            }

            return(ECharacterAnalyzerResponse.IncludeCharacter);
        }
        /// <summary>
        /// Categorizes characters in a json string, assuming they are now between "", and are
        /// not a json string literal
        /// </summary>
        /// <param name="c">Character to analyze</param>
        /// <param name="engage">returns <see cref="StringAnalyzer"/> if character is a "</param>
        /// <returns>Analysis of character</returns>
        public ECharacterAnalyzerResponse Analyze(char c, out ICharacterAnalyzer engage)
        {
            engage = null;

            if (char.IsWhiteSpace(c))
            {
                return(ECharacterAnalyzerResponse.ExcludeCharacter);
            }

            if (c == '{' || c == '}' || c == '[' || c == ']' || c == ',')
            {
                return(ECharacterAnalyzerResponse.Token);
            }

            if (c == '"')
            {
                engage = stringAnalyzer;
                return(ECharacterAnalyzerResponse.EngageCharacter);
            }

            return(ECharacterAnalyzerResponse.IncludeCharacter);
        }