AMADEUS html plain
This sketchy text is generated by AMADEUS
import java.util.*;
import java.awt.*;
import java.io.*;
class BaseLanguageXML
class BaseLanguageXML extends BaseLanguage
static AmFrame frame;
raam, millele dialoogiaken
static AmCanvas c;
konstruktor
BaseLanguageXML()
public boolean parse(SketchyText skt0,
main = source
SketchyText skt1,
main = new
AmFrame dialogTargetFrame)
BaseLanguage.Teade_teostamata(dialogTargetFrame);
<======false
sketchify
public boolean sketchify(SketchyText skt0,
main = source
SketchyText skt1,
main = new
AmFrame dialogTargetFrame)
proloogis
boolean onProloog = false;
Symbol syx = null;
x, mis asendatakse ajutiselt z-ga
syx dubleerib tunnust onProloog
Sketch s0 = skt0.main;
Branch b0 = s0.branch(0);
PrimitiveMember p = null;
? b0.body.size() > 0
p = (PrimitiveMember)(b0.member(0));
String rida1 = p.text.toString();
onProloog = true;
syx = (Symbol)(p.text.row(0).elements.elementAt(3));
p.text.row(0).remove(3);
p.text.row(0).insert(
new Symbol('z', Default.foregroundColor), 3);
skt0 viia välja liht-tekstifailina (skt0 ==> fnimi0)
String fnimi0 = Default.tempSketchifyXmlSource;
skt0.file = new AmFile(skt0);
skt0.file.name = fnimi0;
skt0.file.writeTextFile(fnimi0);
panna lähteteksis x tagasi
? onProloog
p.text.row(0).remove(3);
p.text.row(0).insert(syx, 3);
skeemistada (jdom) fnimi0 ==> fnimi1 (pannakse ka DTD kohamärk)
String fnimi1 = Default.tempSketchifyXmlSketchified;
Xml2Sketch.inName = fnimi0;
Xml2Sketch.outName = fnimi1;
Xml2Sketch.xml2sketch();
importida fnimi1 (skt1 <== fnimi1)
frame = dialogTargetFrame;
skt1.file = new AmFile(skt1);
skt1.file.name = fnimi1;
skt1.frame = dialogTargetFrame;
skt1.frame.contents = skt1;
skt1.file.importsFile();
lisada DTD: primitiivi DTDkohamärk asemele
Branch b = skt1.main.branch(0);
* int i = 0; i < b.body.size(); i++
Object o = b.member(i);
? !(o instanceof Primitive)
<------
p = (PrimitiveMember)o;
? p.text.toString().equals(Xml2Sketch.DTDkohamärk)
b.removeMember(i);
eemaldada kohamärk
teha ja panna selle asemele DTD moodulskeem
Sketch dtdModule = null;
kompil.
!!
dtdModule = DTD.getDTDModule(fnimi0);
! (FileNotFoundException e)
System.out.println("FNF");//e.getMessage());
System.exit(0);
! (IOException e)
System.out.println("IO");//e.getMessage());
System.exit(0);
! (ParseException e)
System.out.println("PARSE");//e.getMessage());
System.exit(0);
? dtdModule != null
b.insert(dtdModule, i);
kui keha tühi, lisada haru
? dtdModule.body.size() == 0
dtdModule.insert(
new Branch(Scheme.SIMPLE,
new BaseLanguageXML()), 0);
<======
proloogis zml ==> xml
? onProloog
s0 = skt1.main;
b0 = s0.branch(0);
p = null;
? b0.body.size() > 0
Object o = b0.member(0);
? o instanceof PrimitiveMember
p = (PrimitiveMember)(o);
String rida1 = p.text.toString();
? rida1.startsWith("zml") &&
(p.type == Primitive.CONDITION)
p.text.row(0).remove(1);
p.text.row(0).insert(
new Symbol('x', Default.conditionColor), 1);
<======true
normalize
public boolean normalize(SketchyText skt0, SketchyText skt1,
AmFrame f)
System.out.println("BaseLangXML!!!!");
<======false
REDUCE
* static
skeemi ja haru päisest saadavad (<== checkHead()):
üldskeemi atribuudid
byte gotType;
skeemi tüüp
BaseLanguage gotBaseLanguage;
baaskeel
byte gotViewType;
vaade
boolean gotIcon;
ikoniseerituse tunnus
segmendi atribuudid
String gotFace;
int gotSize;
int gotStyle;
int gotColorR;
int gotColorG;
int gotColorB;
PICTURE attribuudid:
String gotSrc;
int gotAlign;
gotIcon on juba ülevalpool
String comment;
Row row;
Vector heads;
Vector branches;
void reduce(Sketch s)
//redutseeritakse ainult normaliseeritut
<==========
static void reduceRek(Sketch s)
skeemi algus, kui on s normaliseeritud
getAttributes(s);
eemaldab ka olnud päised
s.type = gotType;
s.view = View.newView(gotViewType, s);
s.baseLanguage = gotBaseLanguage;
s.icon = gotIcon;
s.comment = new Row("", Default.commentColor);
Branch br = s.branch(0);
int n = br.body.size();
* int i = 0; i < n; i++
töödeldaSkeemiLiige(s, (Sketch)(br.member(0)));
s.removeMember(0);
private static void getAttributes(Scheme s)
gotType = 0;
gotBaseLanguage = BaseLanguage.newBaseLanguage((byte)0);
gotViewType = 0;
gotIcon = false;
int n = s.head.size();
* int i = 0; i < n ; i++
PrimitiveHead he = s.primitiveHead(0);
String r = he.text.toString();
? r.indexOf("type=\"") == 0
gotType = (byte)(r.charAt(6) - '0');
<======
? r.indexOf("base=\"") == 0
//byte b = (byte)(r.charAt(6) - '0');
int k = r.lastIndexOf("\"");
JK 17.02.05
String tüüp = r.substring(6, k);
JK 17.02.05
byte b = (byte)(Integer.parseInt(tüüp));
JK 17.02.05
gotBaseLanguage = BaseLanguage.newBaseLanguage(b);
<======
? r.indexOf("view=\"") == 0
int esimJm = r.indexOf("\"");
JK 04.01.06
int viimJm = r.lastIndexOf("\"");
JK 04.01.06
gotViewType = (byte)(Integer.parseInt(r.substring(esimJm+1, viimJm)));
JK 04.01.06
//gotViewType = (byte)(r.charAt(6) - '0');
//System.out.println("BAseLanguageXML:getAttributes:view:" + gotViewType);
<======
? r.indexOf("icon=\"") == 0
? r.indexOf("\"no\"") == 5
gotIcon = false;
<======
s.removePrimitiveHead(0);
static void töödeldaSkeemiLiige(Sketch s, Sketch sk)
s - peremees-skeem, sk - töödeldav skeem
String comm = sk.comment.toString();
? comm.equals("COMMENT")
s.comment = getComment(sk);
<======
? comm.equals("PRIMITIVE_HEAD")
s.insert(getPrimitiveHead(sk, true), s.head.size());
<======
? comm.equals("BRANCH")
Branch newBr = getBranch(sk);
s.insert(newBr, s.body.size());
static Row getComment(Sketch sk)
Row r = getRow(sk);
//r.setColor(Default.commentColor);
<======r
static PrimitiveHead getPrimitiveHead(Sketch sk, boolean isSketchHead)
sk on skeem kommentaariga PRIMITIVE_HEAD
päise tüüp:
int type = 0;
? sk.head.size() != 0
String str = sk.primitiveHead(0).text.row(0).toString();
type = Integer.parseInt(str.substring(6,7));
Branch br = sk.branch(0);
Sketch sktxt = (Sketch)(br.member(0));
TEXT
sk.remove();
Text t = getText(sktxt);
String comm = sk.comment.toString();
? isSketchHead
t.setColor(Default.sketchHeadColor);
<======
t.setColor(Default.branchHeadColor);
<======new PrimitiveHead((byte)type, t)
static PrimitiveMember getPrimitive(Sketch sk)
sk on skeem kommentaariga PRIMITIVE
primitiivi tüüp:
int type = Primitive.SIMPLE;
? sk.head.size() != 0
String str = sk.primitiveHead(0).text.row(0).toString();
type = Integer.parseInt(str.substring(6,7));
Branch br = sk.branch(0);
Sketch sktxt = (Sketch)(br.member(0));
TEXT
sk.remove();
Text t = getText(sktxt);
? type == Primitive.CONDITION
t.setColor(Default.conditionColor);
<======new PrimitiveMember((byte)type, t)
static Arrow getArrow(Sketch sk)
sk on skeem kommentaariga ARROW
noole tüüp ja tase:
int type = Primitive.STRONG_ARROW;
int level = 0;
kompil.
String str;
? sk.head.size() == 2
str = sk.primitiveHead(0).text.row(0).toString();
type = Integer.parseInt(str.substring(6,7));
str = sk.primitiveHead(1).text.row(0).toString();
//level = Integer.parseInt(str.substring(7,8));
<======
on ainult tase
str = sk.primitiveHead(0).text.row(0).toString();
//level = Integer.parseInt(str.substring(7,8));
String str1 = str.substring(7, str.lastIndexOf("\""));
level = Integer.parseInt(str1);
Branch br = sk.branch(0);
Sketch sktxt = (Sketch)(br.member(0));
TEXT
sk.remove();
Text t = getText(sktxt);
Arrow ar = new Arrow((byte)type, level);
ar.text = t;
<======ar
static Text getText(Sketch sk)
sk on skeem kommentaariga TEXT
Text res = new Text();
Branch br = sk.branch(0);
int n = br.body.size();
int j = 0;
rea number
* int i = 0; i < n; i++
Sketch ask = (Sketch)(br.member(0));
Row r = getRow(ask);
? ask.comment.toString().equals("ROW")
res.insert(r, j++);
<======
//r.setColor(Default.commentColor);
res.comment = r;
res.remove(res.rows.size()-1);
sk.remove();
<======res
static Row getRow(Sketch sk)
sk on skeem kommentaariga ROW või COMMENT
Branch br = sk.branch(0);
sk.remove();
Color leadingColor = null;
comment = sk.comment.toString();
? comment.equals("ROW")
leadingColor = Default.foregroundColor;
<======
leadingColor = Default.commentColor;
? br.body.size() == 0
on tühi rida
<======new Row(leadingColor)
? !isRichRow(sk)
on plain row
PrimitiveMember p = (PrimitiveMember)(br.member(0));
row = p.text.row(0);
String r = row.toString();
kui on CDATA
? r.indexOf("
? r.lastIndexOf("]]>") == r.length() - 3
eemaldada 3 viimast
* int i = 0; i < 3; i++
row.remove(row.elements.size()-1);
eemaldada 9 esimest
* int i = 0; i < 9; i++
]]> asendada ]]> -ga:
r = row.toString();
int k = r.indexOf("]]>");
? k < 0
<======
k++;
reas on imdeks 1 võrra suurem kui sõnes
row.getElement(k);
Symbol sym = row.sy;
eemaldada 15 kohalt k
* int i = 0; i < 15; i++
lisada ]]>
row.insert(new Symbol('>', sym.font, sym.color), k);
row.insert(new Symbol(']', sym.font, sym.color), k);
row.insert(new Symbol(']', sym.font, sym.color), k);
row.setColor(leadingColor);
<==========row
on rich row
row = new Row(leadingColor);
row: kuhu hakatakse elemente lisama
int n = br.body.size();
* int i = 0; i < n; i++
Sketch ask = (Sketch)(br.member(0));
comment = ask.comment.toString();
? comment.equals("SEGM")
addElementsFromSegment(ask, row);
<======
? comment.equals("PICTURE")
addElementPicture(ask, row);
<======
? comment.equals("HYPERELEM")
addElementFromHyperElem(ask, row)
row.planSize();
<======row
static Branch getBranch(Sketch sk)
sk on skeem kommentaariga BRANCH
haru algus:
getAttributes(sk);
eemaldab ka olnud päised
Branch res = new Branch(gotType, gotBaseLanguage);
res.view = View.newView(gotViewType, res);
res.icon = gotIcon;
Branch br = sk.branch(0);
int n = br.body.size();
* int i = 0; i < n; i++
töödeldaHaruLiige(res, (Sketch)(br.member(0)));
res.removeMember(0);
sk.remove();
<======res
static void töödeldaHaruLiige(Branch b, Sketch sk)
b - peremees - loodav haru, sk - töödeldav skeem (BRANCH)
String comm = sk.comment.toString();
? comm.equals("COMMENT")
b.comment = getComment(sk);
<======
? comm.equals("PRIMITIVE_HEAD")
b.insert(getPrimitiveHead(sk, false), b.head.size());
<======
? comm.equals("PRIMITIVE")
PrimitiveMember p = getPrimitive(sk);
b.insert(p, b.body.size());
<======
? comm.equals("ARROW")
Arrow ar = getArrow(sk);
b.insert(ar, b.body.size());
<======
? comm.equals("SKETCH")
reduceRek(sk);
sk.remove();
b.insert(sk, b.body.size());
static boolean isRichRow(Sketch sk)
sk on skeem kommentaariga ROW või COMMENT
true, kui sk sisaldab mingit alamskeemi
Branch br = sk.branch(0);
int n = br.body.size();
* int i = 0; i < n; i++
otsida alamskeemi
Object o = br.member(i);
? o instanceof Sketch
<==========true
<======false
private static void getSegmentAttributes(Sketch s)
gotFace = "TimesRoman";
gotSize = 16;
gotStyle = 0;
gotColorR = 0;
gotColorG = 0;
gotColorB = 0;
int n = s.head.size();
* int i = 0; i < n ; i++
PrimitiveHead he = s.primitiveHead(0);
String r = he.text.toString();
? r.indexOf("face=\"") == 0
gotFace = r.substring(6, r.length() - 1);
<======
? r.indexOf("size=\"") == 0
gotSize =
new Integer(r.substring(6, r.length() - 1)).intValue();
<======
? r.indexOf("style=\"") == 0
gotStyle =
new Integer(r.substring(7, r.length() - 1)).intValue();
<======
? r.indexOf("color=\"") == 0
StringTokenizer st = new StringTokenizer(r, "\",");
st.nextToken();
color=
gotColorR = new Integer(st.nextToken()).intValue();
gotColorG = new Integer(st.nextToken()).intValue();
gotColorB = new Integer(st.nextToken()).intValue();
s.removePrimitiveHead(0);
static void addElementsFromSegmentVana(Sketch sk, Row givenRow)
sk on skeem kommentaariga SEGM, givenRow tuleb täiendada
getSegmentAttributes(sk);
Branch br = sk.branch(0);
PrimitiveMember p = null;
kompil
skeemistamisel kahjuks tühiku(te)st koosnev rida jääb ära
? br.body.size() == 0
p = new PrimitiveMember(Primitive.SIMPLE, new Text());
<======
p = (PrimitiveMember)(br.member(0));
sk.remove();
int korda = 1;
? br.body.size() == 2
korda = 2;
* int kk = 0; kk < korda; kk++
tsüklisse pandud: JK 15.02.05
tsükkel on sellep. et jdom teeb CDATA mitmeks (siin: arvest, et kaheks)
CDATAks vt Xml2Sketch:töödeldaElement()
seega SEGM skeemis võib olla kaks (või rohkem?) primitiivi
Row rida = p.text.row(0);
String r = rida.toString();
r on segmendis sk olevate sümbolite järjend
kui on CDATA
? r.indexOf("
? r.lastIndexOf("]]>") == r.length() - 3
rida-s ]]> asendada ]]> -ga:
r = rida.toString();
int k = r.indexOf("]]>");
? k < 0
<======
k++;
reas on indeks 1 võrra suurem kui sõnes
rida.getElement(k);
Symbol sym = rida.sy;
eemaldada 15 kohalt k
* int i = 0; i < 15; i++
lisada ]]>
rida.insert(new Symbol('>', sym.font, sym.color), k);
rida.insert(new Symbol(']', sym.font, sym.color), k);
rida.insert(new Symbol(']', sym.font, sym.color), k);
r-s eemaldada 9 esimest ja 3 viimast:
System.out.println("BaseLanguageXML:REDUCE:addElementsFromSegment:r="+r);
r = rida.toString();
r = r.substring(9, r.length() - 3);
r = replaceCharEntities(r);
r on korrastatud, sealt sümbolid lisada givenRow-sse
Color col = new Color(gotColorR, gotColorG, gotColorB);
Font font = new Font(gotFace, gotStyle, gotSize);
AmFrame fr = (AmFrame)(Am.frames.elementAt(0));
AmCanvas c = (AmCanvas)(fr.viewArea);
Graphics g = c.getGraphics();
* int i = 0; i < r.length(); i++
col = AmFont.color[AmFont.No(col)];
kuigi new Symbol peka ka tegema (aga ei saa hakkma?)
font = AmFont.font[AmFont.No(font, g)];
kuigi new Symbol peka ka tegema (aga ei saa hakkma?)
Symbol sm = new Symbol(r.charAt(i), font, col);
givenRow.append(sm);
? korda == 2
p = (PrimitiveMember)(br.member(1));
//sk.remove();
static void addElementsFromSegment(Sketch sk, Row givenRow)
sk on skeem kommentaariga SEGM, givenRow tuleb täiendada
getSegmentAttributes(sk);
Branch br = sk.branch(0);
PrimitiveMember p = null;
kompil
skeemistamisel kahjuks tühiku(te)st koosnev rida jääb ära
? br.body.size() == 0
p = new PrimitiveMember(Primitive.SIMPLE, new Text());
<======
p = (PrimitiveMember)(br.member(0));
sk.remove();
int korda = 1;
? br.body.size() == 2
korda = 2;
16.07.06:
String rKoond = "";
CDATAst saadud kokku (või lihtsalt rida)
vajalik, kuna jdom teeb CDATA mitmeks ka %#...; keskelt
* int kk = 0; kk < korda; kk++
tsüklisse pandud: JK 15.02.05
tsükkel on sellep. et jdom teeb CDATA mitmeks (siin: arvest, et kaheks)
CDATAks vt Xml2Sketch:töödeldaElement()
seega SEGM skeemis võib olla kaks (või rohkem?) primitiivi
Row rida = p.text.row(0);
String r = rida.toString();
r on segmendis sk olevate sümbolite järjend
kui on CDATA
? r.indexOf("
? r.lastIndexOf("]]>") == r.length() - 3
rida-s ]]> asendada ]]> -ga:
r = rida.toString();
int k = r.indexOf("]]>");
? k < 0
<======
k++;
reas on indeks 1 võrra suurem kui sõnes
rida.getElement(k);
Symbol sym = rida.sy;
eemaldada 15 kohalt k
* int i = 0; i < 15; i++
lisada ]]>
rida.insert(new Symbol('>', sym.font, sym.color), k);
rida.insert(new Symbol(']', sym.font, sym.color), k);
rida.insert(new Symbol(']', sym.font, sym.color), k);
r-s eemaldada 9 esimest ja 3 viimast:
r = rida.toString();
r = r.substring(9, r.length() - 3);
//16.07.06 enne rKoond, siis r = replaceCharEntities(r);
rKoond += r;
16.07.06
? korda == 2
p = (PrimitiveMember)(br.member(1));
//sk.remove();
rKoond = replaceCharEntities(rKoond);
16.07.06
rKoond on korrastatud, sealt sümbolid lisada givenRow-sse
Color col = new Color(gotColorR, gotColorG, gotColorB);
Font font = new Font(gotFace, gotStyle, gotSize);
AmFrame fr = (AmFrame)(Am.frames.elementAt(0));
AmCanvas c = (AmCanvas)(fr.viewArea);
Graphics g = c.getGraphics();
* int i = 0; i < rKoond.length(); i++
col = AmFont.color[AmFont.No(col)];
kuigi new Symbol peka ka tegema (aga ei saa hakkma?)
font = AmFont.font[AmFont.No(font, g)];
kuigi new Symbol peka ka tegema (aga ei saa hakkma?)
Symbol sm = new Symbol(rKoond.charAt(i), font, col);
givenRow.append(sm);
static String replaceCharEntities(String r)
asendab sümbolitega suuremad kui 127
String res = "";
r on see, kust (veel) kanda tulemusse
SIL
? r.endsWith("123456")
System.out.println("BaseLanguageXML:REDUCE:replaceCharEntities"+r);
//
? r.startsWith("#")
r = "&" + r;
int i = r.indexOf("");
? i<0
enam pole olemeid
<==========res + r
r = xxxxyyyyyy
res += r.substring(0, i);
kuni sümbololemini
r = r.substring(i);
r = yyyyyy
int j = r.indexOf(";");
sümbololemi lõpp
? j < 0
pole (enam) ";"
<==========res+r
on ";" r = yyy;zzzzzzzz
kas asendada on vaja?
String olemiSisu = r.substring(2, j);
int sisu = -1;
kompil
boolean vaja = true;
kas vaja?
!!
sisu = new Integer(olemiSisu).intValue();
? sisu < 128
vaja = false;
! (NumberFormatException e)
? vaja
char c = (char)sisu;
res += c;
asendatud sümbol tulemusse
r = r.substring(j+1);
r algus ära kuni semikoolonini
<======
res += r.substring(0, j+1);
asendamata osa tulemusse
r = r.substring(j+1);
r = zzzzz
static void addElementPicture(Sketch sk, Row givenRow)
sk on skeem kommentaariga PICTURE
getPictureAttributes(sk);
Branch br = sk.branch(0);
sk.remove();
int i = givenRow.elements.size();
Am.pictureBoard.processIMGs(givenRow, i, gotSrc);
panna veel align ja icon
givenRow.getElement(i);
givenRow.im.align = gotAlign;
givenRow.im.icon = gotIcon;
private static void getPictureAttributes(Sketch s)
gotSrc = "";
gotIcon = false;
gotAlign = AmImage.ALIGN_BOTTOM;
int n = s.head.size();
* int i = 0; i < n ; i++
PrimitiveHead he = s.primitiveHead(0);
String r = he.text.toString();
? r.indexOf("src=\"") == 0
gotSrc = r.substring(5, r.length() - 1);
<======
? r.indexOf("align=\"") == 0
gotAlign =
new Integer(r.substring(7, r.length() - 1)).intValue();
<======
? r.indexOf("icon=\"") == 0
? r.indexOf("\"no\"") == 5
gotIcon = false;
<======
s.removePrimitiveHead(0);
TEXTUALIZE
* static
Branch br1;
String indent = " ";
int currentLevel = 0;
public boolean textualize(SketchyText skt0, SketchyText skt1,
AmFrame dialogTargetFrame)
frame = dialogTargetFrame;
Sketch sNew = skt1.main;
Sketch s = skt0.main;
sNew.baseLanguage = new BaseLanguageXML();
sNew.branch(0).baseLanguage = new BaseLanguageXML();
Branch br = s.branch(0);
br1 = sNew.branch(0);
br1.body.removeElementAt(0);
//insertLine("%This LaTex-text is generated by AMADEUS");
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? o instanceof PrimitiveMember
textualize((PrimitiveMember)o);
<------
<======true
private void textualize(Sketch sk)
currentLevel++;
String comment = sk.comment.toString().trim();
boolean commented = (comment.length() > 0);
String endtag = "";
??sk.type
? Scheme.SIMPLE:
markup
? commented
endtag = ""+comment+">";
textualizeHead("<"+comment+" ",(Scheme)sk,">");
<======
? Scheme.MODULE:
int n = sk.head.size();
? n == 0
new AmDialog
(frame, AmLocale.Source_error(),AmDialog.B_OK,
"DTD "+AmLocale.Head() + " "+
AmLocale.missing() + "!");
endtag = " ]>";
insertRed("
<======
pa"ise (esimese lihtpa"ise) tyybi ja"rgi
PrimitiveHead h = (PrimitiveHead)(sk.head.elementAt(0));
? h.type == PrimitiveHead.SIMPLE
endtag = "]>";
textualizeHead("
<======
? h.type == PrimitiveHead.SWITCH
töötluskäsk
endtag = "?>";
textualizeHead("", (Scheme)sk, "");
<======
? h.type == PrimitiveHead.TRY
on DTD
endtag = "]>";
textualizeHead("
<======
? Scheme.LOOP:
on kommentaariblokk
<======
* int i = 0; i < sk.body.size(); i++
textualize(sk.branch(i));
insertLine(endtag);
currentLevel--;
private void textualize(Branch br)
String endtag = "";
SIMPLE korral
? br.type == Scheme.MODULE
endtag = ">";
<======
? br.type == Scheme.LOOP
endtag = "-->";
int n = br.head.size();
haru, mis kirjeldab NOTATION, ENTITY, ELEMENT, ATTLIST ...
<======
? br.type != Scheme.MODULE
<======
haru p\"aise t\"u\"ubi j\"argi
PrimitiveHead h = (PrimitiveHead)(br.head.elementAt(0));
? h.type == PrimitiveHead.SIMPLE
a la CDATA INCLUDE IGNORE
textualizeHead("
endtag = "]]>";
<======
? h.type == PrimitiveHead.SWITCH
textualizeHead("
endtag = ">";
<======
? h.type == PrimitiveHead.CASE
textualizeHead("
endtag = ">";
<======
? h.type == PrimitiveHead.CATCH
textualizeHead("
endtag = ">";
<======
? h.type == PrimitiveHead.LOOP
textualizeHead("
endtag = ">";
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? o instanceof Sketch
textualize((Sketch)o);
<------
textualize((PrimitiveMember)o);
insertLine(endtag);
private void textualizeHead(String start, Scheme s, String end)
int n = s.head.size();
? n == 0
insertLine(start + end);
<======
? n == 1
textualize(start, s.primitiveHead(0).text, end);
<======
* int i = 0; i < n; i++
? i==0
textualize(start, s.primitiveHead(i).text,"");
<------
? i==(n-1)
textualize("", s.primitiveHead(i).text, end);
<------
textualize(s.primitiveHead(i).text);
private void textualize(PrimitiveMember p)
Text t = p.text;
? p.type == Primitive.SIMPLE
textualize(t);
<======
private void textualize(Text t)
private void textualize(String pref, Text t, String suf)
<======
int n = t.rows.size();
? n == 1
insertLine(pref+t.row(0).toString()+suf);
<======
* int i = 0; i < n; i++
? i==0
insertLine(pref+t.row(i).toString());
<------
? i==(n-1)
insertLine(t.row(i).toString()+suf);
<------
insertLine(t.row(i).toString());
private void insertLine(String str)
<======
str = indent.substring(0, Math.min(indent.length(),
currentLevel))+ str;
Text newT = new Text();
newT.rows.removeElementAt(0);
newT.rows.addElement(
new Row(str, Default.foregroundColor));
br1.body.addElement(
new PrimitiveMember(Primitive.SIMPLE, newT));
private void insertRed(String str)
sama, mis insertLine, v.a. va"rv
<======
str = indent.substring(0, Math.min(indent.length(),
currentLevel+1))+ str;
Text newT = new Text();
newT.rows.removeElementAt(0);
newT.rows.addElement(
new Row(str, Default.conditionColor));
br1.body.addElement(
new PrimitiveMember(Primitive.SIMPLE, newT));
prepareTex
void prepareTex(Sketch s)
System.out.println("BaseLangXML!!!!");
<======
nextPrimitiveHeadType
byte nextPrimitiveHeadType(Scheme s, byte prev)
yledefineeritud
s - skeem, mille pa"is, prev - pa"ise tyyp
? s instanceof Sketch
? s.type == Scheme.MODULE
DTD päis
? prev == PrimitiveHead.SIMPLE
<==================PrimitiveHead.TRY
<==============prev
? s.type == Scheme.SIMPLE
element
<==============PrimitiveHead.SIMPLE
kommentaar (LOOP)
??prev
? PrimitiveHead.SIMPLE:
<==================PrimitiveHead.LOOP
<==================PrimitiveHead.SWITCH
<==================PrimitiveHead.TRY
<==================PrimitiveHead.SIMPLE
<======
haru
Sketch psk = (Sketch)(s.parent);
ülemskeem
? psk.type == Scheme.SIMPLE
ELEMENT, CDATA või ENTITY
? s.type == Scheme.SIMPLE
element (haru päis ei tohikski muu olla)
<==============PrimitiveHead.SIMPLE
? s.type == Scheme.MODULE
CDATA või ENTITY
??prev
? PrimitiveHead.SIMPLE:
<==================PrimitiveHead.CASE
<==================PrimitiveHead.SIMPLE
<======
? psk.type == Scheme.MODULE
DTD haru
??prev
? PrimitiveHead.SIMPLE:
<==============PrimitiveHead.LOOP
<==============PrimitiveHead.CASE
<==============PrimitiveHead.CATCH
<==============PrimitiveHead.LOOP
<==============PrimitiveHead.CATCH
??? Mujal haru korral lubab koiki pa"ise tyype
soltumata skeemi pa"isest
<======prev