Back to index

wims  3.65+svn20090927
b.java
Go to the documentation of this file.
00001 package atp;
00002 
00003 import java.util.Vector;
00004 
00005 // Referenced classes of package atp:
00006 //            e
00007 
00008 class b
00009 {
00010 
00011     private String _fldelse;
00012     private int _fldcase;
00013     private int _flddo;
00014     private e _fldtry;
00015     private boolean _fldbyte;
00016     private Vector _fldfor;
00017     private boolean _fldchar;
00018     private boolean a;
00019     private int _fldnew;
00020     private int _fldint;
00021     private StringBuffer _fldif;
00022     
00023        public static char TranslationC[]=
00024        {      '\u03B1','\u0391',
00025               '\u03B2','\u0392',
00026               '\u03B3','\u0393',
00027               '\u03B4','\u0394',
00028               '\u03B5','\u0395',
00029               '\u03D5','\u03A6','\u03C6',
00030               '\u03B3','\u0393',
00031               '\u03B7','\u0397',
00032               '\u03B9','\u0399',
00033               '\u03BA','\u039A',
00034               '\u03BB','\u039B',
00035               '\u03BC','\u039C',
00036               '\u03BD','\u039D',
00037               '\u03BF','\u03A9',
00038               '\u03C0','\u03A0',
00039               '\u03C7','\u03A7',
00040               '\u03C1','\u03A1',
00041               '\u03C3','\u03A3',
00042               '\u03C4','\u03A4',
00043               '\u03C5','\u03A5',
00044               '\u03C8','\u03A8',
00045               '\u03C9','\u03A9',
00046               '\u03BE','\u039E',
00047               '\u03C7','\u03A7',
00048               '\u03B6','\u0396',
00049               '\u03B8','\u0398',
00050               '$','%','&','',
00051               '\u00A9','\u00AE',
00052               '\u2030','\u00BD','\u2153','\u00BC','\u00BE','\u2154',
00053               '\u00B1','\u2202','\u2206','\u221E',
00054        };
00055 
00056        public String TranslationS[]=
00057        {      "alpha","Alpha",
00058               "beta","Beta",
00059               "gamma","Gamma",
00060               "delta","Delta",
00061               "epsilon","Epsilon",
00062               "phi","Phi","varphi",
00063               "gamma","Gamma",
00064               "eta","Eta",
00065               "iota","I",
00066               "kappa","Kappa",
00067               "lambda","Lambda",
00068               "mu","Mu",
00069               "nu","Nu",
00070               "omikron","Omikron",
00071               "pi","Pi",
00072               "chi","Chi",
00073               "rho","Rho",
00074               "sigma","Sigma",
00075               "tau","Tau",
00076               "uu","Uu",
00077               "psi","Psi",
00078               "omega","Omega",
00079               "chi","Chi",
00080               "ypsilon","Ypsilon",
00081               "zeta","Zeta",
00082               "theta","Theta",
00083               "dollar","percent","ampersand","paragraph",
00084               "copyright","trademark",
00085               "promille","half","third","quarter","threequarters","twothirds",
00086               "pm","partial","deltaop","infty",
00087        };
00088     public b(String s)
00089     {
00090         _fldbyte = false;
00091         _fldfor = new Vector(50, 50);
00092         _fldchar = false;
00093         a = false;
00094         _fldnew = 0;
00095         _fldint = 0;
00096         _fldif = new StringBuffer("");
00097         _fldtry = new e(99);
00098         a(s);
00099     }
00100 
00101     public String a(int i, int j)
00102     {
00103         _fldnew = Math.min(i, j);
00104         _fldint = Math.max(i, j);
00105         _fldchar = true;
00106         _fldif = new StringBuffer("");
00107         a(_fldelse);
00108         _fldchar = false;
00109         return _fldif.toString();
00110     }
00111 
00112     public void a(String s)
00113     {
00114         _fldelse = s;
00115         int i = 0;
00116         boolean flag = false;
00117         boolean flag1 = false;
00118         _fldbyte = false;
00119         _flddo = -1;
00120         _fldcase = -1;
00121         _fldfor.removeAllElements();
00122         a();
00123         while(!_fldbyte) 
00124         {
00125             _flddo++;
00126             if(_fldchar && _flddo == _fldnew)
00127             {
00128                 a = true;
00129             }
00130             _fldfor.addElement(_mthtry());
00131             if(_fldchar && _flddo == _fldint)
00132             {
00133                 a = false;
00134             }
00135         }
00136         _flddo = -1;
00137         for(; i < _fldfor.size(); i++)
00138         {
00139             if(((e)_fldfor.elementAt(i)).y == 114)
00140             {
00141                 int k = i - 1;
00142                 int j1 = 0;
00143                 for(; k > 0; k--)
00144                 {
00145                     if(((e)_fldfor.elementAt(k)).y == 4)
00146                     {
00147                         j1--;
00148                     } else
00149                     if(((e)_fldfor.elementAt(k)).y == 3)
00150                     {
00151                         j1++;
00152                     }
00153                     if(j1 == 1)
00154                     {
00155                         break;
00156                     }
00157                 }
00158 
00159                 int i2 = i + 1;
00160                 j1 = 0;
00161                 for(; i2 < _fldfor.size(); i2++)
00162                 {
00163                     if(((e)_fldfor.elementAt(i2)).y == 4)
00164                     {
00165                         j1++;
00166                     } else
00167                     if(((e)_fldfor.elementAt(i2)).y == 3)
00168                     {
00169                         j1--;
00170                     }
00171                     if(j1 == 1)
00172                     {
00173                         break;
00174                     }
00175                 }
00176 
00177                 if(j1 == 1 && k >= 0)
00178                 {
00179                     _fldfor.insertElementAt(new e(109, ")"), i2 + 1);
00180                     _fldfor.insertElementAt(new e(17), i2 + 1);
00181                     _fldfor.setElementAt(new e(4), i);
00182                     _fldfor.insertElementAt(new e(3), i + 1);
00183                     _fldfor.insertElementAt(new e(115), k);
00184                     _fldfor.insertElementAt(new e(109, "("), k);
00185                     _fldfor.insertElementAt(new e(16), k);
00186                     i += 4;
00187                 }
00188             } else
00189             if(((e)_fldfor.elementAt(i)).y == 115)
00190             {
00191                 int l = i - 1;
00192                 int k1 = 0;
00193                 for(; l > 0; l--)
00194                 {
00195                     if(((e)_fldfor.elementAt(l)).y == 4)
00196                     {
00197                         k1--;
00198                     } else
00199                     if(((e)_fldfor.elementAt(l)).y == 3)
00200                     {
00201                         k1++;
00202                     }
00203                     if(k1 == 1)
00204                     {
00205                         break;
00206                     }
00207                 }
00208 
00209                 if(l >= 0)
00210                 {
00211                     _fldfor.setElementAt(new e(4), i);
00212                     _fldfor.insertElementAt(new e(3), i + 1);
00213                     _fldfor.insertElementAt(new e(115), l);
00214                     i += 2;
00215                 }
00216             }
00217         }
00218 
00219         for(int j = 0; j < _fldfor.size() - 2; j++)
00220         {
00221             if(((e)_fldfor.elementAt(j)).y == 13 && ((e)_fldfor.elementAt(j + 1)).y == 109)
00222             {
00223                 int i1 = j + 2;
00224                 int l1 = 0;
00225                 int j2 = 1;
00226                 for(; i1 < _fldfor.size(); i1++)
00227                 {
00228                     if(((e)_fldfor.elementAt(i1)).y == 4)
00229                     {
00230                         l1--;
00231                     } else
00232                     if(((e)_fldfor.elementAt(i1)).y == 3)
00233                     {
00234                         l1++;
00235                     }
00236                     if(l1 != 0)
00237                     {
00238                         continue;
00239                     }
00240                     if(((e)_fldfor.elementAt(i1)).w.equals("["))
00241                     {
00242                         j2++;
00243                     } else
00244                     if(((e)_fldfor.elementAt(i1)).w.equals("]"))
00245                     {
00246                         j2--;
00247                     }
00248                     if(j2 != 0)
00249                     {
00250                         continue;
00251                     }
00252                     _fldfor.setElementAt(new e(4), i1);
00253                     break;
00254                 }
00255 
00256                 j++;
00257             }
00258         }
00259 
00260     }
00261 
00262     public void _mthdo()
00263     {
00264         _flddo = -1;
00265     }
00266 
00267     public int _mthif()
00268     {
00269         return _flddo;
00270     }
00271 
00272     public void a(int i)
00273     {
00274         _flddo = i;
00275     }
00276 
00277     public e _mthint()
00278     {
00279         _flddo++;
00280         if(_flddo >= _fldfor.size())
00281         {
00282             _flddo = _fldfor.size() - 1;
00283             return new e(99);
00284         } else
00285         {
00286             return (e)_fldfor.elementAt(_flddo);
00287         }
00288     }
00289 
00290     public boolean _mthnew()
00291     {
00292         return _flddo == _fldfor.size() - 1;
00293     }
00294 
00295     private char _mthfor()
00296     {
00297         return _fldelse.charAt(_fldcase);
00298     }
00299 
00300     private void a()
00301     {
00302         if(a)
00303         {
00304             _fldif.append(_fldelse.charAt(_fldcase));
00305         }
00306         if(_fldcase < _fldelse.length() - 1)
00307         {
00308             _fldcase++;
00309             _fldbyte = false;
00310         } else
00311         {
00312             _fldcase = _fldelse.length();
00313             _fldbyte = true;
00314         }
00315     }
00316 
00317     private e _mthtry()
00318     {
00319         StringBuffer stringbuffer = new StringBuffer("");
00320         String s = new String("");
00321         e e1 = new e();
00322         boolean flag = false;
00323         while(!_fldbyte) 
00324         {
00325             char c = _mthfor();
00326             switch(c)
00327             {
00328             case 9: // '\t'
00329             case 10: // '\n'
00330             case 13: // '\r'
00331                 a();
00332                 break;
00333 
00334             case 32: // ' '
00335                 a();
00336                 return new e(25, new String(" "));
00337 
00338             case 33: // '!'
00339             case 35: // '#'
00340             case 42: // '*'
00341             case 43: // '+'
00342             case 44: // ','
00343             case 45: // '-'
00344             case 47: // '/'
00345             case 58: // ':'
00346             case 59: // ';'
00347             case 60: // '<'
00348             case 61: // '='
00349             case 62: // '>'
00350             case 126: // '~'
00351                 a();
00352                 return new e(108, String.valueOf(c));
00353 
00354             case 123: // '{'
00355                 a();
00356                 return new e(3);
00357 
00358             case 125: // '}'
00359                 a();
00360                 return new e(4);
00361 
00362             case 40: // '('
00363             case 41: // ')'
00364             case 91: // '['
00365             case 93: // ']'
00366             case 124: // '|'
00367                 a();
00368                 return new e(109, String.valueOf(c));
00369 
00370             case 38: // '&'
00371                 a();
00372                 return new e(7);
00373 
00374             case 39: // '\''
00375             case 64: // '@'
00376             case 65: // 'A'
00377             case 66: // 'B'
00378             case 67: // 'C'
00379             case 68: // 'D'
00380             case 69: // 'E'
00381             case 70: // 'F'
00382             case 71: // 'G'
00383             case 72: // 'H'
00384             case 73: // 'I'
00385             case 74: // 'J'
00386             case 75: // 'K'
00387             case 76: // 'L'
00388             case 77: // 'M'
00389             case 78: // 'N'
00390             case 79: // 'O'
00391             case 80: // 'P'
00392             case 81: // 'Q'
00393             case 82: // 'R'
00394             case 83: // 'S'
00395             case 84: // 'T'
00396             case 85: // 'U'
00397             case 86: // 'V'
00398             case 87: // 'W'
00399             case 88: // 'X'
00400             case 89: // 'Y'
00401             case 90: // 'Z'
00402             case 97: // 'a'
00403             case 98: // 'b'
00404             case 99: // 'c'
00405             case 100: // 'd'
00406             case 101: // 'e'
00407             case 102: // 'f'
00408             case 103: // 'g'
00409             case 104: // 'h'
00410             case 105: // 'i'
00411             case 106: // 'j'
00412             case 107: // 'k'
00413             case 108: // 'l'
00414             case 109: // 'm'
00415             case 110: // 'n'
00416             case 111: // 'o'
00417             case 112: // 'p'
00418             case 113: // 'q'
00419             case 114: // 'r'
00420             case 115: // 's'
00421             case 116: // 't'
00422             case 117: // 'u'
00423             case 118: // 'v'
00424             case 119: // 'w'
00425             case 120: // 'x'
00426             case 121: // 'y'
00427             case 122: // 'z'
00428             case 37: // '%'
00429                         stringbuffer.append(c);
00430                 a();
00431                 for(boolean flag1 = false; !_fldbyte && !flag1;)
00432                 {
00433                     c = _mthfor();
00434                     switch(c)
00435                     {
00436                     case 39: // '\''
00437                     case 64: // '@'
00438                     case 65: // 'A'
00439                     case 66: // 'B'
00440                     case 67: // 'C'
00441                     case 68: // 'D'
00442                     case 69: // 'E'
00443                     case 70: // 'F'
00444                     case 71: // 'G'
00445                     case 72: // 'H'
00446                     case 73: // 'I'
00447                     case 74: // 'J'
00448                     case 75: // 'K'
00449                     case 76: // 'L'
00450                     case 77: // 'M'
00451                     case 78: // 'N'
00452                     case 79: // 'O'
00453                     case 80: // 'P'
00454                     case 81: // 'Q'
00455                     case 82: // 'R'
00456                     case 83: // 'S'
00457                     case 84: // 'T'
00458                     case 85: // 'U'
00459                     case 86: // 'V'
00460                     case 87: // 'W'
00461                     case 88: // 'X'
00462                     case 89: // 'Y'
00463                     case 90: // 'Z'
00464                     case 97: // 'a'
00465                     case 98: // 'b'
00466                     case 99: // 'c'
00467                     case 100: // 'd'
00468                     case 101: // 'e'
00469                     case 102: // 'f'
00470                     case 103: // 'g'
00471                     case 104: // 'h'
00472                     case 105: // 'i'
00473                     case 106: // 'j'
00474                     case 107: // 'k'
00475                     case 108: // 'l'
00476                     case 109: // 'm'
00477                     case 110: // 'n'
00478                     case 111: // 'o'
00479                     case 112: // 'p'
00480                     case 113: // 'q'
00481                     case 114: // 'r'
00482                     case 115: // 's'
00483                     case 116: // 't'
00484                     case 117: // 'u'
00485                     case 118: // 'v'
00486                     case 119: // 'w'
00487                     case 120: // 'x'
00488                     case 121: // 'y'
00489                     case 122: // 'z'
00490                         stringbuffer.append(c);
00491                         a();
00492                         break;
00493 
00494                     case 40: // '('
00495                     case 41: // ')'
00496                     case 42: // '*'
00497                     case 43: // '+'
00498                     case 44: // ','
00499                     case 45: // '-'
00500                     case 46: // '.'
00501                     case 47: // '/'
00502                     case 48: // '0'
00503                     case 49: // '1'
00504                     case 50: // '2'
00505                     case 51: // '3'
00506                     case 52: // '4'
00507                     case 53: // '5'
00508                     case 54: // '6'
00509                     case 55: // '7'
00510                     case 56: // '8'
00511                     case 57: // '9'
00512                     case 58: // ':'
00513                     case 59: // ';'
00514                     case 60: // '<'
00515                     case 61: // '='
00516                     case 62: // '>'
00517                     case 63: // '?'
00518                     case 91: // '['
00519                     case 92: // '\\'
00520                     case 93: // ']'
00521                     case 94: // '^'
00522                     case 95: // '_'
00523                     case 96: // '`'
00524                     default:
00525                         flag1 = true;
00526                         break;
00527                     }
00528                 }
00529 
00530                 return new e(1, stringbuffer.toString());
00531 
00532             case 46: // '.'
00533             case 48: // '0'
00534             case 49: // '1'
00535             case 50: // '2'
00536             case 51: // '3'
00537             case 52: // '4'
00538             case 53: // '5'
00539             case 54: // '6'
00540             case 55: // '7'
00541             case 56: // '8'
00542             case 57: // '9'
00543                 stringbuffer.append(c);
00544                 a();
00545                 for(boolean flag2 = false; !_fldbyte && !flag2;)
00546                 {
00547                     c = _mthfor();
00548                     switch(c)
00549                     {
00550                     case 46: // '.'
00551                     case 48: // '0'
00552                     case 49: // '1'
00553                     case 50: // '2'
00554                     case 51: // '3'
00555                     case 52: // '4'
00556                     case 53: // '5'
00557                     case 54: // '6'
00558                     case 55: // '7'
00559                     case 56: // '8'
00560                     case 57: // '9'
00561                         stringbuffer.append(c);
00562                         a();
00563                         break;
00564 
00565                     case 47: // '/'
00566                     default:
00567                         flag2 = true;
00568                         break;
00569                     }
00570                 }
00571 
00572                 return new e(2, stringbuffer.toString());
00573 
00574             case 92: // '\\'
00575                 a();
00576                 boolean flag3 = false;
00577                 if(_fldbyte)
00578                 {
00579                     break;
00580                 }
00581                 c = _mthfor();
00582                 switch(c)
00583                 {
00584                 case 92: // '\\'
00585                     a();
00586                     return new e(8);
00587 
00588                 case 123: // '{'
00589                     a();
00590                     return new e(109, String.valueOf(c));
00591 
00592                 case 124: // '|'
00593                     a();
00594                     return new e(109, "||");
00595 
00596                 case 125: // '}'
00597                     a();
00598                     return new e(109, String.valueOf(c));
00599 
00600                 case 44: // ','
00601                     a();
00602                     return new e(113, "3");
00603 
00604                 case 58: // ':'
00605                     a();
00606                     return new e(113, "4");
00607 
00608                 case 59: // ';'
00609                     a();
00610                     return new e(113, "5");
00611 
00612                 case 33: // '!'
00613                     a();
00614                     return new e(113, "-3");
00615 
00616                 case 65: // 'A'
00617                 case 66: // 'B'
00618                 case 67: // 'C'
00619                 case 68: // 'D'
00620                 case 69: // 'E'
00621                 case 70: // 'F'
00622                 case 71: // 'G'
00623                 case 72: // 'H'
00624                 case 73: // 'I'
00625                 case 74: // 'J'
00626                 case 75: // 'K'
00627                 case 76: // 'L'
00628                 case 77: // 'M'
00629                 case 78: // 'N'
00630                 case 79: // 'O'
00631                 case 80: // 'P'
00632                 case 81: // 'Q'
00633                 case 82: // 'R'
00634                 case 83: // 'S'
00635                 case 84: // 'T'
00636                 case 85: // 'U'
00637                 case 86: // 'V'
00638                 case 87: // 'W'
00639                 case 88: // 'X'
00640                 case 89: // 'Y'
00641                 case 90: // 'Z'
00642                 case 97: // 'a'
00643                 case 98: // 'b'
00644                 case 99: // 'c'
00645                 case 100: // 'd'
00646                 case 101: // 'e'
00647                 case 102: // 'f'
00648                 case 103: // 'g'
00649                 case 104: // 'h'
00650                 case 105: // 'i'
00651                 case 106: // 'j'
00652                 case 107: // 'k'
00653                 case 108: // 'l'
00654                 case 109: // 'm'
00655                 case 110: // 'n'
00656                 case 111: // 'o'
00657                 case 112: // 'p'
00658                 case 113: // 'q'
00659                 case 114: // 'r'
00660                 case 115: // 's'
00661                 case 116: // 't'
00662                 case 117: // 'u'
00663                 case 118: // 'v'
00664                 case 119: // 'w'
00665                 case 120: // 'x'
00666                 case 121: // 'y'
00667                 case 122: // 'z'
00668                     stringbuffer.append(c);
00669                     a();
00670                     for(boolean flag4 = false; !_fldbyte && !flag4;)
00671                     {
00672                         c = _mthfor();
00673                         switch(c)
00674                         {
00675                         case 65: // 'A'
00676                         case 66: // 'B'
00677                         case 67: // 'C'
00678                         case 68: // 'D'
00679                         case 69: // 'E'
00680                         case 70: // 'F'
00681                         case 71: // 'G'
00682                         case 72: // 'H'
00683                         case 73: // 'I'
00684                         case 74: // 'J'
00685                         case 75: // 'K'
00686                         case 76: // 'L'
00687                         case 77: // 'M'
00688                         case 78: // 'N'
00689                         case 79: // 'O'
00690                         case 80: // 'P'
00691                         case 81: // 'Q'
00692                         case 82: // 'R'
00693                         case 83: // 'S'
00694                         case 84: // 'T'
00695                         case 85: // 'U'
00696                         case 86: // 'V'
00697                         case 87: // 'W'
00698                         case 88: // 'X'
00699                         case 89: // 'Y'
00700                         case 90: // 'Z'
00701                         case 97: // 'a'
00702                         case 98: // 'b'
00703                         case 99: // 'c'
00704                         case 100: // 'd'
00705                         case 101: // 'e'
00706                         case 102: // 'f'
00707                         case 103: // 'g'
00708                         case 104: // 'h'
00709                         case 105: // 'i'
00710                         case 106: // 'j'
00711                         case 107: // 'k'
00712                         case 108: // 'l'
00713                         case 109: // 'm'
00714                         case 110: // 'n'
00715                         case 111: // 'o'
00716                         case 112: // 'p'
00717                         case 113: // 'q'
00718                         case 114: // 'r'
00719                         case 115: // 's'
00720                         case 116: // 't'
00721                         case 117: // 'u'
00722                         case 118: // 'v'
00723                         case 119: // 'w'
00724                         case 120: // 'x'
00725                         case 121: // 'y'
00726                         case 122: // 'z'
00727                             stringbuffer.append(c);
00728                             a();
00729                             break;
00730 
00731                         case 91: // '['
00732                         case 92: // '\\'
00733                         case 93: // ']'
00734                         case 94: // '^'
00735                         case 95: // '_'
00736                         case 96: // '`'
00737                         default:
00738                             flag4 = true;
00739                             break;
00740                         }
00741                     }
00742 
00743                     String s1 = stringbuffer.toString();
00744                     if(s1.equals("acute"))
00745                     {
00746                         return new e(22, "\264");
00747                     }
00748                     if(s1.equals("array"))
00749                     {
00750                         return new e(15);
00751                     }
00752                     if(s1.equals("bar"))
00753                     {
00754                         return new e(14, "bar");
00755                     }
00756                     if(s1.equals("ddot"))
00757                     {
00758                         return new e(22, "..");
00759                     }
00760                     if(s1.equals("dot"))
00761                     {
00762                         return new e(22, ".");
00763                     }
00764                     if(s1.equals("frac"))
00765                     {
00766                         return new e(12);
00767                     }
00768                     if(s1.equals("dfrac"))
00769                     {
00770                         return new e(1001);
00771                     }
00772                     if(s1.equals("grave"))
00773                     {
00774                         return new e(22, "`");
00775                     }
00776                     if(s1.equals("hat"))
00777                     {
00778                         return new e(22, "^");
00779                     }
00780                     if(s1.equals("int"))
00781                     {
00782                         return new e(20, "int");
00783                     }
00784                     if(s1.equals("oint"))
00785                     {
00786                         return new e(20, "oint");
00787                     }
00788                     if(s1.equals("left"))
00789                     {
00790                         return new e(16);
00791                     }
00792                     if(s1.equals("limsup"))
00793                     {
00794                         return new e(24, "lim sup");
00795                     }
00796                     if(s1.equals("liminf"))
00797                     {
00798                         return new e(24, "lim inf");
00799                     }
00800                     if(s1.equals("prod"))
00801                     {
00802                         return new e(20, "prod");
00803                     }
00804                     if(s1.equals("right"))
00805                     {
00806                         return new e(17);
00807                     }
00808                     if(s1.equals("sqrt"))
00809                     {
00810                         return new e(13);
00811                     }
00812                     if(s1.equals("sum"))
00813                     {
00814                         return new e(20, "sum");
00815                     }
00816                     if(s1.equals("tilde"))
00817                     {
00818                         return new e(22, "~");
00819                     }
00820                     if(s1.equals("vec"))
00821                     {
00822                         return new e(14);
00823                     }
00824                     if(s1.equals("widehat"))
00825                     {
00826                         return new e(14, "widehat");
00827                     }
00828                     if(s1.equals("widetilde"))
00829                     {
00830                         return new e(14, "widetilde");
00831                     }
00832                     if(s1.equals("quad"))
00833                     {
00834                         return new e(113, "18");
00835                     }
00836                     if(s1.equals("qquad"))
00837                     {
00838                         return new e(113, "36");
00839                     }
00840                     if(s1.equals("backslash"))
00841                     {
00842                         return new e(2, "\\");
00843                     }
00844                     if(s1.equals("langle"))
00845                     {
00846                         return new e(5, "<");
00847                     }
00848                     if(s1.equals("rangle"))
00849                     {
00850                         return new e(5, ">");
00851                     }
00852                     if(s1.equals("not"))
00853                     {
00854                         return new e(110);
00855                     }
00856                     if(s1.equals("atop"))
00857                     {
00858                         return new e(115);
00859                     }
00860                     if(s1.equals("choose"))
00861                     {
00862                         return new e(114);
00863                     }
00864                     if(s1.equals("overline"))
00865                     {
00866                         return new e(116);
00867                     }
00868                     if(s1.equals("underline"))
00869                     {
00870                         return new e(117);
00871                     }
00872                     if(s1.equals("overbrace"))
00873                     {
00874                         return new e(118);
00875                     }
00876                     if(s1.equals("underbrace"))
00877                     {
00878                         return new e(119);
00879                     }
00880                     if(s1.equals("stackrel"))
00881                     {
00882                         return new e(120);
00883                     }
00884                     if(s1.equals("begin"))
00885                     {
00886                         return new e(50);
00887                     }
00888                     if(s1.equals("end"))
00889                     {
00890                         return new e(51);
00891                     }
00892                     if(s1.equals("fgcolor"))
00893                     {
00894                         return new e(121);
00895                     }
00896                     if(s1.equals("bgcolor"))
00897                     {
00898                         return new e(122);
00899                     }
00900                     if(s1.equals("fbox"))
00901                     {
00902                         return new e(123);
00903                     }
00904                     if(s1.equals("mbox"))
00905                     {
00906                         return new e(124);
00907                     }
00908                     if((" arccos arcsin arctan arg cos cosh cot coth csc def deg dim exp hom ker lg ln lo" +
00909                             "g sec sin sinh tan tanh ")
00910                             .indexOf(" " + s1 + " ") >= 0)
00911                     {
00912                         return new e(9, s1);
00913                     }
00914                     if(" det gcd inf lim max min Pr sup ".indexOf(" " + s1 + " ") >= 0)
00915                     {
00916                         return new e(24, s1);
00917                     }
00918                     {       boolean found=false;
00919                      for (int i=0; i<TranslationS.length; i++)
00920                      {      if (s1.equals(TranslationS[i]))
00921                             {      found=true; c=TranslationC[i]; break;
00922                             }
00923                      }
00924                      if (found)
00925                      {      stringbuffer.append(c);
00926                                    return new e(2,""+c);
00927                      }
00928                     }
00929                     if((" alpha delta epsilon iota kappa lambda nu omega pi sigma theta tau upsilon varep" +
00930                                           "silon varpi vartheta pm mp times div cdot cdots ldots ast star amalg cap cup upl" +
00931                                           "us sqcap sqcup vee wedge wr circ bullet diamond lhd rhd oslash odot Box bigtrian" +
00932                                           "gleup triangleleft triangleright oplus ominus otimes ll subset sqsubset in vdash" +
00933                                           " models gg supset sqsupset ni dashv perp neq doteq approx cong equiv propto prec" +
00934                                           " sim simeq asymp smile frown bowtie succ aleph forall hbar exists imath neg flat" +
00935                                           " ell Re angle Im backslash mho Box prime emptyset triangle nabla partial top bot" +
00936                                           " Join infty vdash dashv Fourier Laplace leftarrow gets hookrightarrow leftharpoo" +
00937                                           "ndown rightarrow to rightharpoondown leadsto leftrightarrow mapsto hookleftarrow" +
00938                                           " leftharpoonup rightharpoonup rightleftharpoons longleftarrow longrightarrow lon" +
00939                                           "gleftrightarrow longmapsto ")
00940                                                  .indexOf(" " + s1 + " ") >= 0)
00941                     {
00942                         return new e(18, s1);
00943                     }
00944                     if((" beta chi eta gamma mu psi phi rho varrho varsigma varphi xi zeta le leq ge geq " +
00945                                                  "vdots ddots natural jmath bigtriangledown sharp uparrow downarrow updownarrow ne" +
00946                                                  "arrow searrow swarrow nwarrow succeq mid preceq parallel subseteq sqsubseteq sup" +
00947                                                  "seteq sqsupseteq clubsuit diamondsuit heartsuit spadesuit wp dagger ddagger setm" +
00948                                                  "inus unlhd unrhd bigcirc ")
00949                                                  .indexOf(" " + s1 + " ") >= 0)
00950                     {
00951                         return new e(19, s1);
00952                     }
00953                     if((" Delta Gamma Lambda Omega Pi Phi Psi Sigma Theta Upsilon Xi Leftarrow Rightarrow" +
00954                                           " Leftrightarrow Longleftarrow Longrightarrow Longleftrightarrow Diamond ")
00955                                           .indexOf(" " + s1 + " ") >= 0)
00956                     {
00957                         return new e(18, s1 + "Big");
00958                     }
00959                     if(" Uparrow Downarrow Updownarrow ".indexOf(" " + s1 + " ") >= 0)
00960                     {
00961                         return new e(19, s1 + "Big");
00962                     }
00963                     // fall through
00964 
00965                 case 34: // '"'
00966                 case 35: // '#'
00967                 case 36: // '$'
00968                 // case 37: // '%'
00969                 case 38: // '&'
00970                 case 39: // '\''
00971                 case 40: // '('
00972                 case 41: // ')'
00973                 case 42: // '*'
00974                 case 43: // '+'
00975                 case 45: // '-'
00976                 case 46: // '.'
00977                 case 47: // '/'
00978                 case 48: // '0'
00979                 case 49: // '1'
00980                 case 50: // '2'
00981                 case 51: // '3'
00982                 case 52: // '4'
00983                 case 53: // '5'
00984                 case 54: // '6'
00985                 case 55: // '7'
00986                 case 56: // '8'
00987                 case 57: // '9'
00988                 case 60: // '<'
00989                 case 61: // '='
00990                 case 62: // '>'
00991                 case 63: // '?'
00992                 case 64: // '@'
00993                 case 91: // '['
00994                 case 93: // ']'
00995                 case 94: // '^'
00996                 case 95: // '_'
00997                 case 96: // '`'
00998                 default:
00999                     boolean flag5 = true;
01000                     a();
01001                     //System.out.println("Scanner invalid tag: \\" + stringbuffer.toString());
01002                     return new e(100);
01003                 }
01004 
01005             case 94: // '^'
01006                 a();
01007                 return new e(10);
01008 
01009             case 95: // '_'
01010                 a();
01011                 return new e(11);
01012 
01013             case 11: // '\013'
01014             case 12: // '\f'
01015             case 14: // '\016'
01016             case 15: // '\017'
01017             case 16: // '\020'
01018             case 17: // '\021'
01019             case 18: // '\022'
01020             case 19: // '\023'
01021             case 20: // '\024'
01022             case 21: // '\025'
01023             case 22: // '\026'
01024             case 23: // '\027'
01025             case 24: // '\030'
01026             case 25: // '\031'
01027             case 26: // '\032'
01028             case 27: // '\033'
01029             case 28: // '\034'
01030             case 29: // '\035'
01031             case 30: // '\036'
01032             case 31: // '\037'
01033             case 34: // '"'
01034             case 36: // '$'
01035             // case 37: // '%'
01036             case 63: // '?'
01037             case 96: // '`'
01038             default:
01039                 a();
01040                 //System.out.println("Scanner invalid character: " + c);
01041               return new e(100);
01042             }
01043         }
01044         return new e(99);
01045     }
01046 }
01047