File indexing completed on 2024-04-21 04:36:20

0001 #include "kdev-pg-char-sets.h"
0002 
0003 int next(QUtf8ToUcs4Iterator& i)
0004 {
0005 #define CURR_POS i
0006 #define NEXT_CHR __extension__({ if(!i.hasNext()) goto fail; i.next(); })
0007 int lstate = -1;
0008 quint32 chr;
0009 QUtf8ToUcs4Iterator lpos = i;
0010 _state_0: chr = NEXT_CHR; if(chr < 98) {if(chr < 32) {if(chr == 9 || chr == 10){/*1 action */lpos = CURR_POS; lstate = 1; goto _state_37;
0011 } else goto fail;
0012 } else {if(chr < 48) {if(chr == 32){/*1 action */lpos = CURR_POS; lstate = 1; goto _state_37;
0013 } else goto fail;
0014 } else {if(chr < 58){/*2 action */lpos = CURR_POS; lstate = 2; goto _state_36;
0015 } else goto fail;
0016 }}} else {if(chr < 102) {if(chr == 98){goto _state_31;} else goto fail;
0017 } else {if(chr < 228) {if(chr == 102){goto _state_34;} else goto fail;
0018 } else {if(chr == 228){goto _state_23;} else goto fail;
0019 }}}_state_1: chr = NEXT_CHR; if(chr == 115){/*9 action */lpos = CURR_POS; lstate = 9; goto _state_38;
0020 } else goto fail;
0021 _state_2: chr = NEXT_CHR; if(chr == 167){goto _state_1;} else goto fail;
0022 _state_3: chr = NEXT_CHR; if(chr == 32){goto _state_2;} else goto fail;
0023 _state_4: chr = NEXT_CHR; if(chr == 101){goto _state_3;} else goto fail;
0024 _state_5: chr = NEXT_CHR; if(chr == 107){goto _state_4;} else goto fail;
0025 _state_6: chr = NEXT_CHR; if(chr == 105){goto _state_5;} else goto fail;
0026 _state_7: chr = NEXT_CHR; if(chr == 108){goto _state_6;} else goto fail;
0027 _state_8: chr = NEXT_CHR; if(chr == 32){goto _state_7;} else goto fail;
0028 _state_9: chr = NEXT_CHR; if(chr == 116){goto _state_8;} else goto fail;
0029 _state_10: chr = NEXT_CHR; if(chr == 111){goto _state_9;} else goto fail;
0030 _state_11: chr = NEXT_CHR; if(chr == 110){goto _state_10;} else goto fail;
0031 _state_12: chr = NEXT_CHR; if(chr == 32){goto _state_11;} else goto fail;
0032 _state_13: chr = NEXT_CHR; if(chr == 111){goto _state_12;} else goto fail;
0033 _state_14: chr = NEXT_CHR; if(chr == 100){goto _state_13;} else goto fail;
0034 _state_15: chr = NEXT_CHR; if(chr == 32){goto _state_14;} else goto fail;
0035 _state_16: chr = NEXT_CHR; if(chr == 73){goto _state_15;} else goto fail;
0036 _state_17: chr = NEXT_CHR; if(chr == 32){goto _state_16;} else goto fail;
0037 _state_18: chr = NEXT_CHR; if(chr == 44){goto _state_17;} else goto fail;
0038 _state_19: chr = NEXT_CHR; if(chr == 104){goto _state_18;} else goto fail;
0039 _state_20: chr = NEXT_CHR; if(chr == 104){goto _state_19;} else goto fail;
0040 _state_21: chr = NEXT_CHR; goto fail;_state_22: chr = NEXT_CHR; if(chr == 252){/*8 action */lpos = CURR_POS; lstate = 8; goto _state_21;
0041 } else goto fail;
0042 _state_23: chr = NEXT_CHR; if(chr == 246){goto _state_22;} else goto fail;
0043 _state_24: chr = NEXT_CHR; goto fail;_state_25: chr = NEXT_CHR; goto fail;_state_26: chr = NEXT_CHR; if(chr == 114){/*6 action */lpos = CURR_POS; lstate = 6; goto _state_25;
0044 } else goto fail;
0045 _state_27: chr = NEXT_CHR; if(chr == 97){goto _state_26;} else goto fail;
0046 _state_28: chr = NEXT_CHR; goto fail;_state_29: chr = NEXT_CHR; goto fail;_state_30: chr = NEXT_CHR; if(chr < 122) {if(chr == 114){/*4 action */lpos = CURR_POS; lstate = 4; goto _state_29;
0047 } else goto fail;
0048 } else {if(chr == 122){/*5 action */lpos = CURR_POS; lstate = 5; goto _state_28;
0049 } else goto fail;
0050 }_state_31: chr = NEXT_CHR; if(chr < 228) {if(chr == 97){goto _state_30;} else goto fail;
0051 } else {if(chr == 228){goto _state_20;} else goto fail;
0052 }_state_32: chr = NEXT_CHR; if(chr == 98){goto _state_27;} else goto fail;
0053 _state_33: chr = NEXT_CHR; if(chr < 114) {if(chr == 111){/*3 action */lpos = CURR_POS; lstate = 3; goto _state_32;
0054 } else goto fail;
0055 } else {if(chr == 114){/*7 action */lpos = CURR_POS; lstate = 7; goto _state_24;
0056 } else goto fail;
0057 }_state_34: chr = NEXT_CHR; if(chr == 111){goto _state_33;} else goto fail;
0058 _state_35: chr = NEXT_CHR; if(chr >= 48 && chr < 58){/*2 action */lpos = CURR_POS; lstate = 2; goto _state_35;
0059 } else goto fail;
0060 _state_36: chr = NEXT_CHR; if(chr < 48) {if(chr == 46){/*2 action */lpos = CURR_POS; lstate = 2; goto _state_35;
0061 } else goto fail;
0062 } else {if(chr < 58){/*2 action */lpos = CURR_POS; lstate = 2; goto _state_36;
0063 } else goto fail;
0064 }_state_37: chr = NEXT_CHR; if(chr < 32) {if(chr == 9 || chr == 10){/*1 action */lpos = CURR_POS; lstate = 1; goto _state_37;
0065 } else goto fail;
0066 } else {if(chr == 32){/*1 action */lpos = CURR_POS; lstate = 1; goto _state_37;
0067 } else goto fail;
0068 }_state_38: chr = NEXT_CHR; goto fail;
0069 fail:
0070 i = lpos;
0071 return lstate;
0072 }
0073 
0074 int main()
0075 {
0076     string str;
0077     getline(cin, str);
0078     QByteArray qba(str.c_str(), str.size());
0079     QUtf8ToUcs4Iterator iter(qba);
0080     QUtf8ToUcs4Iterator begin = iter;
0081     const char* names[] = {"ERROR", "whitespace", "dec-number", "foo", "bar", "baz", "foobar", "for", "umlauts", "anti-law"};
0082     int last;
0083     while(iter.hasNext())
0084     {
0085       QUtf8ToUcs4Iterator llast = iter;
0086       last = next(iter);
0087       if(last == -1)
0088       {
0089         cout << "ERROR" << endl;
0090         break;
0091       }
0092       cout << names[last] << ": " << str.substr(llast - begin, iter - llast) << endl;
0093     }
0094 }