AMADEUS html plain
This sketchy text is generated by AMADEUS
import java.io.*;
import java.util.*;
Javadoc
* Tehakse Skeemist HTML-plain fail
*
*@author Martin Vels & J.Kiho
class Sketch2HtmlPlain
static final String TITLE = "AMADEUS html plain";
static BufferedOutputStream out;
globaalne muutuja faili kirjutamiseks
kas reavahetus no~utud:
static boolean lastNotEmptyText = false;
write2file
static void write2file (String buf)
Kirjutame etteantud stringi faili
out.println(buf);
!!
//out.writeBytes(buf + "\r\n");
out.println(buf);
* int i = 0, n = buf.length(); i < n; i++
? buf.charAt(i) != 0
ALGJAVA 13.07.06
out.write(buf.charAt(i));
out.write('\r');
out.write('\n');
! (IOException e)
System.out.println(buf);
writeHeader
static void writeHeader(String title)
Kirjutab faili html-i headeri
write2file("");
write2file(TITLE);
writeFooter
static void writeFooter()
write2file("");
write2file("");
writePrimitiveMember
static void writePrimitiveMember(PrimitiveMember p)
Kirjutatakse faili lihtliige
lihtliikme algus
write2file("");
primtiivi text
..switch
?? p.type
prefiks vaatamiseks
..case
? Primitive.SIMPLE:
<======;
..case
? Primitive.CONDITION:
writeText(p.text, " ? ");
<======;
? Primitive.BREAKPOINT:
writeText(p.text, " ? ");
ikka '?' praegu
<======
lastNotEmptyText = true;
writeText
static void writeText(Text t, String st0)
..if
? lastNotEmptyText
write2file("
");
st0 - esimese rea algusse
write2file(st0+"" + t.row(0).toString());
..for
* int i = 1; i < t.rows.size(); i++
write2file("
" + t.row(i).toString());
kommentaar
write2file("" + t.comment.toString() + "");
writeArrowText
static void writeArrowText(Text t, String st0, String st1)
write2file(st0 + t.row(0).toString());
..for
* int i = 1; i < t.rows.size(); i++
write2file("
" + t.row(i).toString());
kommentaar
write2file(""+t.comment.toString()+"");
lastNotEmptyText = false;
writeArrow
static void writeArrow(Arrow a, int startLevel)
Kirjutame AmArrow-tyypi objekti faili
noole algus
int level = a.level;
otsatase
redutseerida pseudo
..if
? level < 0
level = -199;
seega kood: -99. Dekod: -199
<======
? level > 899
level = 899;
seega kood: 999.Dekod:899
write2file("");
int i;
int len = startLevel - level;
noole pikkus
..for
* i = 0; i <= len/2; i++
");
noole kujutis
StringBuffer stb = new StringBuffer();
stb.append(" ");
String c;
..if
? a.type == Arrow.STRONG
c = "=";
<======
stb.append("<");
stb.append(c);
stb.append(c);
stb.append(c);
stb.append(c);
..for
* i = 0; i <= len/2; i++
stb.append(c);
stb.append(c);
stb.append(c);
stb.append(c);
stb.append("");
noole tekst
writeArrowText(a.text, stb.toString(), str(level+100));
noole lo~pp
..for
* i = 0; i <= len/2; i++
write2file("
lastNotEmptyText = true;
writeHead
static void writeHead(Scheme s)
Kirjutame päise faili
int n = s.head.size();
lastNotEmptyText = false;
nagunii oli
..for
* int i = 0; i < n; i++
PrimitiveHead he = s.primitiveHead(i);
lihtpa"ise algus
String st = str((int)(he.type));
write2file("");
lihtpa"ise tekst
..switch
?? he.type
..case
? PrimitiveHead.SIMPLE:
<======;
..case
? PrimitiveHead.LOOP:
writeText(he.text, " * ");
<======;
..case
? PrimitiveHead.SWITCH:
writeText(he.text, " ??");
<======;
..case
? PrimitiveHead.TRY:
writeText(he.text, " !!");
<======;
..case
? PrimitiveHead.CASE:
? PrimitiveHead.DEFAULT:
writeText(he.text, " ? ");
<======;
..case
? PrimitiveHead.CATCH:
? PrimitiveHead.FINALLY:
JK 09.03.05 (lisatud)
writeText(he.text, " ! ");
<======;
switch
lastNotEmptyText = true;
writeScheme
static void writeScheme(Scheme s)
See meetod tegeleb skeemi labivaatamise ja faili
kirjutamisega
Object o;
skeemi algust tauml;histab
String type = str((int)(s.type));
//String bl = str((int)(s.baseLanguage.type));
JK 17.02.05
String bl = "" + BaseLanguage.blConstant2char(s.baseLanguage.type);
String view = str((int)(s.view.type()));
String view = str((int)(s.view.type));
String icon;
..if
<======
write2file("");
joon vahele
String line = "
";
write2file(line);
String comm = s.comment.toString();
write2file("" + comm + "");
..if
? comm.length() > 0
lastNotEmptyText = true;
<======
lastNotEmptyText = false;
Kirjutame paise
writeHead(s);
skeemi keha algus
..if
? s instanceof Branch
write2file("
..for
* Enumeration e = s.body.elements(); e.hasMoreElements();
o = e.nextElement();
? o instanceof Scheme
writeScheme((Scheme)o);
<------
? o instanceof Arrow
writeArrow((Arrow)o, s.level());
<------
writePrimitiveMember((PrimitiveMember)o);
skeemi lo~pp
..if
? s instanceof Branch
write2file("
");
haru keha l6putunnus
<======
write2file(line);
skeemi lo~pujoon
write2file("");
lastNotEmptyText = false;
9-st suuremad atribuudid lähevad välja A, B, ...
static final String arvusümbolid =
EI TOHI ENAM MUUTA!!!
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"abcdefghijklmnopqrstuvwxyz";
võib küll pikendada
static final int arvusümbolidViimInd = arvusümbolid.length()-1;
str
public static String str(int n)
abiks. Seda enam baaskeele tüübi jaoks ei kasutata 16.02.05
Seda kasutab ka Sketch2html.str()
? n < 10
<======(new Integer(n)).toString()
vana moodi
? n >= 100
noole korral: 100+level
<======(new Integer(n)).toString()
vana moodi
n -= 10;
? n > arvusümbolidViimInd
System.out.println("Sketch2HtmlPlain:str(): liiga suur atribuut !!!");
System.exit(0);
<======"" + arvusümbolid.charAt(n)
s2h
static public void s2h (Scheme s, String fname)
Votilde;tame vastu 2 parameetrit: AmSketchi ja faili nime
parameetriteks olgu sketch ja failinimi kuhu ta HTML-iseerida.
Avame etteantud nimelise faili
!!
out = new BufferedOutputStream(new FileOutputStream(fname, false));
out = new PrintWriter(new FileWriter(fname));
! (IOException e)
System.err.println("Caught IOException: " + e.getMessage());
pyyame exceptioni kui ei 6nnestunud faili luua
writeHeader(TITLE);
writeScheme(s);
writeFooter();
fail kinni
out.close();
!!
out.flush();
out.close();
! (IOException e)