function text2HTML(sText : value) {
sText = sText.composeHTMLLikeString();
sText = sText.replaceString("\r", "");
return sText.replaceString("\n", "
");
}
TEXT2HTML ::=
=> {
@
@
}
=> {
@ Highlighting of production rules |
@
foreach i in this.rules {
if existVariable(i.color) {
@ @i@ |
@
}
}
@
Coverage of the text by production rules |
@
local iPreviousPosition = 0;
foreach position in this.areas {
local iCurrentPosition = position.key();
if iCurrentPosition != iPreviousPosition {
local sText = readChars($iCurrentPosition - iPreviousPosition$);
@@sText.text2HTML()@@
}
foreach i in position.end {
foreach rule in i {
if existVariable(rule.color) {
@@
}
}
}
foreach i in position.begin {
foreach rule in i {
if existVariable(rule.color) {
@@
}
}
}
iPreviousPosition = iCurrentPosition;
}
}
->(:sText)#empty
=> {
@@sText.text2HTML()@
|
@
}
;