Antlr4.Misc.CharSupport.GetCharValueFromCharInGrammarLiteral C# (CSharp) Method

GetCharValueFromCharInGrammarLiteral() public static method

public static GetCharValueFromCharInGrammarLiteral ( string cstr ) : int
cstr string
return int
        public static int GetCharValueFromCharInGrammarLiteral(string cstr)
        {
            switch (cstr.Length)
            {
            case 1:
                // 'x'
                return cstr[0]; // no escape char
            case 2:
                if (cstr[0] != '\\')
                    return -1;
                // '\x'  (antlr lexer will catch invalid char)
                if (char.IsDigit(cstr[1]))
                    return -1;
                int escChar = cstr[1];
                int charVal = ANTLRLiteralEscapedCharValue[escChar];
                if (charVal == 0)
                    return -1;
                return charVal;
            case 6:
                // '\u1234'
                if (!cstr.StartsWith("\\u"))
                    return -1;
                string unicodeChars = cstr.Substring(2, cstr.Length - 2);
                int result;
                if (!int.TryParse(unicodeChars, NumberStyles.AllowHexSpecifier, CultureInfo.InvariantCulture, out result))
                    return -1;

                return result;
            default:
                return -1;
            }
        }