1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#
# Simple.tcl,v 1.7 1999/07/18 23:20:14 joe Exp
# Simple, one-pass translation module for Cost 2.
#
package provide Cost-Simple 1.0
global translateSpec
set translateSpec "translate"
environment translateEnv \
cdataFilter identity \
sdataFilter identity
proc identity {text} { return $text }
proc output {text} { puts stdout $text nonewline }
eventHandler translateHandler -global {
START {
output [subst [$translateSpec get before ""]]
translateEnv save
foreach param {cdataFilter sdataFilter} {
if [$translateSpec has $param] {
translateEnv set $param [$translateSpec get $param]
}
}
$translateSpec do startAction
output [subst [$translateSpec get prefix ""]]
}
END {
output [subst [$translateSpec get suffix ""]]
$translateSpec do endAction
translateEnv restore
output [subst [$translateSpec get after ""]]
}
CDATA { output [[translateEnv get cdataFilter] [query content]] }
RE { output [[translateEnv get cdataFilter] "\n"] }
SDATA { output [[translateEnv get sdataFilter] [query content]] }
}
eventHandler contentHandler {
CDATA { append result [[translateEnv get cdataFilter] [q content]] }
SDATA { append result [[translateEnv get sdataFilter] [q content]] }
RE { append result [[translateEnv get cdataFilter] "\n"] }
}
proc translateContent {} {
set result ""
process contentHandler
return $result
}
proc main {} {
fconfigure stdout -buffering full
translateHandler
}
#*EOF*
|