Antlr3.Tool.Grammar.GetCharValueFromGrammarCharLiteral C# (CSharp) Method

GetCharValueFromGrammarCharLiteral() public static method

public static GetCharValueFromGrammarCharLiteral ( string literal ) : int
literal string
return int
        public static int GetCharValueFromGrammarCharLiteral( string literal )
        {
            switch ( literal.Length )
            {
            case 3:
                // 'x'
                return literal[1]; // no escape char
            case 4:
                // '\x'  (antlr lexer will catch invalid char)
                if ( char.IsDigit( literal[2] ) )
                {
                    ErrorManager.Error( ErrorManager.MSG_SYNTAX_ERROR,
                                       "invalid char literal: " + literal );
                    return -1;
                }
                int escChar = literal[2];
                int charVal = AntlrLiteralEscapedCharValue[escChar];
                if ( charVal == 0 )
                {
                    // Unnecessary escapes like '\{' should just yield {
                    return escChar;
                }
                return charVal;
            case 8:
                // '\u1234'
                string unicodeChars = literal.Substring( 3, literal.Length - 1 - 3 );
                //return Integer.parseInt( unicodeChars, 16 );
                return int.Parse( unicodeChars, System.Globalization.NumberStyles.AllowHexSpecifier );
            default:
                ErrorManager.Error( ErrorManager.MSG_SYNTAX_ERROR,
                                   "invalid char literal: " + literal );
                return -1;
            }
        }
Grammar