2028 lines
46 KiB
Java
2028 lines
46 KiB
Java
/*****************************************************************************
|
|
* *
|
|
* HotEqn Equation Viewer Basic Applet *
|
|
* *
|
|
******************************************************************************
|
|
* Java Applet to view mathematical Equations provided in the LaTeX language *
|
|
******************************************************************************
|
|
|
|
Copyright 2006 Stefan Müller and Christian Schmid, modified by Rene Grothmann
|
|
|
|
This file is part of the HotEqn package.
|
|
|
|
HotEqn is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation;
|
|
HotEqn is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package atp;
|
|
|
|
import java.awt.BasicStroke;
|
|
import java.awt.Dimension;
|
|
import java.awt.Font;
|
|
import java.awt.FontMetrics;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.Image;
|
|
import java.awt.MediaTracker;
|
|
import java.awt.event.ActionListener;
|
|
import java.util.Hashtable;
|
|
|
|
import javax.swing.JComponent;
|
|
|
|
public class sHotEqn {
|
|
|
|
JComponent PC; // container panel
|
|
|
|
private int width;
|
|
private int height;
|
|
private String _fldcase;
|
|
private String _fldint;
|
|
ActionListener G;
|
|
private final b S;
|
|
private e D;
|
|
private Font d;
|
|
private Font b;
|
|
private Font _fldnull;
|
|
private Font _fldlong;
|
|
private final int j[] = { 14, 12, 10, 8 };
|
|
private final int _fldfor[] = { 3, 3, 3, 3 };
|
|
private Image s;
|
|
private boolean Q;
|
|
private int f;
|
|
private int H;
|
|
private final boolean K;
|
|
private int g;
|
|
private String z;
|
|
private String E;
|
|
private final f _flddo;
|
|
private final MediaTracker B;
|
|
private final Hashtable<String, Image> w;
|
|
public boolean r;
|
|
public boolean L;
|
|
public boolean q;
|
|
private boolean A;
|
|
private boolean t;
|
|
private int _fldelse;
|
|
private int _fldchar;
|
|
private int J;
|
|
private int I;
|
|
private int a;
|
|
private int m;
|
|
private int R;
|
|
private int l;
|
|
private int F;
|
|
private boolean c;
|
|
private int p;
|
|
private int o;
|
|
|
|
public sHotEqn(final JComponent PC) {
|
|
width = 0;
|
|
height = 0;
|
|
_fldcase = null;
|
|
_fldint = "Helvetica";
|
|
Q = false;
|
|
f = 0;
|
|
H = 0;
|
|
K = false;
|
|
g = 0;
|
|
z = "left";
|
|
E = "top";
|
|
w = new Hashtable<String, Image>(13);
|
|
r = false;
|
|
L = false;
|
|
q = true;
|
|
A = false;
|
|
t = true;
|
|
_fldelse = 0;
|
|
_fldchar = 0;
|
|
J = 0;
|
|
I = 0;
|
|
a = 0;
|
|
m = 0;
|
|
R = 0;
|
|
l = 0;
|
|
F = 5;
|
|
c = false;
|
|
p = 0;
|
|
o = 0;
|
|
_flddo = new f();
|
|
B = new MediaTracker(PC);
|
|
S = new b("");
|
|
}
|
|
|
|
public void setEquation(final String s1) {
|
|
_fldcase = s1;
|
|
S.a(s1);
|
|
Q = false;
|
|
}
|
|
|
|
public String getEquation() {
|
|
return _fldcase;
|
|
}
|
|
|
|
public String Status;
|
|
|
|
public void printStatus(final String s1) {
|
|
Status = s1;
|
|
}
|
|
|
|
private void a(final String s1) {
|
|
Status = s1;
|
|
|
|
}
|
|
|
|
public Image getImage() {
|
|
if (Q) {
|
|
return s;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void setDebug(final boolean flag) {
|
|
q = flag;
|
|
}
|
|
|
|
public boolean isDebug() {
|
|
return q;
|
|
}
|
|
|
|
public void setFontname(final String s1) {
|
|
_fldint = s1;
|
|
}
|
|
|
|
public String getFontname() {
|
|
return _fldint;
|
|
}
|
|
|
|
int i10, j10, k10, l10;
|
|
boolean bold0, fonts = false;
|
|
|
|
public void setHAlign(final String s1) {
|
|
z = s1;
|
|
Q = false;
|
|
}
|
|
|
|
public String getHAlign() {
|
|
return z;
|
|
}
|
|
|
|
public void setVAlign(final String s1) {
|
|
E = s1;
|
|
Q = false;
|
|
}
|
|
|
|
public String getVAlign() {
|
|
return E;
|
|
}
|
|
|
|
public void setEditable(final boolean flag) {
|
|
t = flag;
|
|
}
|
|
|
|
public boolean isEditable() {
|
|
return t;
|
|
}
|
|
|
|
public String getSelectedArea() {
|
|
return S.a(p, o);
|
|
}
|
|
|
|
public Dimension getPreferredSize() {
|
|
if ((width == 0) & (height == 0)) {
|
|
final Graphics2D g1 = (Graphics2D) PC.getGraphics();
|
|
if (g1 != null) {
|
|
g1.setFont(d);
|
|
S._mthdo();
|
|
final c c1 = _mthnew(0, 150, false, g1, 1);
|
|
if (K) {
|
|
g = 5;
|
|
} else {
|
|
g = 0;
|
|
}
|
|
f = 1 + c1._flddo + 2 * g;
|
|
H = 1 + c1._fldif + c1.a + 2 * g;
|
|
}
|
|
}
|
|
width = f;
|
|
height = H;
|
|
if (f <= 1) {
|
|
return new Dimension(100, 100);
|
|
} else {
|
|
return new Dimension(f, H);
|
|
}
|
|
}
|
|
|
|
final int ff1 = 8, ff2 = 6;
|
|
|
|
public Dimension getSizeof(final String s1, final Graphics2D g1) {
|
|
if (d != g1.getFont()) {
|
|
d = g1.getFont();
|
|
final int fs = d.getSize();
|
|
b = new Font(d.getFamily(), d.getStyle(), fs * ff1 / 10);
|
|
|
|
_fldnull = _fldlong = new Font(d.getFamily(), d.getStyle(), fs
|
|
* ff2 / 10);
|
|
}
|
|
|
|
S.a(s1);
|
|
final c c1 = _mthnew(0, 150, false, g1, 1);
|
|
byte byte0;
|
|
if (K) {
|
|
byte0 = 5;
|
|
} else {
|
|
byte0 = 0;
|
|
}
|
|
return new Dimension(1 + c1._flddo + 2 * byte0, 1 + c1._fldif + c1.a
|
|
+ 2 * byte0);
|
|
}
|
|
|
|
public int getAscent(final String s1, final Graphics2D g1) {
|
|
if (d != g1.getFont()) {
|
|
d = g1.getFont();
|
|
final int fs = d.getSize();
|
|
b = new Font(d.getFamily(), d.getStyle(), fs * ff1 / 10);
|
|
_fldnull = _fldlong = new Font(d.getFamily(), d.getStyle(), fs
|
|
* ff2 / 10);
|
|
}
|
|
|
|
S.a(s1);
|
|
final c c1 = _mthnew(0, 150, false, g1, 1);
|
|
byte byte0;
|
|
if (K) {
|
|
byte0 = 5;
|
|
} else {
|
|
byte0 = 0;
|
|
}
|
|
return c1._fldif + byte0;
|
|
}
|
|
|
|
public Dimension getMinimumSize() {
|
|
return getPreferredSize();
|
|
}
|
|
|
|
public synchronized int paint(final int cc, final int rr, final Graphics2D g2) {
|
|
// g2.setStroke(new BasicStroke(1.0f));
|
|
if (d != g2.getFont()) {
|
|
d = g2.getFont();
|
|
final int fs = d.getSize();
|
|
b = new Font(d.getFamily(), d.getStyle(), fs * ff1 / 10);
|
|
_fldnull = _fldlong = new Font(d.getFamily(), d.getStyle(), fs
|
|
* ff2 / 10);
|
|
}
|
|
c c1 = new c();
|
|
g2.setFont(d);
|
|
g = 0;
|
|
S._mthdo();
|
|
c1 = _mthnew(cc, rr, false, g2, 1);
|
|
final int hh = c1._fldif;
|
|
c1 = new c();
|
|
S._mthdo();
|
|
c1 = _mthnew(cc, rr + hh, true, g2, 1);
|
|
a(" ");
|
|
if (z.equals("center")) {
|
|
} else if (z.equals("right")) {
|
|
}
|
|
if (E.equals("middle")) {
|
|
} else if (E.equals("bottom")) {
|
|
}
|
|
f = 1 + c1._flddo + 2 * g;
|
|
H = 1 + c1._fldif + c1.a + 2 * g;
|
|
if (f > width) {
|
|
}
|
|
if (H > height) {
|
|
}
|
|
Q = true;
|
|
notify();
|
|
return c1._fldif + c1.a;
|
|
}
|
|
|
|
private c _mthnew(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
return _mthtry(i1, j1, flag, g1, k1, true);
|
|
}
|
|
|
|
private c _mthtry(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1, final boolean flag1) {
|
|
c c1 = new c();
|
|
final c c2 = new c();
|
|
boolean flag2 = true;
|
|
boolean flag5 = false;
|
|
int l1 = 0;
|
|
while (!S._mthnew() && flag2) {
|
|
D = S._mthint();
|
|
if (A && flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
boolean flag4 = false;
|
|
final int i2 = l1;
|
|
final int j2 = D.y;
|
|
switch (D.y) {
|
|
case 4: // '\004'
|
|
case 7: // '\007'
|
|
case 8: // '\b'
|
|
case 17: // '\021'
|
|
case 51: // '3'
|
|
if (c && flag) {
|
|
if (l1 > o) {
|
|
o = l1;
|
|
}
|
|
if (l1 < p) {
|
|
p = l1;
|
|
}
|
|
}
|
|
return c2;
|
|
|
|
case 22: // '\026'
|
|
c1 = _mthbyte(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 5: // '\005'
|
|
c1 = a(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 15: // '\017'
|
|
if (c && flag) {
|
|
flag5 = true;
|
|
}
|
|
c1 = _mthif(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 50: // '2'
|
|
if (c && flag) {
|
|
flag5 = true;
|
|
}
|
|
c1 = _mthgoto(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 3: // '\003'
|
|
c1 = _mthtry(i1 + c2._flddo, j1, flag, g1, k1, true);
|
|
break;
|
|
|
|
case 123: // '{'
|
|
if (c && flag) {
|
|
flag5 = true;
|
|
}
|
|
c1 = _mthelse(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 1: // '\001'
|
|
c1 = _mthnew(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 110: // 'n'
|
|
c1 = _mthtry(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 108: // 'l'
|
|
c1 = _mthint(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 12: // '\f'
|
|
c1 = _mthfor(i1 + c2._flddo, j1, flag, g1, k1, true);
|
|
break;
|
|
|
|
case 1001: // '\f'
|
|
c1 = _mthfor(i1 + c2._flddo, j1, flag, g1, k1 - 1, true);
|
|
break;
|
|
|
|
case 115: // 's'
|
|
c1 = _mthfor(i1 + c2._flddo, j1, flag, g1, k1, false);
|
|
break;
|
|
|
|
case 2: // '\002'
|
|
case 9: // '\t'
|
|
c1 = _mthif(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 18: // '\022'
|
|
c1 = _mthif(i1 + c2._flddo, j1, flag, g1, k1, false);
|
|
break;
|
|
|
|
case 19: // '\023'
|
|
c1 = _mthif(i1 + c2._flddo, j1, flag, g1, k1, true);
|
|
break;
|
|
|
|
case 16: // '\020'
|
|
if (c && flag) {
|
|
flag5 = true;
|
|
}
|
|
c1 = _mthnull(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 24: // '\030'
|
|
c1 = _mthfor(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 124: // '|'
|
|
c1 = _mthdo(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 118: // 'v'
|
|
c1 = a(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 119: // 'w'
|
|
c1 = _mthlong(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 116: // 't'
|
|
c1 = a(i1 + c2._flddo, j1, flag, g1, k1, true);
|
|
break;
|
|
|
|
case 117: // 'u'
|
|
c1 = a(i1 + c2._flddo, j1, flag, g1, k1, false);
|
|
break;
|
|
|
|
case 109: // 'm'
|
|
c1 = _mthtry(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 113: // 'q'
|
|
c1 = _mthfor(i1 + c2._flddo, j1, flag, g1);
|
|
break;
|
|
|
|
case 13: // '\r'
|
|
if (c && flag) {
|
|
flag5 = true;
|
|
}
|
|
c1 = _mthcase(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 120: // 'x'
|
|
c1 = _mthchar(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 10: // '\n'
|
|
c1 = _mthint(i1 + c2._flddo, j1, flag, g1, k1, true);
|
|
break;
|
|
|
|
case 11: // '\013'
|
|
c1 = _mthdo(i1 + c2._flddo, j1, flag, g1, k1, true);
|
|
break;
|
|
|
|
case 20: // '\024'
|
|
c1 = _mthdo(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 14: // '\016'
|
|
c1 = _mthint(i1 + c2._flddo, j1, flag, g1, k1);
|
|
break;
|
|
|
|
case 25: // '\031'
|
|
c1 = new c(0, 0, 0);
|
|
flag4 = true;
|
|
break;
|
|
|
|
case 99: // 'c'
|
|
case 100: // 'd'
|
|
c1 = new c(0, 0, 0);
|
|
break;
|
|
|
|
case 6: // '\006'
|
|
case 21: // '\025'
|
|
case 23: // '\027'
|
|
case 26: // '\032'
|
|
case 27: // '\033'
|
|
case 28: // '\034'
|
|
case 29: // '\035'
|
|
case 30: // '\036'
|
|
case 31: // '\037'
|
|
case 32: // ' '
|
|
case 33: // '!'
|
|
case 34: // '"'
|
|
case 35: // '#'
|
|
case 36: // '$'
|
|
case 37: // '%'
|
|
case 38: // '&'
|
|
case 39: // '\''
|
|
case 40: // '('
|
|
case 41: // ')'
|
|
case 42: // '*'
|
|
case 43: // '+'
|
|
case 44: // ','
|
|
case 45: // '-'
|
|
case 46: // '.'
|
|
case 47: // '/'
|
|
case 48: // '0'
|
|
case 49: // '1'
|
|
case 52: // '4'
|
|
case 53: // '5'
|
|
case 54: // '6'
|
|
case 55: // '7'
|
|
case 56: // '8'
|
|
case 57: // '9'
|
|
case 58: // ':'
|
|
case 59: // ';'
|
|
case 60: // '<'
|
|
case 61: // '='
|
|
case 62: // '>'
|
|
case 63: // '?'
|
|
case 64: // '@'
|
|
case 913:
|
|
case 914:
|
|
case 915:
|
|
case 916:
|
|
case 917:
|
|
case 918:
|
|
case 919:
|
|
case 920:
|
|
case 921:
|
|
case 922:
|
|
case 923:
|
|
case 924:
|
|
case 925:
|
|
case 926:
|
|
case 927:
|
|
case 928:
|
|
case 929:
|
|
case 930:
|
|
case 931:
|
|
case 932:
|
|
case 933:
|
|
case 934:
|
|
case 935:
|
|
case 936:
|
|
case 937:
|
|
case 945:
|
|
case 946:
|
|
case 947:
|
|
case 948:
|
|
case 949:
|
|
case 950:
|
|
case 951:
|
|
case 952:
|
|
case 953:
|
|
case 954:
|
|
case 955:
|
|
case 956:
|
|
case 957:
|
|
case 958:
|
|
case 959:
|
|
case 960:
|
|
case 961:
|
|
case 962:
|
|
case 963:
|
|
case 964:
|
|
case 965:
|
|
case 966:
|
|
case 967:
|
|
case 968:
|
|
case 969:// GreekLetters (unicode)
|
|
|
|
case 65: // 'A'
|
|
case 66: // 'B'
|
|
case 67: // 'C'
|
|
case 68: // 'D'
|
|
case 69: // 'E'
|
|
case 70: // 'F'
|
|
case 71: // 'G'
|
|
case 72: // 'H'
|
|
case 73: // 'I'
|
|
case 74: // 'J'
|
|
case 75: // 'K'
|
|
case 76: // 'L'
|
|
case 77: // 'M'
|
|
case 78: // 'N'
|
|
case 79: // 'O'
|
|
case 80: // 'P'
|
|
case 81: // 'Q'
|
|
case 82: // 'R'
|
|
case 83: // 'S'
|
|
case 84: // 'T'
|
|
case 85: // 'U'
|
|
case 86: // 'V'
|
|
case 87: // 'W'
|
|
case 88: // 'X'
|
|
case 89: // 'Y'
|
|
case 90: // 'Z'
|
|
case 91: // '['
|
|
case 92: // '\\'
|
|
case 93: // ']'
|
|
case 94: // '^'
|
|
case 95: // '_'
|
|
case 96: // '`'
|
|
case 97: // 'a'
|
|
case 98: // 'b'
|
|
case 101:// 'e'
|
|
case 102: // 'f'
|
|
case 103: // 'g'
|
|
case 104: // 'h'
|
|
case 105: // 'i'
|
|
case 106: // 'j'
|
|
case 107: // 'k'
|
|
case 111: // 'o'
|
|
case 112: // 'p'
|
|
case 114: // 'r'
|
|
default:
|
|
printStatus("Parser: unknown token: " + D.y + " " + D.w);
|
|
break;
|
|
}
|
|
if (flag) {
|
|
if (A) {
|
|
if (!c && i1 + c2._flddo <= _fldelse
|
|
&& _fldelse <= i1 + c2._flddo + c1._flddo
|
|
&& j1 - c1._fldif <= _fldchar
|
|
&& _fldchar <= j1 + c1.a) {
|
|
m = l = _fldelse;
|
|
a = R = _fldchar;
|
|
c = true;
|
|
p = l1;
|
|
o = l1;
|
|
}
|
|
if (!c && i1 + c2._flddo <= J
|
|
&& J <= i1 + c2._flddo + c1._flddo
|
|
&& j1 - c1._fldif <= I && I <= j1 + c1.a) {
|
|
m = l = J;
|
|
a = R = I;
|
|
c = true;
|
|
p = l1;
|
|
o = l1;
|
|
final int k2 = J;
|
|
final int l2 = I;
|
|
J = _fldelse;
|
|
I = _fldchar;
|
|
_fldelse = k2;
|
|
_fldchar = l2;
|
|
}
|
|
if (c) {
|
|
m = Math.min(m, i1 + c2._flddo);
|
|
l = Math.max(l, i1 + c2._flddo + c1._flddo);
|
|
a = Math.min(a, j1 - c1._fldif);
|
|
R = Math.max(R, j1 + c1.a);
|
|
if (F > k1) {
|
|
F = k1;
|
|
}
|
|
switch (j2) {
|
|
case 13: // '\r'
|
|
case 15: // '\017'
|
|
case 16: // '\020'
|
|
case 50: // '2'
|
|
case 123: // '{'
|
|
case 124: // '|'
|
|
flag5 = true;
|
|
if (i2 > o) {
|
|
o = i2;
|
|
}
|
|
if (i2 < p) {
|
|
p = i2;
|
|
}
|
|
l1 = S._mthif();
|
|
break;
|
|
}
|
|
if (l1 > o) {
|
|
o = l1;
|
|
}
|
|
if (l1 < p) {
|
|
p = l1;
|
|
}
|
|
if (i1 + c2._flddo <= J
|
|
&& J <= i1 + c2._flddo + c1._flddo
|
|
&& j1 - c1._fldif <= I && I <= j1 + c1.a
|
|
&& F == k1) {
|
|
A = false;
|
|
c = false;
|
|
}
|
|
}
|
|
}
|
|
if (flag5) {
|
|
m = Math.min(m, i1 + c2._flddo);
|
|
l = Math.max(l, i1 + c2._flddo + c1._flddo);
|
|
a = Math.min(a, j1 - c1._fldif);
|
|
R = Math.max(R, j1 + c1.a);
|
|
switch (j2) {
|
|
case 13: // '\r'
|
|
case 15: // '\017'
|
|
case 16: // '\020'
|
|
case 50: // '2'
|
|
case 123: // '{'
|
|
case 124: // '|'
|
|
if (i2 > o) {
|
|
o = i2;
|
|
}
|
|
if (i2 < p) {
|
|
p = i2;
|
|
}
|
|
l1 = S._mthif();
|
|
break;
|
|
}
|
|
if (l1 > o) {
|
|
o = l1;
|
|
}
|
|
if (l1 < p) {
|
|
p = l1;
|
|
}
|
|
flag5 = false;
|
|
}
|
|
}
|
|
c2._flddo += c1._flddo;
|
|
c2._fldif = Math.max(c2._fldif, c1._fldif);
|
|
c2.a = Math.max(c2.a, c1.a);
|
|
if (!flag1 && !flag4) {
|
|
flag2 = false;
|
|
}
|
|
}
|
|
return c2;
|
|
}
|
|
|
|
private c _mthbyte(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
c c1 = new c();
|
|
int l1 = 0;
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
final String s1 = D.w;
|
|
if (flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
c1 = _mthtry(i1, j1, false, g1, k1, false);
|
|
final int i2 = Math.max(c1._flddo, fontmetrics.stringWidth(s1));
|
|
final int j2 = c1._fldif + fontmetrics.getAscent() / 2;
|
|
final int k2 = c1.a;
|
|
if (flag) {
|
|
S.a(l1);
|
|
_mthtry(i1, j1, true, g1, k1, false);
|
|
final int l2 = 3 * ((i2 - fontmetrics.stringWidth(s1)) / 4);
|
|
if (s1.equals(".") | s1.equals("..")) {
|
|
g1.drawString(s1, i1 + l2, j1 - fontmetrics.getAscent());
|
|
} else if (s1.equals("\264") | s1.equals("`")) {
|
|
g1.drawString(s1, i1 + l2, j1 - fontmetrics.getAscent() / 3);
|
|
} else {
|
|
g1.drawString(s1, i1 + l2, j1 - (fontmetrics.getAscent() * 2)
|
|
/ 3);
|
|
}
|
|
}
|
|
return new c(i2, j2, k2);
|
|
}
|
|
|
|
private c a(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
new c();
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
final int k1 = g1.getFont().getSize() / 2;
|
|
final int l1 = fontmetrics.getHeight() - fontmetrics.getDescent();
|
|
final int i2 = fontmetrics.getDescent();
|
|
if (flag) {
|
|
final int j2 = (j1 - l1) + 1;
|
|
final int k2 = (j1 + i2) - 1;
|
|
final int l2 = (j2 + k2) / 2;
|
|
if (D.w.equals("<")) {
|
|
g1.drawLine(i1 + k1, j2, i1, l2);
|
|
g1.drawLine(i1, l2, i1 + k1, k2);
|
|
} else {
|
|
g1.drawLine(i1, j2, i1 + k1, l2);
|
|
g1.drawLine(i1 + k1, l2, i1, k2);
|
|
}
|
|
}
|
|
return new c(k1, l1, i2);
|
|
}
|
|
|
|
private c _mthif(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
int l2 = 0;
|
|
final int ai[] = new int[100];
|
|
final int ai1[] = new int[100];
|
|
final int ai2[] = new int[100];
|
|
new c();
|
|
int i3 = 0;
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
final int j3 = g1.getFont().getSize();
|
|
if (flag) {
|
|
i3 = S._mthif();
|
|
}
|
|
if (!a(3, "ARRAY: BeginSym")) {
|
|
return new c(0, 0, 0);
|
|
}
|
|
for (int k3 = 0; k3 < 99; k3++) {
|
|
int i2 = 0;
|
|
int k2 = 0;
|
|
for (int l3 = 0; l3 < 99; l3++) {
|
|
final c c2 = _mthnew(i1, j1, false, g1, k1);
|
|
i2 = Math.max(i2, c2._fldif);
|
|
k2 = Math.max(k2, c2.a);
|
|
ai[l3] = Math.max(ai[l3], c2._flddo + j3);
|
|
if (D.y == 8 || D.y == 4) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
ai1[k3] = Math.max(ai1[k3], i2);
|
|
ai2[k3] = Math.max(ai2[k3], k2);
|
|
l2 += i2 + k2;
|
|
if (D.y == 4) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
int i4 = 0;
|
|
for (int j4 = 0; j4 < 99; j4++) {
|
|
i4 += ai[j4];
|
|
}
|
|
|
|
if (flag) {
|
|
S.a(i3);
|
|
a(3, "ARRAY: Begin");
|
|
int j2 = 0;
|
|
for (int k4 = 0; k4 < 99; k4++) {
|
|
int l1 = 0;
|
|
if (k4 == 0) {
|
|
j2 = ai1[k4];
|
|
} else {
|
|
j2 += ai2[k4 - 1] + ai1[k4];
|
|
}
|
|
for (int l4 = 0; l4 < 99; l4++) {
|
|
_mthnew(i1 + l1, (j1 - l2 / 2 - fontmetrics.getDescent())
|
|
+ j2, true, g1, k1);
|
|
l1 += ai[l4];
|
|
if (D.y == 8 || D.y == 4) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (D.y == 4) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
return new c(i4 - j3, l2 / 2 + fontmetrics.getDescent(), l2 / 2
|
|
- fontmetrics.getDescent());
|
|
}
|
|
|
|
private c _mthgoto(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
int i2 = 0;
|
|
int j3 = 0;
|
|
final int ai[] = new int[100];
|
|
final int ai1[] = new int[100];
|
|
final int ai2[] = new int[100];
|
|
final int ai3[] = new int[100];
|
|
final int ai4[] = new int[100];
|
|
int k3 = 0;
|
|
int l3 = 0;
|
|
int i4 = 0;
|
|
new c();
|
|
int j4 = 0;
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
final int k5 = g1.getFont().getSize();
|
|
int l5 = 0;
|
|
boolean flag3 = false;
|
|
boolean flag4 = true;
|
|
boolean flag5 = true;
|
|
if (!a(3)) {
|
|
return new c(0, 0, 0);
|
|
}
|
|
if (S._mthint().w.equals("eqnarray")) {
|
|
flag5 = false;
|
|
}
|
|
if (!a(4, "BEGIN: EndSym")) {
|
|
return new c(0, 0, 0);
|
|
}
|
|
if (flag5) {
|
|
j4 = S._mthif();
|
|
if (!a(3)) {
|
|
flag4 = false;
|
|
S.a(j4);
|
|
}
|
|
}
|
|
if (flag5 && flag4) {
|
|
new e();
|
|
for (e e2 = S._mthint(); e2.y != 4; e2 = S._mthint()) {
|
|
final StringBuffer stringbuffer = new StringBuffer(e2.w);
|
|
for (int i7 = 0; i7 < stringbuffer.length(); i7++) {
|
|
switch (stringbuffer.charAt(i7)) {
|
|
case 108: // 'l'
|
|
ai3[l5] = 1;
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 99: // 'c'
|
|
ai3[l5] = 2;
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 114: // 'r'
|
|
ai3[l5] = 3;
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 64: // '@'
|
|
ai3[l5] = 4;
|
|
ai4[l5] = S._mthif();
|
|
final c c2 = _mthtry(i1, j1, false, g1, k1, false);
|
|
k3 += c2._flddo;
|
|
l3 = Math.max(l3, c2._fldif);
|
|
i4 = Math.max(i4, c2.a);
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 42: // '*'
|
|
a(3, "Begin *{");
|
|
int j6;
|
|
try {
|
|
j6 = Integer.parseInt(S._mthint().w);
|
|
} catch (final NumberFormatException numberformatexception) {
|
|
j6 = 0;
|
|
}
|
|
a(4, 3, "Begin }{");
|
|
final int l7 = S._mthif();
|
|
for (int j8 = 0; j8 < j6; j8++) {
|
|
S.a(l7);
|
|
for (e2 = S._mthint(); e2.y != 4; e2 = S._mthint()) {
|
|
final StringBuffer stringbuffer1 = new StringBuffer(
|
|
e2.w);
|
|
for (int l8 = 0; l8 < stringbuffer1.length(); l8++) {
|
|
switch (stringbuffer1.charAt(l8)) {
|
|
case 108: // 'l'
|
|
ai3[l5] = 1;
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 99: // 'c'
|
|
ai3[l5] = 2;
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 114: // 'r'
|
|
ai3[l5] = 3;
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
case 64: // '@'
|
|
ai3[l5] = 4;
|
|
ai4[l5] = S._mthif();
|
|
final c c3 = _mthtry(i1, j1, false, g1,
|
|
k1, false);
|
|
k3 += c3._flddo;
|
|
l3 = Math.max(l3, c3._fldif);
|
|
i4 = Math.max(i4, c3.a);
|
|
if (l5 < 99) {
|
|
l5++;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
printStatus("P: begin: illegal format 2");
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
printStatus("P: begin: illegal format 1");
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
if (!flag5) {
|
|
ai3[0] = 3;
|
|
ai3[1] = 2;
|
|
ai3[2] = 1;
|
|
l5 = 3;
|
|
}
|
|
for (int k6 = 0; k6 < l5 - 1; k6++) {
|
|
if (ai3[k6] != 4 && ai3[k6 + 1] != 4) {
|
|
i2 += k5 / 2;
|
|
}
|
|
}
|
|
|
|
if (flag) {
|
|
j4 = S._mthif();
|
|
}
|
|
for (int l6 = 0; l6 < 99; l6++) {
|
|
int j2 = 0;
|
|
int l2 = 0;
|
|
for (int j7 = 0; j7 < 99; j7++) {
|
|
final c c4 = _mthnew(i1, j1, false, g1, k1);
|
|
j2 = Math.max(j2, c4._fldif);
|
|
l2 = Math.max(l2, c4.a);
|
|
ai[j7] = Math.max(ai[j7], c4._flddo);
|
|
if (D.y == 8 || D.y == 51) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
j2 = Math.max(j2, l3);
|
|
l2 = Math.max(l2, i4);
|
|
ai1[l6] = j2;
|
|
ai2[l6] = l2;
|
|
j3 += j2 + l2;
|
|
if (D.y == 51) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
for (int i6 = 0; i6 < 99; i6++) {
|
|
i2 += ai[i6];
|
|
}
|
|
|
|
i2 += (2 * k5) / 2;
|
|
if (flag) {
|
|
S.a(j4);
|
|
int k2 = 0;
|
|
final int i3 = j3 / 2 + fontmetrics.getDescent();
|
|
for (int k7 = 0; k7 < 99; k7++) {
|
|
int l1 = k5 / 2;
|
|
if (k7 == 0) {
|
|
k2 = ai1[k7];
|
|
} else {
|
|
k2 += ai2[k7 - 1] + ai1[k7];
|
|
}
|
|
int i8 = 0;
|
|
for (int k8 = 0; k8 < 99; k8++) {
|
|
while (ai3[i8] == 4) {
|
|
final int k4 = S._mthif();
|
|
S.a(ai4[i8]);
|
|
final c c5 = _mthtry(i1 + l1, (j1 - i3) + k2, true, g1,
|
|
k1, false);
|
|
l1 += c5._flddo;
|
|
S.a(k4);
|
|
i8++;
|
|
}
|
|
switch (ai3[i8]) {
|
|
case 0: // '\0'
|
|
case 1: // '\001'
|
|
_mthnew(i1 + l1, (j1 - i3) + k2, true, g1, k1);
|
|
i8++;
|
|
break;
|
|
|
|
case 2: // '\002'
|
|
final int l4 = S._mthif();
|
|
c c7 = _mthnew(i1, j1, false, g1, k1);
|
|
S.a(l4);
|
|
c7 = _mthnew(i1 + l1 + (ai[k8] - c7._flddo) / 2,
|
|
(j1 - i3) + k2, true, g1, k1);
|
|
i8++;
|
|
break;
|
|
|
|
case 3: // '\003'
|
|
final int i5 = S._mthif();
|
|
c c8 = _mthnew(i1, j1, false, g1, k1);
|
|
S.a(i5);
|
|
c8 = _mthnew((i1 + l1 + ai[k8]) - c8._flddo, (j1 - i3)
|
|
+ k2, true, g1, k1);
|
|
i8++;
|
|
break;
|
|
}
|
|
if (ai3[i8] != 4) {
|
|
l1 += k5 / 2;
|
|
}
|
|
l1 += ai[k8];
|
|
boolean flag2 = false;
|
|
flag3 = false;
|
|
if (D.y == 8) {
|
|
flag2 = true;
|
|
} else if (D.y == 51) {
|
|
flag2 = true;
|
|
flag3 = true;
|
|
}
|
|
for (; ai3[i8] == 4; i8++) {
|
|
final int j5 = S._mthif();
|
|
S.a(ai4[i8]);
|
|
final c c9 = _mthtry(i1 + l1, (j1 - i3) + k2, true, g1,
|
|
k1, false);
|
|
l1 += c9._flddo;
|
|
S.a(j5);
|
|
}
|
|
|
|
if (flag2) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (flag3) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
if (!a(3, "BEGIN 2: begin")) {
|
|
return new c(0, 0, 0);
|
|
}
|
|
S._mthint();
|
|
if (!a(4, "BEGIN 2: end")) {
|
|
return new c(0, 0, 0);
|
|
} else {
|
|
return new c(i2 + k3, j3 / 2 + fontmetrics.getDescent(), j3 / 2
|
|
- fontmetrics.getDescent());
|
|
}
|
|
}
|
|
|
|
private c _mthelse(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
c c1 = new c();
|
|
final int l1 = g1.getFont().getSize() / 2;
|
|
c1 = _mthtry(i1 + l1, j1, flag, g1, k1, false);
|
|
if (flag) {
|
|
g1.drawRect(i1 + l1 / 2, j1 - c1._fldif - l1 / 2, c1._flddo + l1,
|
|
c1._fldif + c1.a + l1);
|
|
}
|
|
return new c(c1._flddo + l1 + l1, c1._fldif + l1, c1.a + l1);
|
|
}
|
|
|
|
private c _mthfor(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1, final boolean flag1) {
|
|
int l1 = 0;
|
|
new c();
|
|
c c3 = new c();
|
|
c c4 = new c();
|
|
int i2 = 0;
|
|
final Font font = g1.getFont();
|
|
font.getSize();
|
|
a(g1, k1 + 1);
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
if (flag) {
|
|
i2 = S._mthif();
|
|
}
|
|
c3 = _mthtry(i1, j1, false, g1, k1 + 1, false);
|
|
int k2 = c3._fldif + c3.a;
|
|
c4 = _mthtry(i1, j1, false, g1, k1 + 1, false);
|
|
int l2 = Math.max(c3._flddo, c4._flddo);
|
|
int i3 = c4._fldif + c4.a;
|
|
final Font font1 = g1.getFont();
|
|
final int j3 = (3 * font1.getSize()) / 18;
|
|
l2 += 2 * j3;
|
|
if (fontmetrics.getAscent() < i3) {
|
|
l1 = fontmetrics.getAscent() / 2;
|
|
}
|
|
k2 += 2 + l1;
|
|
i3 += 1 - l1;
|
|
if (flag) {
|
|
S.a(i2);
|
|
if (flag1) {
|
|
g1.drawLine(i1 + j3, j1 - l1, (i1 + l2) - j3, j1 - l1);
|
|
}
|
|
_mthtry(i1 + (l2 - c3._flddo) / 2, j1 - 2 - c3.a - l1, true, g1,
|
|
k1 + 1, false);
|
|
if (c && k1 < F) {
|
|
F = k1;
|
|
}
|
|
_mthtry(i1 + (l2 - c4._flddo) / 2, (j1 + 1 + c4._fldif) - l1, true,
|
|
g1, k1 + 1, false);
|
|
}
|
|
a(g1, k1);
|
|
return new c(l2, k2, i3);
|
|
}
|
|
|
|
private c _mthnew(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
if (flag) {
|
|
g1.drawString(D.w, i1, j1);
|
|
// System.out.println(g1.getFont());
|
|
// System.out.println("5: "+D.w);
|
|
}
|
|
final int k1 = fontmetrics.stringWidth(D.w);
|
|
final int l1 = fontmetrics.getHeight() - fontmetrics.getDescent();
|
|
final int i2 = fontmetrics.getDescent();
|
|
return new c(k1, l1, i2);
|
|
}
|
|
|
|
private void a(final Graphics2D g1, final int i1, final int j1, final int k1,
|
|
final int l1, final int i2) {
|
|
g1.drawArc(i1 - k1, j1 - k1, 2 * k1, 2 * k1, l1, i2);
|
|
}
|
|
|
|
private void a(final Graphics2D g1, final String s1, final int i1,
|
|
final int j1, final int k1, final int l1, final int i2, final int j2) {
|
|
final int k2 = j1 / 2;
|
|
final int l2 = i1 + k2;
|
|
final int i3 = i1 + j1;
|
|
final int j3 = i1 + k2 / 2;
|
|
final int k3 = l2 + k2 / 2;
|
|
final int l3 = (k1 + l1) / 2;
|
|
final int i4 = (int) ((double) k2 * 0.86602540378444004D);
|
|
final int j4 = k1 + i4;
|
|
final int k4 = l1 - i4;
|
|
if (s1.equals("[")) {
|
|
g1.drawLine(j3, k1, j3, l1);
|
|
g1.drawLine(j3, l1, k3, l1);
|
|
g1.drawLine(j3, k1, k3, k1);
|
|
} else if (s1.equals("]")) {
|
|
g1.drawLine(k3, k1, k3, l1);
|
|
g1.drawLine(j3, l1, k3, l1);
|
|
g1.drawLine(j3, k1, k3, k1);
|
|
} else if (s1.equals("|")) {
|
|
g1.drawLine(l2, k1, l2, l1);
|
|
} else if (s1.equals("||")) {
|
|
final int l4 = l2 + i2 / 4;
|
|
g1.drawLine(l2, k1, l2, l1);
|
|
g1.drawLine(l4, k1, l4, l1);
|
|
} else if (s1.equals("(")) {
|
|
for (int i5 = j2; i5 < 2 + j2; i5++) {
|
|
final int i6 = j3 + i5;
|
|
a(g1, k3 + i5, j4, k2, 180, -60);
|
|
g1.drawLine(i6, j4, i6, k4);
|
|
a(g1, k3 + i5, k4, k2, 180, 60);
|
|
}
|
|
|
|
} else if (s1.equals(")")) {
|
|
for (int j5 = j2; j5 < 2 + j2; j5++) {
|
|
final int j6 = k3 + j5;
|
|
a(g1, j3 + j5, j4, k2, 0, 60);
|
|
g1.drawLine(j6, j4, j6, k4);
|
|
a(g1, j3 + j5, k4, k2, 0, -60);
|
|
}
|
|
|
|
} else if (s1.equals("<")) {
|
|
g1.drawLine(j3, l3, k3, k1);
|
|
g1.drawLine(j3, l3, k3, l1);
|
|
} else if (s1.equals(">")) {
|
|
g1.drawLine(k3, l3, j3, k1);
|
|
g1.drawLine(k3, l3, j3, l1);
|
|
} else if (s1.equals("{")) {
|
|
for (int k5 = j2; k5 < 2 + j2; k5++) {
|
|
final int k6 = l2 + k5;
|
|
a(g1, i3 + k5, j4, k2, 180, -60);
|
|
g1.drawLine(k6, j4, k6, l3 - k2);
|
|
a(g1, i1 + k5, l3 - k2, k2, 0, -90);
|
|
a(g1, i1 + k5, l3 + k2, k2, 0, 90);
|
|
g1.drawLine(k6, l3 + k2, k6, k4);
|
|
a(g1, i3 + k5, k4, k2, 180, 60);
|
|
}
|
|
|
|
} else if (s1.equals("}")) {
|
|
for (int l5 = j2; l5 < 2 + j2; l5++) {
|
|
final int l6 = l2 + l5;
|
|
a(g1, i1 + l5, j4, k2, 0, 60);
|
|
g1.drawLine(l6, j4, l6, l3 - k2);
|
|
a(g1, i3 + l5, l3 - k2, k2, -180, 90);
|
|
a(g1, i3 + l5, l3 + k2, k2, 180, -90);
|
|
g1.drawLine(l6, l3 + k2, l6, k4);
|
|
a(g1, i1 + l5, k4, k2, 0, -60);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private c _mthnull(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
int l1 = 0;
|
|
int i2 = 0;
|
|
c c1 = new c();
|
|
int j2 = 0;
|
|
final Font font = g1.getFont();
|
|
final int k2 = font.getSize();
|
|
final int l2 = (int) (2.0F * (float) k2);
|
|
int i3 = k2 / 9;
|
|
if (flag) {
|
|
j2 = S._mthif();
|
|
}
|
|
final String s1 = S._mthint().w;
|
|
c1 = _mthnew(i1, j1, false, g1, k1);
|
|
final int j3 = c1._flddo;
|
|
int k3 = c1._fldif;
|
|
int l3 = c1.a;
|
|
final int i4 = (j1 - k3) + 1;
|
|
final int j4 = (j1 + l3) - 1;
|
|
final String s3 = S._mthint().w;
|
|
final int k4 = (k3 + l3) - 2;
|
|
final Font font1 = new Font(font.getFamily(), font.getStyle(), k4);
|
|
g1.setFont(font1);
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
if (s1.equals("<") || s1.equals(">")) {
|
|
l1 = k2;
|
|
} else if (k4 < l2) {
|
|
l1 = fontmetrics.stringWidth(s1);
|
|
if ("([{)]}".indexOf(s1) >= 0) {
|
|
l1 += i3;
|
|
}
|
|
} else {
|
|
l1 = k2;
|
|
}
|
|
if (s3.equals("<") || s3.equals(">")) {
|
|
i2 = k2;
|
|
} else if (k4 < l2) {
|
|
i2 = fontmetrics.stringWidth(s3);
|
|
if ("([{)]}".indexOf(s3) >= 0) {
|
|
i2 += i3;
|
|
}
|
|
} else {
|
|
i2 = k2;
|
|
}
|
|
g1.setFont(font);
|
|
final int l4 = S._mthif();
|
|
int j5 = 0;
|
|
int k5 = 0;
|
|
if (S._mthint().y == 11) {
|
|
final c c2 = _mthdo(i1, j1, false, g1, k1, false);
|
|
j5 = c2._flddo;
|
|
k5 = (j4 + c2._fldif) - (c2._fldif + c2.a) / 2;
|
|
l3 += (c2._fldif + c2.a) / 2;
|
|
} else {
|
|
S.a(l4);
|
|
}
|
|
final int l5 = S._mthif();
|
|
int j6 = 0;
|
|
int k6 = 0;
|
|
if (S._mthint().y == 10) {
|
|
final c c3 = _mthint(i1, j1, false, g1, k1, false);
|
|
j6 = c3._flddo;
|
|
k6 = (i4 + c3._fldif) - (c3._fldif + c3.a) / 2;
|
|
k3 += (c3._fldif + c3.a) / 2;
|
|
} else {
|
|
S.a(l5);
|
|
}
|
|
j5 = Math.max(j5, j6);
|
|
if (flag) {
|
|
S.a(j2);
|
|
final String s2 = S._mthint().w;
|
|
if (!s2.equals(".")) {
|
|
if (k4 < l2 && !s2.equals("<") && !s2.equals(">")) {
|
|
g1.setFont(font1);
|
|
g1.drawString(s2, i1, j4 - fontmetrics.getDescent()
|
|
- fontmetrics.getLeading() / 2);
|
|
g1.setFont(font);
|
|
} else {
|
|
a(g1, s2, i1, l1, i4, j4, k2, 0);
|
|
}
|
|
}
|
|
_mthnew(i1 + l1, j1, true, g1, k1);
|
|
final String s4 = S._mthint().w;
|
|
if (!s4.equals(".")) {
|
|
if (k4 < l2 && !s4.equals("<") && !s4.equals(">")) {
|
|
g1.setFont(font1);
|
|
if ("([{)]}".indexOf(s4) < 0) {
|
|
i3 = 0;
|
|
}
|
|
g1.drawString(s4, i1 + j3 + l1 + i3, j4
|
|
- fontmetrics.getDescent()
|
|
- fontmetrics.getLeading() / 2);
|
|
// System.out.println("2: "+s4);
|
|
g1.setFont(font);
|
|
} else {
|
|
a(g1, s4, i1 + j3 + l1, i2, i4, j4, -k2, -1);
|
|
}
|
|
}
|
|
final int i5 = S._mthif();
|
|
if (a(11)) {
|
|
_mthdo(i1 + j3 + l1 + i2, k5, true, g1, k1, false);
|
|
} else {
|
|
S.a(i5);
|
|
}
|
|
final int i6 = S._mthif();
|
|
if (a(10)) {
|
|
_mthint(i1 + j3 + l1 + i2, k6, true, g1, k1, false);
|
|
} else {
|
|
S.a(i6);
|
|
}
|
|
}
|
|
return new c(j3 + l1 + i2 + j5, k3 + 2, l3 + 2);
|
|
}
|
|
|
|
private c _mthfor(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
int l1 = 0;
|
|
new c();
|
|
int i2 = 0;
|
|
int j2 = 0;
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
final String s1 = D.w;
|
|
final int k2 = S._mthif();
|
|
final int l2 = l1 = fontmetrics.stringWidth(s1);
|
|
final int i3 = fontmetrics.getHeight() - fontmetrics.getDescent();
|
|
int j3 = fontmetrics.getDescent();
|
|
if (a(11)) {
|
|
final c c2 = _mthdo(i1, j1, false, g1, k1, false);
|
|
i2 = c2._flddo;
|
|
l1 = Math.max(l1, c2._flddo);
|
|
j2 = c2._fldif;
|
|
j3 = c2._fldif + c2.a;
|
|
} else {
|
|
S.a(k2);
|
|
}
|
|
if (flag) {
|
|
S.a(k2);
|
|
g1.drawString(s1, i1 + (l1 - l2) / 2, j1);
|
|
if (a(11)) {
|
|
_mthdo(i1 + (l1 - i2) / 2, j1 + j2, true, g1, k1, false);
|
|
} else {
|
|
S.a(k2);
|
|
}
|
|
}
|
|
return new c(l1, i3, j3);
|
|
}
|
|
|
|
private c _mthdo(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
int k1 = 0;
|
|
int l1 = 0;
|
|
int i2 = 0;
|
|
new c();
|
|
if (!a(3)) {
|
|
return new c(0, 0, 0);
|
|
}
|
|
while (!S._mthnew()) {
|
|
D = S._mthint();
|
|
if (D.y == 4) {
|
|
break;
|
|
}
|
|
final c c2 = _mthif(i1 + k1, j1, flag, g1);
|
|
k1 += c2._flddo;
|
|
l1 = Math.max(l1, c2._fldif);
|
|
i2 = Math.max(i2, c2.a);
|
|
}
|
|
return new c(k1, l1, i2);
|
|
}
|
|
|
|
private c _mthtry(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
c c1 = new c();
|
|
c1 = _mthtry(i1, j1, flag, g1, k1, false);
|
|
if (flag) {
|
|
g1.drawLine(i1 + c1._flddo / 4, j1 + c1.a,
|
|
i1 + (c1._flddo * 3) / 4, j1 - c1._fldif);
|
|
}
|
|
return c1;
|
|
}
|
|
|
|
private c _mthint(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
if (flag) {
|
|
g1.drawString(D.w, i1 + 1, j1);
|
|
// System.out.println("3: "+D.w);
|
|
}
|
|
return new c(fontmetrics.stringWidth(D.w) + 2, fontmetrics.getHeight()
|
|
- fontmetrics.getDescent(), fontmetrics.getDescent());
|
|
}
|
|
|
|
private c a(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
int l1 = 0;
|
|
c c1 = new c();
|
|
final int i2 = g1.getFont().getSize() / 4;
|
|
final int j2 = i2 / 2;
|
|
int k2 = 0;
|
|
int l2 = 0;
|
|
int i3 = 0;
|
|
if (flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
c1 = _mthtry(i1, j1, false, g1, k1, false);
|
|
int j3 = c1._flddo;
|
|
final int k3 = j3 / 2;
|
|
int l3 = k3;
|
|
int i4 = c1._fldif;
|
|
final int j4 = c1.a;
|
|
final int k4 = S._mthif();
|
|
if (a(10)) {
|
|
final c c2 = _mthint(i1, j1, false, g1, k1, false);
|
|
k2 = c2._flddo;
|
|
l3 = Math.max(l3, k2 / 2);
|
|
l2 = i4 + c2.a;
|
|
i3 = c2._fldif + c2.a;
|
|
} else {
|
|
S.a(k4);
|
|
}
|
|
if (flag) {
|
|
S.a(l1);
|
|
final int i5 = (i1 + l3) - k3;
|
|
_mthtry(i5, j1, true, g1, k1, false);
|
|
final int j5 = (int) ((double) i2 * 0.86602540378444004D);
|
|
for (int k5 = 0; k5 < 2; k5++) {
|
|
final int l5 = (j1 - i4 - j2) + k5;
|
|
a(g1, i5 + j5, l5 + i2, i2, 90, 60);
|
|
g1.drawLine(i5 + j5, l5, (i5 + k3) - i2, l5);
|
|
a(g1, (i5 + k3) - i2, l5 - i2, i2, 0, -90);
|
|
a(g1, i5 + k3 + i2, l5 - i2, i2, -90, -90);
|
|
g1.drawLine(i5 + k3 + i2, l5, (i5 + j3) - j5, l5);
|
|
a(g1, (i5 + j3) - j5, l5 + i2, i2, 90, -60);
|
|
}
|
|
|
|
final int l4 = S._mthif();
|
|
if (a(10)) {
|
|
_mthint((i1 + l3) - k2 / 2, j1 - l2 - i2 - j2, true, g1, k1,
|
|
false);
|
|
} else {
|
|
S.a(l4);
|
|
}
|
|
}
|
|
i4 += i3 + i2 + j2;
|
|
j3 = Math.max(j3, k2);
|
|
return new c(j3, i4, j4);
|
|
}
|
|
|
|
private c _mthlong(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
int l1 = 0;
|
|
c c1 = new c();
|
|
final int i2 = g1.getFont().getSize() / 4;
|
|
final int j2 = i2 / 2;
|
|
int k2 = 0;
|
|
int l2 = 0;
|
|
int i3 = 0;
|
|
if (flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
c1 = _mthtry(i1, j1, false, g1, k1, false);
|
|
int j3 = c1._flddo;
|
|
final int k3 = j3 / 2;
|
|
int l3 = k3;
|
|
final int i4 = c1._fldif;
|
|
int j4 = c1.a;
|
|
final int k4 = S._mthif();
|
|
if (a(11)) {
|
|
final c c2 = _mthdo(i1, j1, false, g1, k1, false);
|
|
k2 = c2._flddo;
|
|
l3 = Math.max(l3, k2 / 2);
|
|
l2 = j4 + c2._fldif;
|
|
i3 = c2._fldif + c2.a;
|
|
} else {
|
|
S.a(k4);
|
|
}
|
|
if (flag) {
|
|
S.a(l1);
|
|
final int i5 = (i1 + l3) - k3;
|
|
_mthtry(i5, j1, true, g1, k1, false);
|
|
final int j5 = (int) ((double) i2 * 0.86602540378444004D);
|
|
for (int k5 = 0; k5 < 2; k5++) {
|
|
final int l5 = (j1 + j4 + j2) - k5;
|
|
a(g1, i5 + j5, l5 - i2, i2, -90, -60);
|
|
g1.drawLine(i5 + j5, l5, (i5 + k3) - i2, l5);
|
|
a(g1, (i5 + k3) - i2, l5 + i2, i2, 90, -90);
|
|
a(g1, i5 + k3 + i2, l5 + i2, i2, 90, 90);
|
|
g1.drawLine(i5 + k3 + i2, l5, (i5 + j3) - j5, l5);
|
|
a(g1, (i5 + j3) - j5, l5 - i2, i2, -90, 60);
|
|
}
|
|
|
|
final int l4 = S._mthif();
|
|
if (S._mthint().y == 11) {
|
|
_mthdo((i1 + l3) - k2 / 2, j1 + l2 + i2 + j2, true, g1, k1,
|
|
false);
|
|
} else {
|
|
S.a(l4);
|
|
}
|
|
}
|
|
j4 += i3 + i2 + j2;
|
|
j3 = Math.max(j3, k2);
|
|
return new c(j3, i4, j4);
|
|
}
|
|
|
|
private c a(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1, final boolean flag1) {
|
|
int l1 = 0;
|
|
c c1 = new c();
|
|
if (flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
c1 = _mthtry(i1, j1, false, g1, k1, false);
|
|
if (flag1) {
|
|
c1._fldif += 2;
|
|
} else {
|
|
c1.a += 2;
|
|
}
|
|
final int i2 = c1._fldif;
|
|
final int j2 = c1.a;
|
|
if (flag) {
|
|
S.a(l1);
|
|
if (flag1) {
|
|
g1.drawLine(i1 + 1, (j1 - i2) + 2, (i1 + c1._flddo) - 1,
|
|
(j1 - i2) + 2);
|
|
} else {
|
|
g1.drawLine(i1, (j1 + j2) - 2, i1 + c1._flddo, (j1 + j2) - 2);
|
|
}
|
|
c1 = _mthtry(i1, j1, true, g1, k1, false);
|
|
}
|
|
return new c(c1._flddo, i2, j2);
|
|
}
|
|
|
|
private c _mthtry(int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
final int k1 = g1.getFont().getSize() / 9;
|
|
int l1 = fontmetrics.stringWidth(D.w);
|
|
final int i2 = "([{)]}".indexOf(D.w);
|
|
if (i2 >= 0) {
|
|
l1 += k1;
|
|
if (i2 > 2) {
|
|
i1 += k1;
|
|
}
|
|
}
|
|
if (flag) {
|
|
g1.drawString(D.w, i1, j1);
|
|
// System.out.println("2: "+D.w);
|
|
}
|
|
return new c(l1, fontmetrics.getHeight() - fontmetrics.getDescent(),
|
|
fontmetrics.getDescent());
|
|
}
|
|
|
|
private c _mthif(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
if (flag) {
|
|
g1.drawString(D.w, i1, j1);
|
|
// System.out.println(g1.getFont());
|
|
// System.out.println("1: "+D.w);
|
|
}
|
|
return new c(fontmetrics.stringWidth(D.w), fontmetrics.getHeight()
|
|
- fontmetrics.getDescent(), fontmetrics.getDescent());
|
|
}
|
|
|
|
private c _mthfor(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1) {
|
|
int k1 = 0;
|
|
final Font font = g1.getFont();
|
|
try {
|
|
k1 = Integer.parseInt(D.w);
|
|
} catch (final NumberFormatException numberformatexception) {
|
|
k1 = 0;
|
|
}
|
|
k1 = (k1 * font.getSize()) / 18;
|
|
return new c(k1, 0, 0);
|
|
}
|
|
|
|
private c _mthcase(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
c c1 = new c();
|
|
int l1 = 0;
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
int i2 = 0;
|
|
int k2 = 0;
|
|
int l2 = 0;
|
|
boolean flag2 = false;
|
|
if (flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
final int i3 = fontmetrics.stringWidth("A");
|
|
final int j3 = i3 / 2;
|
|
final int k3 = S._mthif();
|
|
e e1 = new e();
|
|
e1 = S._mthint();
|
|
if (e1.w.equals("[")) {
|
|
a(g1, k1 + 1);
|
|
c1 = _mthtry(i1, j1, false, g1, k1 + 1, true);
|
|
a(g1, k1);
|
|
i2 = c1._flddo;
|
|
final int j2 = c1._fldif;
|
|
k2 = c1.a;
|
|
l2 = k2 + j2;
|
|
flag2 = true;
|
|
} else {
|
|
S.a(k3);
|
|
}
|
|
c1 = _mthtry(i1, j1, false, g1, k1, false);
|
|
int l3 = c1._flddo + i3;
|
|
int i4 = c1._fldif + 2;
|
|
final int j4 = c1.a;
|
|
if (flag2 & (i2 > j3)) {
|
|
l3 += i2 - j3;
|
|
}
|
|
if (flag) {
|
|
S.a(l1);
|
|
int k4 = 0;
|
|
if (flag2 & (i2 > j3)) {
|
|
k4 = i2 - j3;
|
|
}
|
|
g1.drawLine(i1 + k4 + 1, j1 - i4 / 2, i1 + k4 + j3, (j1 + j4) - 1);
|
|
g1.drawLine(i1 + k4 + j3, (j1 + j4) - 1, (i1 + k4 + i3) - 2,
|
|
(j1 - i4) + 2);
|
|
g1.drawLine((i1 + k4 + i3) - 2, (j1 - i4) + 2, i1 + l3,
|
|
(j1 - i4) + 2);
|
|
if (flag2) {
|
|
S._mthint();
|
|
a(g1, k1 + 1);
|
|
if (i2 >= j3) {
|
|
g1.drawLine(i1 + 1, j1 - i4 / 2, i1 + k4 + 1, j1 - i4 / 2);
|
|
_mthtry(i1 + 1, j1 - i4 / 2 - k2 - 1, true, g1, k1 + 1,
|
|
true);
|
|
} else {
|
|
_mthtry(i1 + 1 + (j3 - i2), j1 - i4 / 2 - k2 - 1, true, g1,
|
|
k1 + 1, true);
|
|
}
|
|
a(g1, k1);
|
|
}
|
|
_mthtry(i1 + k4 + i3, j1, true, g1, k1, false);
|
|
}
|
|
if (flag2 & (i4 / 2 < l2)) {
|
|
i4 = i4 / 2 + l2;
|
|
}
|
|
return new c(l3, i4, j4);
|
|
}
|
|
|
|
private c _mthchar(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
c c1 = new c();
|
|
int l1 = 0;
|
|
final int i2 = g1.getFontMetrics().getLeading();
|
|
if (flag) {
|
|
l1 = S._mthif();
|
|
}
|
|
c1 = _mthint(i1, j1, false, g1, k1, true);
|
|
int j2 = c1._flddo;
|
|
final int k2 = c1._flddo;
|
|
int l2 = (c1._fldif + c1.a) - i2;
|
|
int i3 = c1.a - i2;
|
|
c1 = _mthtry(i1, j1, false, g1, k1, false);
|
|
j2 = Math.max(j2, c1._flddo);
|
|
final int j3 = j2 / 2;
|
|
final int k3 = c1._flddo;
|
|
l2 += c1._fldif;
|
|
final int l3 = c1.a;
|
|
i3 += c1._fldif;
|
|
if (flag) {
|
|
S.a(l1);
|
|
_mthint((i1 + j3) - k2 / 2, j1 - i3, true, g1, k1, false);
|
|
_mthtry((i1 + j3) - k3 / 2, j1, true, g1, k1, false);
|
|
}
|
|
return new c(j2, l2, l3);
|
|
}
|
|
|
|
private c _mthdo(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1, final boolean flag1) {
|
|
int l1 = 0;
|
|
int i2 = 0;
|
|
c c1 = new c();
|
|
int j2 = 0;
|
|
final int l2 = g1.getFontMetrics().getAscent() / 2;
|
|
if (flag) {
|
|
j2 = S._mthif();
|
|
}
|
|
a(g1, k1 + 1);
|
|
c1 = _mthtry(i1, j1, false, g1, k1 + 1, false);
|
|
int i3 = c1._flddo;
|
|
if (flag1) {
|
|
l1 = l2 - 1;
|
|
i2 = (c1._fldif + c1.a) - l1;
|
|
} else {
|
|
i2 = c1._fldif + c1.a;
|
|
}
|
|
if (flag) {
|
|
S.a(j2);
|
|
if (flag1) {
|
|
c1 = _mthtry(i1, (j1 + c1._fldif) - l1, true, g1, k1 + 1, false);
|
|
} else {
|
|
c1 = _mthtry(i1, j1 + c1._fldif, true, g1, k1 + 1, false);
|
|
}
|
|
}
|
|
a(g1, k1);
|
|
if (flag1) {
|
|
final int k2 = S._mthif();
|
|
if (a(10)) {
|
|
final c c2 = _mthint(i1, j1, flag, g1, k1, true);
|
|
i3 = Math.max(i3, c2._flddo);
|
|
l1 = Math.max(l1, c2._fldif);
|
|
} else {
|
|
S.a(k2);
|
|
}
|
|
}
|
|
return new c(i3, l1, i2);
|
|
}
|
|
|
|
private c _mthint(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1, final boolean flag1) {
|
|
int l1 = 0;
|
|
int i2 = 0;
|
|
c c1 = new c();
|
|
int j2 = 0;
|
|
final int l2 = g1.getFontMetrics().getAscent() / 2;
|
|
if (flag) {
|
|
j2 = S._mthif();
|
|
}
|
|
a(g1, k1 + 1);
|
|
c1 = _mthtry(i1, j1, false, g1, k1 + 1, false);
|
|
int i3 = c1._flddo;
|
|
if (flag1) {
|
|
i2 = -l2 - 1;
|
|
l1 = (c1._fldif + c1.a) - i2;
|
|
} else {
|
|
l1 = c1._fldif + c1.a;
|
|
}
|
|
if (flag) {
|
|
S.a(j2);
|
|
if (flag1) {
|
|
c1 = _mthtry(i1, (j1 - c1.a) + i2, true, g1, k1 + 1, false);
|
|
} else {
|
|
c1 = _mthtry(i1, j1 - c1.a, true, g1, k1 + 1, false);
|
|
}
|
|
}
|
|
a(g1, k1);
|
|
if (flag1) {
|
|
final int k2 = S._mthif();
|
|
if (a(11)) {
|
|
final c c2 = _mthdo(i1, j1, flag, g1, k1, true);
|
|
i3 = Math.max(i3, c2._flddo);
|
|
i2 = Math.max(i2, c2.a);
|
|
} else {
|
|
S.a(k2);
|
|
}
|
|
}
|
|
return new c(i3, l1, i2);
|
|
}
|
|
|
|
private Image _mthif(final Graphics2D g1, final int i1) {
|
|
final String s1 = D.w + j[i1 - 1] + g1.getColor().getRGB();
|
|
if (!w.containsKey(s1)) {
|
|
final String s2 = "Fonts/Greek" + j[i1 - 1] + "/" + D.w + ".gif";
|
|
final Image image = _flddo.a(s2, g1);
|
|
final int j1 = S._mthif();
|
|
B.addImage(image, j1);
|
|
a("Loading " + D.w);
|
|
try {
|
|
B.waitForID(j1, 10000L);
|
|
} catch (final InterruptedException interruptedexception) {
|
|
}
|
|
if (B.isErrorID(j1)) {
|
|
a("Error loading " + D.w);
|
|
} else {
|
|
w.put(s1, image);
|
|
}
|
|
return image;
|
|
} else {
|
|
return (Image) w.get(s1);
|
|
}
|
|
}
|
|
|
|
private c _mthif(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, int k1, final boolean flag1) {
|
|
final FontMetrics fontmetrics = g1.getFontMetrics();
|
|
k1 = Math.min(k1, j.length);
|
|
final Image image = _mthif(g1, k1);
|
|
int l1 = image.getWidth(PC);
|
|
if (l1 < 0) {
|
|
l1 = fontmetrics.getMaxAdvance();
|
|
}
|
|
if (flag) {
|
|
int i2 = 0;
|
|
if (flag1) {
|
|
i2 = _fldfor[k1 - 1];
|
|
}
|
|
g1.drawImage(image, i1, (j1 - image.getHeight(PC)) + i2, PC);
|
|
}
|
|
return new c(l1, fontmetrics.getHeight() - fontmetrics.getDescent(),
|
|
fontmetrics.getDescent());
|
|
}
|
|
|
|
private c _mthdo(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, int k1) {
|
|
int l1 = 0;
|
|
new c();
|
|
int i2 = 0;
|
|
int j2 = 0;
|
|
int k2 = 0;
|
|
int l2 = 0;
|
|
int i3 = 0;
|
|
final int j3 = g1.getFontMetrics().getAscent();
|
|
k1 = Math.min(k1, j.length);
|
|
final Image image = _mthif(g1, k1);
|
|
int k3 = l1 = image.getWidth(PC);
|
|
int l3 = image.getHeight(PC);
|
|
if (l3 < 0) {
|
|
l3 = 2 * j3;
|
|
k3 = l1 = j3;
|
|
}
|
|
int i4 = (int) ((double) (l3 / 2) - 0.40000000000000002D * (double) j3);
|
|
int j4 = i3 = l3 - i4;
|
|
final int k4 = S._mthif();
|
|
if (a(11)) {
|
|
final c c2 = _mthdo(i1, j1, false, g1, k1, false);
|
|
k2 = c2._flddo;
|
|
l1 = Math.max(l1, c2._flddo);
|
|
i2 = i4 + c2._fldif;
|
|
i4 += c2._fldif + c2.a;
|
|
} else {
|
|
S.a(k4);
|
|
}
|
|
final int l4 = S._mthif();
|
|
if (a(10)) {
|
|
final c c3 = _mthint(i1, j1, false, g1, k1, false);
|
|
l2 = c3._flddo;
|
|
l1 = Math.max(l1, c3._flddo);
|
|
j2 = j4 + c3.a;
|
|
j4 += c3._fldif + c3.a;
|
|
} else {
|
|
S.a(l4);
|
|
}
|
|
if (flag) {
|
|
S.a(k4);
|
|
g1.drawImage(image, i1 + (l1 - k3) / 2, j1 - i3, PC);
|
|
if (a(11)) {
|
|
_mthdo(i1 + (l1 - k2) / 2, j1 + i2, true, g1, k1, false);
|
|
} else {
|
|
S.a(k4);
|
|
}
|
|
final int i5 = S._mthif();
|
|
if (a(10)) {
|
|
_mthint(i1 + (l1 - l2) / 2, j1 - j2, true, g1, k1, false);
|
|
} else {
|
|
S.a(i5);
|
|
}
|
|
}
|
|
return new c(l1, j4, i4);
|
|
}
|
|
|
|
private c _mthint(final int i1, final int j1, final boolean flag,
|
|
final Graphics2D g1, final int k1) {
|
|
c c1 = new c();
|
|
final int l1 = g1.getFont().getSize();
|
|
final String s1 = D.w;
|
|
c1 = _mthtry(i1, j1, flag, g1, k1, false);
|
|
final int i2 = c1._flddo;
|
|
final int j2 = i2 / 2;
|
|
final int k2 = l1 / 4;
|
|
final int l2 = c1._fldif + k2;
|
|
final int i3 = c1.a;
|
|
if (flag) {
|
|
final int j3 = (j1 - l2) + k2;
|
|
final int k3 = l1 / 8;
|
|
final int l3 = i1 + i2;
|
|
final int i4 = i1 + j2;
|
|
if (s1.equals("")) {
|
|
g1.drawLine(i1, j3, l3, j3);
|
|
g1.drawLine(i1 + (int) ((double) i2 * 0.80000000000000004D), j3
|
|
- k3, l3, j3);
|
|
g1.drawLine(i1 + (int) ((double) i2 * 0.80000000000000004D), j3
|
|
+ k3, l3, j3);
|
|
} else if (s1.equals("bar")) {
|
|
g1.drawLine(i1, j3, l3, j3);
|
|
} else if (s1.equals("widehat")) {
|
|
g1.drawLine(i1, j3, i4, j3 - k2);
|
|
g1.drawLine(i4, j3 - k2, l3, j3);
|
|
} else if (s1.equals("widetilde")) {
|
|
int k4 = 0;
|
|
for (int l4 = 1; l4 < j2; l4++) {
|
|
final int j4 = k4;
|
|
k4 = (int) ((double) k3 * Math
|
|
.sin((4.0840704496667311D * (double) l4)
|
|
/ (double) j2));
|
|
g1.drawLine((i4 + l4) - 1, j3 + j4, i4 + l4, j3 + k4);
|
|
g1.drawLine((i4 - l4) + 1, j3 - j4, i4 - l4, j3 - k4);
|
|
}
|
|
|
|
}
|
|
}
|
|
return new c(i2, l2 + 2, i3);
|
|
}
|
|
|
|
private boolean a(final int i1) {
|
|
return a(i1, "");
|
|
}
|
|
|
|
private boolean a(final int i1, final String s1) {
|
|
int j1;
|
|
while ((j1 = S._mthint().y) == 25) {
|
|
}
|
|
if (j1 == i1) {
|
|
return true;
|
|
}
|
|
if (!s1.equals("")) {
|
|
printStatus("Parser: " + s1 + " not found");
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private boolean a(final int i1, final int j1, final String s1) {
|
|
int k1;
|
|
while ((k1 = S._mthint().y) == 25) {
|
|
}
|
|
boolean flag = k1 == i1;
|
|
while ((k1 = S._mthint().y) == 25) {
|
|
}
|
|
flag = k1 == j1;
|
|
if (!flag && !s1.equals("")) {
|
|
printStatus("Parser: " + s1 + " not found");
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
private void a(final Graphics2D g1, final int i1) {
|
|
if (i1 <= 1) {
|
|
g1.setFont(d);
|
|
} else if (i1 == 2) {
|
|
g1.setFont(b);
|
|
} else if (i1 == 3) {
|
|
g1.setFont(_fldnull);
|
|
} else {
|
|
g1.setFont(_fldlong);
|
|
}
|
|
}
|
|
|
|
}
|