3 package com
.google
.appengine
.api
.search
;
5 import org
.antlr
.runtime
.*;
7 public class ExpressionLexer
extends Lexer
{
8 public static final int DOLLAR
=33;
9 public static final int LT
=7;
10 public static final int EXPONENT
=28;
11 public static final int LSQUARE
=19;
12 public static final int ASCII_LETTER
=31;
13 public static final int OCTAL_ESC
=36;
14 public static final int FLOAT
=23;
15 public static final int NAME_START
=29;
16 public static final int EOF
=-1;
17 public static final int LPAREN
=17;
18 public static final int INDEX
=5;
19 public static final int QUOTE
=26;
20 public static final int RPAREN
=18;
21 public static final int NAME
=22;
22 public static final int ESC_SEQ
=27;
23 public static final int PLUS
=13;
24 public static final int DIGIT
=25;
25 public static final int EQ
=11;
26 public static final int NE
=12;
27 public static final int T__42
=42;
28 public static final int T__43
=43;
29 public static final int T__40
=40;
30 public static final int GE
=10;
31 public static final int T__41
=41;
32 public static final int T__46
=46;
33 public static final int T__47
=47;
34 public static final int T__44
=44;
35 public static final int T__45
=45;
36 public static final int T__48
=48;
37 public static final int T__49
=49;
38 public static final int UNICODE_ESC
=35;
39 public static final int HEX_DIGIT
=34;
40 public static final int UNDERSCORE
=32;
41 public static final int INT
=20;
42 public static final int FN
=6;
43 public static final int MINUS
=14;
44 public static final int RSQUARE
=21;
45 public static final int PHRASE
=24;
46 public static final int WS
=30;
47 public static final int T__37
=37;
48 public static final int T__38
=38;
49 public static final int T__39
=39;
50 public static final int NEG
=4;
51 public static final int GT
=9;
52 public static final int DIV
=16;
53 public static final int TIMES
=15;
54 public static final int LE
=8;
56 public ExpressionLexer() {;}
57 public ExpressionLexer(CharStream input
) {
58 this(input
, new RecognizerSharedState());
60 public ExpressionLexer(CharStream input
, RecognizerSharedState state
) {
64 public String
getGrammarFileName() { return "java/com/google/appengine/api/search/Expression.g"; }
66 public final void mT__37() throws RecognitionException
{
69 int _channel
= DEFAULT_TOKEN_CHANNEL
;
76 state
.channel
= _channel
;
82 public final void mT__38() throws RecognitionException
{
85 int _channel
= DEFAULT_TOKEN_CHANNEL
;
92 state
.channel
= _channel
;
98 public final void mT__39() throws RecognitionException
{
101 int _channel
= DEFAULT_TOKEN_CHANNEL
;
108 state
.channel
= _channel
;
114 public final void mT__40() throws RecognitionException
{
117 int _channel
= DEFAULT_TOKEN_CHANNEL
;
124 state
.channel
= _channel
;
130 public final void mT__41() throws RecognitionException
{
133 int _channel
= DEFAULT_TOKEN_CHANNEL
;
140 state
.channel
= _channel
;
146 public final void mT__42() throws RecognitionException
{
149 int _channel
= DEFAULT_TOKEN_CHANNEL
;
156 state
.channel
= _channel
;
162 public final void mT__43() throws RecognitionException
{
165 int _channel
= DEFAULT_TOKEN_CHANNEL
;
172 state
.channel
= _channel
;
178 public final void mT__44() throws RecognitionException
{
181 int _channel
= DEFAULT_TOKEN_CHANNEL
;
188 state
.channel
= _channel
;
194 public final void mT__45() throws RecognitionException
{
197 int _channel
= DEFAULT_TOKEN_CHANNEL
;
204 state
.channel
= _channel
;
210 public final void mT__46() throws RecognitionException
{
213 int _channel
= DEFAULT_TOKEN_CHANNEL
;
220 state
.channel
= _channel
;
226 public final void mT__47() throws RecognitionException
{
229 int _channel
= DEFAULT_TOKEN_CHANNEL
;
236 state
.channel
= _channel
;
242 public final void mT__48() throws RecognitionException
{
245 int _channel
= DEFAULT_TOKEN_CHANNEL
;
252 state
.channel
= _channel
;
258 public final void mT__49() throws RecognitionException
{
261 int _channel
= DEFAULT_TOKEN_CHANNEL
;
268 state
.channel
= _channel
;
274 public final void mINT() throws RecognitionException
{
277 int _channel
= DEFAULT_TOKEN_CHANNEL
;
280 int LA1_0
= input
.LA(1);
282 if ( (LA1_0
=='-') ) {
299 int LA2_0
= input
.LA(1);
301 if ( ((LA2_0
>='0' && LA2_0
<='9')) ) {
314 if ( cnt2
>= 1 ) break loop2
;
315 EarlyExitException eee
=
316 new EarlyExitException(2, input
);
325 state
.channel
= _channel
;
331 public final void mPHRASE() throws RecognitionException
{
334 int _channel
= DEFAULT_TOKEN_CHANNEL
;
340 int LA3_0
= input
.LA(1);
342 if ( (LA3_0
=='\\') ) {
345 else if ( ((LA3_0
>='\u0000' && LA3_0
<='!')||(LA3_0
>='#' && LA3_0
<='[')||(LA3_0
>=']' && LA3_0
<='\uFFFF')) ) {
358 if ( (input
.LA(1)>='\u0000' && input
.LA(1)<='!')||(input
.LA(1)>='#' && input
.LA(1)<='[')||(input
.LA(1)>=']' && input
.LA(1)<='\uFFFF') ) {
363 MismatchedSetException mse
= new MismatchedSetException(null,input
);
380 state
.channel
= _channel
;
386 public final void mFLOAT() throws RecognitionException
{
389 int _channel
= DEFAULT_TOKEN_CHANNEL
;
391 alt13
= dfa13
.predict(input
);
396 int LA4_0
= input
.LA(1);
398 if ( (LA4_0
=='-') ) {
415 int LA5_0
= input
.LA(1);
417 if ( ((LA5_0
>='0' && LA5_0
<='9')) ) {
430 if ( cnt5
>= 1 ) break loop5
;
431 EarlyExitException eee
=
432 new EarlyExitException(5, input
);
442 int LA6_0
= input
.LA(1);
444 if ( ((LA6_0
>='0' && LA6_0
<='9')) ) {
462 int LA7_0
= input
.LA(1);
464 if ( (LA7_0
=='E'||LA7_0
=='e') ) {
482 int LA8_0
= input
.LA(1);
484 if ( (LA8_0
=='-') ) {
502 int LA9_0
= input
.LA(1);
504 if ( ((LA9_0
>='0' && LA9_0
<='9')) ) {
517 if ( cnt9
>= 1 ) break loop9
;
518 EarlyExitException eee
=
519 new EarlyExitException(9, input
);
526 int LA10_0
= input
.LA(1);
528 if ( (LA10_0
=='E'||LA10_0
=='e') ) {
546 int LA11_0
= input
.LA(1);
548 if ( (LA11_0
=='-') ) {
565 int LA12_0
= input
.LA(1);
567 if ( ((LA12_0
>='0' && LA12_0
<='9')) ) {
580 if ( cnt12
>= 1 ) break loop12
;
581 EarlyExitException eee
=
582 new EarlyExitException(12, input
);
595 state
.channel
= _channel
;
601 public final void mNAME() throws RecognitionException
{
604 int _channel
= DEFAULT_TOKEN_CHANNEL
;
610 int LA14_0
= input
.LA(1);
612 if ( (LA14_0
=='$'||(LA14_0
>='0' && LA14_0
<='9')||(LA14_0
>='A' && LA14_0
<='Z')||LA14_0
=='_'||(LA14_0
>='a' && LA14_0
<='z')) ) {
619 if ( input
.LA(1)=='$'||(input
.LA(1)>='0' && input
.LA(1)<='9')||(input
.LA(1)>='A' && input
.LA(1)<='Z')||input
.LA(1)=='_'||(input
.LA(1)>='a' && input
.LA(1)<='z') ) {
624 MismatchedSetException mse
= new MismatchedSetException(null,input
);
639 state
.channel
= _channel
;
645 public final void mLPAREN() throws RecognitionException
{
648 int _channel
= DEFAULT_TOKEN_CHANNEL
;
655 state
.channel
= _channel
;
661 public final void mRPAREN() throws RecognitionException
{
664 int _channel
= DEFAULT_TOKEN_CHANNEL
;
671 state
.channel
= _channel
;
677 public final void mLSQUARE() throws RecognitionException
{
680 int _channel
= DEFAULT_TOKEN_CHANNEL
;
687 state
.channel
= _channel
;
693 public final void mRSQUARE() throws RecognitionException
{
696 int _channel
= DEFAULT_TOKEN_CHANNEL
;
703 state
.channel
= _channel
;
709 public final void mPLUS() throws RecognitionException
{
712 int _channel
= DEFAULT_TOKEN_CHANNEL
;
719 state
.channel
= _channel
;
725 public final void mMINUS() throws RecognitionException
{
728 int _channel
= DEFAULT_TOKEN_CHANNEL
;
735 state
.channel
= _channel
;
741 public final void mTIMES() throws RecognitionException
{
744 int _channel
= DEFAULT_TOKEN_CHANNEL
;
751 state
.channel
= _channel
;
757 public final void mDIV() throws RecognitionException
{
760 int _channel
= DEFAULT_TOKEN_CHANNEL
;
767 state
.channel
= _channel
;
773 public final void mLT() throws RecognitionException
{
776 int _channel
= DEFAULT_TOKEN_CHANNEL
;
783 state
.channel
= _channel
;
789 public final void mLE() throws RecognitionException
{
792 int _channel
= DEFAULT_TOKEN_CHANNEL
;
799 state
.channel
= _channel
;
805 public final void mGT() throws RecognitionException
{
808 int _channel
= DEFAULT_TOKEN_CHANNEL
;
815 state
.channel
= _channel
;
821 public final void mGE() throws RecognitionException
{
824 int _channel
= DEFAULT_TOKEN_CHANNEL
;
831 state
.channel
= _channel
;
837 public final void mEQ() throws RecognitionException
{
840 int _channel
= DEFAULT_TOKEN_CHANNEL
;
847 state
.channel
= _channel
;
853 public final void mNE() throws RecognitionException
{
856 int _channel
= DEFAULT_TOKEN_CHANNEL
;
863 state
.channel
= _channel
;
869 public final void mQUOTE() throws RecognitionException
{
872 int _channel
= DEFAULT_TOKEN_CHANNEL
;
879 state
.channel
= _channel
;
885 public final void mWS() throws RecognitionException
{
888 int _channel
= DEFAULT_TOKEN_CHANNEL
;
894 int LA15_0
= input
.LA(1);
896 if ( ((LA15_0
>='\t' && LA15_0
<='\n')||LA15_0
=='\r'||LA15_0
==' ') ) {
903 if ( (input
.LA(1)>='\t' && input
.LA(1)<='\n')||input
.LA(1)=='\r'||input
.LA(1)==' ' ) {
908 MismatchedSetException mse
= new MismatchedSetException(null,input
);
916 if ( cnt15
>= 1 ) break loop15
;
917 EarlyExitException eee
=
918 new EarlyExitException(15, input
);
929 state
.channel
= _channel
;
935 public final void mEXPONENT() throws RecognitionException
{
938 if ( input
.LA(1)=='E'||input
.LA(1)=='e' ) {
943 MismatchedSetException mse
= new MismatchedSetException(null,input
);
948 int LA16_0
= input
.LA(1);
950 if ( (LA16_0
=='+'||LA16_0
=='-') ) {
956 if ( input
.LA(1)=='+'||input
.LA(1)=='-' ) {
961 MismatchedSetException mse
= new MismatchedSetException(null,input
);
974 int LA17_0
= input
.LA(1);
976 if ( ((LA17_0
>='0' && LA17_0
<='9')) ) {
989 if ( cnt17
>= 1 ) break loop17
;
990 EarlyExitException eee
=
991 new EarlyExitException(17, input
);
1004 public final void mNAME_START() throws RecognitionException
{
1007 if ( input
.LA(1)=='$'||(input
.LA(1)>='A' && input
.LA(1)<='Z')||input
.LA(1)=='_'||(input
.LA(1)>='a' && input
.LA(1)<='z') ) {
1012 MismatchedSetException mse
= new MismatchedSetException(null,input
);
1023 public final void mASCII_LETTER() throws RecognitionException
{
1026 if ( (input
.LA(1)>='A' && input
.LA(1)<='Z')||(input
.LA(1)>='a' && input
.LA(1)<='z') ) {
1031 MismatchedSetException mse
= new MismatchedSetException(null,input
);
1042 public final void mDIGIT() throws RecognitionException
{
1045 matchRange('0','9');
1054 public final void mDOLLAR() throws RecognitionException
{
1066 public final void mUNDERSCORE() throws RecognitionException
{
1078 public final void mHEX_DIGIT() throws RecognitionException
{
1081 if ( (input
.LA(1)>='0' && input
.LA(1)<='9')||(input
.LA(1)>='A' && input
.LA(1)<='F')||(input
.LA(1)>='a' && input
.LA(1)<='f') ) {
1086 MismatchedSetException mse
= new MismatchedSetException(null,input
);
1097 public final void mESC_SEQ() throws RecognitionException
{
1100 int LA18_0
= input
.LA(1);
1102 if ( (LA18_0
=='\\') ) {
1103 switch ( input
.LA(2) ) {
1134 NoViableAltException nvae
=
1135 new NoViableAltException("", 18, 1, input
);
1142 NoViableAltException nvae
=
1143 new NoViableAltException("", 18, 0, input
);
1151 if ( input
.LA(1)=='\"'||input
.LA(1)=='\''||input
.LA(1)=='\\'||input
.LA(1)=='b'||input
.LA(1)=='f'||input
.LA(1)=='n'||input
.LA(1)=='r'||input
.LA(1)=='t' ) {
1156 MismatchedSetException mse
= new MismatchedSetException(null,input
);
1181 public final void mOCTAL_ESC() throws RecognitionException
{
1184 int LA19_0
= input
.LA(1);
1186 if ( (LA19_0
=='\\') ) {
1187 int LA19_1
= input
.LA(2);
1189 if ( ((LA19_1
>='0' && LA19_1
<='3')) ) {
1190 int LA19_2
= input
.LA(3);
1192 if ( ((LA19_2
>='0' && LA19_2
<='7')) ) {
1193 int LA19_4
= input
.LA(4);
1195 if ( ((LA19_4
>='0' && LA19_4
<='7')) ) {
1204 else if ( ((LA19_1
>='4' && LA19_1
<='7')) ) {
1205 int LA19_3
= input
.LA(3);
1207 if ( ((LA19_3
>='0' && LA19_3
<='7')) ) {
1214 NoViableAltException nvae
=
1215 new NoViableAltException("", 19, 1, input
);
1221 NoViableAltException nvae
=
1222 new NoViableAltException("", 19, 0, input
);
1231 matchRange('0','3');
1236 matchRange('0','7');
1241 matchRange('0','7');
1251 matchRange('0','7');
1256 matchRange('0','7');
1266 matchRange('0','7');
1279 public final void mUNICODE_ESC() throws RecognitionException
{
1296 public void mTokens() throws RecognitionException
{
1298 alt20
= dfa20
.predict(input
);
1503 protected DFA13 dfa13
= new DFA13(this);
1504 protected DFA20 dfa20
= new DFA20(this);
1505 static final String DFA13_eotS
=
1507 static final String DFA13_eofS
=
1509 static final String DFA13_minS
=
1510 "\1\55\2\56\3\uffff";
1511 static final String DFA13_maxS
=
1512 "\2\71\1\145\3\uffff";
1513 static final String DFA13_acceptS
=
1514 "\3\uffff\1\2\1\1\1\3";
1515 static final String DFA13_specialS
=
1517 static final String
[] DFA13_transitionS
= {
1518 "\1\1\1\3\1\uffff\12\2",
1519 "\1\3\1\uffff\12\2",
1520 "\1\4\1\uffff\12\2\13\uffff\1\5\37\uffff\1\5",
1526 static final short[] DFA13_eot
= DFA
.unpackEncodedString(DFA13_eotS
);
1527 static final short[] DFA13_eof
= DFA
.unpackEncodedString(DFA13_eofS
);
1528 static final char[] DFA13_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA13_minS
);
1529 static final char[] DFA13_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA13_maxS
);
1530 static final short[] DFA13_accept
= DFA
.unpackEncodedString(DFA13_acceptS
);
1531 static final short[] DFA13_special
= DFA
.unpackEncodedString(DFA13_specialS
);
1532 static final short[][] DFA13_transition
;
1535 int numStates
= DFA13_transitionS
.length
;
1536 DFA13_transition
= new short[numStates
][];
1537 for (int i
=0; i
<numStates
; i
++) {
1538 DFA13_transition
[i
] = DFA
.unpackEncodedString(DFA13_transitionS
[i
]);
1542 class DFA13
extends DFA
{
1544 public DFA13(BaseRecognizer recognizer
) {
1545 this.recognizer
= recognizer
;
1546 this.decisionNumber
= 13;
1547 this.eot
= DFA13_eot
;
1548 this.eof
= DFA13_eof
;
1549 this.min
= DFA13_min
;
1550 this.max
= DFA13_max
;
1551 this.accept
= DFA13_accept
;
1552 this.special
= DFA13_special
;
1553 this.transition
= DFA13_transition
;
1555 public String
getDescription() {
1556 return "148:1: FLOAT : ( ( '-' )? ( DIGIT )+ '.' ( DIGIT )* ( EXPONENT )? | ( '-' )? '.' ( DIGIT )+ ( EXPONENT )? | ( '-' )? ( DIGIT )+ EXPONENT );";
1559 static final String DFA20_eotS
=
1560 "\1\uffff\1\34\1\uffff\11\17\1\51\1\52\1\53\10\uffff\1\56\1\60\5"+
1561 "\uffff\4\17\1\65\6\17\10\uffff\1\74\3\17\1\uffff\1\100\1\101\1\102"+
1562 "\1\103\1\104\1\17\1\uffff\3\17\5\uffff\1\17\1\112\3\17\1\uffff\5"+
1563 "\17\1\123\1\124\1\125\3\uffff";
1564 static final String DFA20_eofS
=
1566 static final String DFA20_minS
=
1567 "\1\11\1\60\1\uffff\1\142\1\157\1\151\1\145\1\146\1\145\1\141\1\157"+
1568 "\1\156\2\56\1\0\10\uffff\2\75\5\uffff\1\163\1\165\1\163\1\157\1"+
1569 "\44\1\156\1\147\1\170\1\156\1\167\1\151\10\uffff\1\44\1\156\1\164"+
1570 "\1\160\1\uffff\5\44\1\160\1\uffff\1\164\1\141\1\157\5\uffff\1\160"+
1571 "\1\44\1\156\1\151\1\145\1\uffff\1\143\1\156\1\164\1\145\1\164\3"+
1573 static final String DFA20_maxS
=
1574 "\1\172\1\71\1\uffff\1\142\1\157\1\151\1\145\1\146\1\157\1\151\1"+
1575 "\157\1\156\1\71\1\145\1\uffff\10\uffff\2\75\5\uffff\1\163\1\165"+
1576 "\1\163\1\157\1\172\1\156\1\147\1\170\1\156\1\167\1\151\10\uffff"+
1577 "\1\172\1\156\1\164\1\160\1\uffff\5\172\1\160\1\uffff\1\164\1\141"+
1578 "\1\157\5\uffff\1\160\1\172\1\156\1\151\1\145\1\uffff\1\143\1\156"+
1579 "\1\164\1\145\1\164\3\172\3\uffff";
1580 static final String DFA20_acceptS
=
1581 "\2\uffff\1\2\14\uffff\1\21\1\22\1\23\1\24\1\25\1\26\1\30\1\31\2"+
1582 "\uffff\1\36\1\37\1\41\1\1\1\20\13\uffff\1\27\1\16\1\40\1\17\1\33"+
1583 "\1\32\1\35\1\34\4\uffff\1\7\6\uffff\1\3\3\uffff\1\10\1\11\1\12\1"+
1584 "\13\1\14\5\uffff\1\4\10\uffff\1\15\1\5\1\6";
1585 static final String DFA20_specialS
=
1586 "\16\uffff\1\0\107\uffff}>";
1587 static final String
[] DFA20_transitionS
= {
1588 "\2\33\2\uffff\1\33\22\uffff\1\33\1\32\1\16\1\uffff\1\17\3\uffff"+
1589 "\1\20\1\21\1\25\1\24\1\2\1\14\1\1\1\26\12\15\2\uffff\1\27\1"+
1590 "\31\1\30\2\uffff\32\17\1\22\1\uffff\1\23\1\uffff\1\17\1\uffff"+
1591 "\1\3\1\17\1\4\1\5\2\17\1\6\1\17\1\7\2\17\1\10\1\11\2\17\1\12"+
1600 "\1\43\11\uffff\1\44",
1601 "\1\45\7\uffff\1\46",
1604 "\1\35\1\uffff\12\15",
1605 "\1\35\1\uffff\12\15\13\uffff\1\35\37\uffff\1\35",
1626 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1642 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1648 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1650 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1652 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1654 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1656 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1669 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1680 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1682 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1684 "\1\17\13\uffff\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32"+
1691 static final short[] DFA20_eot
= DFA
.unpackEncodedString(DFA20_eotS
);
1692 static final short[] DFA20_eof
= DFA
.unpackEncodedString(DFA20_eofS
);
1693 static final char[] DFA20_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA20_minS
);
1694 static final char[] DFA20_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA20_maxS
);
1695 static final short[] DFA20_accept
= DFA
.unpackEncodedString(DFA20_acceptS
);
1696 static final short[] DFA20_special
= DFA
.unpackEncodedString(DFA20_specialS
);
1697 static final short[][] DFA20_transition
;
1700 int numStates
= DFA20_transitionS
.length
;
1701 DFA20_transition
= new short[numStates
][];
1702 for (int i
=0; i
<numStates
; i
++) {
1703 DFA20_transition
[i
] = DFA
.unpackEncodedString(DFA20_transitionS
[i
]);
1707 class DFA20
extends DFA
{
1709 public DFA20(BaseRecognizer recognizer
) {
1710 this.recognizer
= recognizer
;
1711 this.decisionNumber
= 20;
1712 this.eot
= DFA20_eot
;
1713 this.eof
= DFA20_eof
;
1714 this.min
= DFA20_min
;
1715 this.max
= DFA20_max
;
1716 this.accept
= DFA20_accept
;
1717 this.special
= DFA20_special
;
1718 this.transition
= DFA20_transition
;
1720 public String
getDescription() {
1721 return "1:1: Tokens : ( T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | INT | PHRASE | FLOAT | NAME | LPAREN | RPAREN | LSQUARE | RSQUARE | PLUS | MINUS | TIMES | DIV | LT | LE | GT | GE | EQ | NE | QUOTE | WS );";
1723 public int specialStateTransition(int s
, IntStream _input
) throws NoViableAltException
{
1724 IntStream input
= _input
;
1728 int LA20_14
= input
.LA(1);
1731 if ( ((LA20_14
>='\u0000' && LA20_14
<='\uFFFF')) ) {s
= 44;}
1735 if ( s
>=0 ) return s
;
1738 NoViableAltException nvae
=
1739 new NoViableAltException(getDescription(), 20, _s
, input
);