![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||||||||
|
Introduction
This example of an up-translate program converts RTF (Rich Text Format) into SGML.
The program does the following:
In practice, preamble material (style sheets) will need to be skipped over, and other styles and paragraph commands (such as "\par") will need to be recognized.
up-translate
find "\s23" lookahead ! digit
output "<p>"
find "\" letter [letter | digit | "-"]* | ; RTF command
"\" any | ; other RTF code
["{}"] ; RTF grouping
; output nothing for these.
find "\" ["{}\"] => protected-character
output protected-character ; some characters are protected by \
find "\'" any {2} => hex-code ; some characters are in hexadecimal
local counter character-value
set character-value to hex-code base 16
output "&#%d(character-value);"
find "<"
output "<<!>" ; "<" often needs protecting in the SGML
find "&"
output "&<!>" ; likewise "&"
|
Related Concepts
Up-translation: translating documents into XML/SGML |
| ---- |