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
|
#! /usr/bin/env tclsh
namespace eval ::minirivet {}
proc ::minirivet::parseStringToCode {string} {
set code ""
while {$string ne ""} {
set endIndex [string first "<?" $string]
if {$endIndex == -1} {
set endIndex [expr {[string length $string] + 1}]
}
append code [list puts -nonewline [string range $string 0 $endIndex-1]] "; "
set string [string range $string $endIndex end]
set endIndex [string first "?>" $string]
if {$endIndex == -1} {
set endIndex [expr {[string length $string] + 1}]
}
set work [string range $string 0 2]
if {$work eq "<?="} {
set startIndex 3
append code "puts -nonewline [string trim [string range $string 3 $endIndex-1]]; "
} else {
append code [string range $string 2 $endIndex-1] "\n"
}
set string [string range $string $endIndex+2 end]
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
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
|
#! /usr/bin/env tclsh
namespace eval ::minirivet {}
if {![info exists ::minirivet::_outputChannel] && ![info exists ::minirivet::_outputVariable]} {
set ::minirivet::_outputChannel stdout
}
proc ::minirivet::setOutputChannel {channel} {
unset -nocomplain ::minirivet::_outputVariable
set ::minirivet::_outputChannel $channel
}
proc ::minirivet::setOutputVar {variable} {
unset -nocomplain ::minirivet::_outputChannel
set ::minirivet::_outputVariable $variable
}
proc ::minirivet::_emitOutput {string} {
if {[info exists ::minirivet::_outputChannel]} {
puts -nonewline $::minirivet::_outputChannel $string
}
if {[info exists ::minirivet::_outputVariable]} {
append $::minirivet::_outputVariable $string
}
return
}
proc ::minirivet::parseStringToCode {string} {
set code ""
while {$string ne ""} {
set endIndex [string first "<?" $string]
if {$endIndex == -1} {
set endIndex [expr {[string length $string] + 1}]
}
append code [list ::minirivet::_emitOutput [string range $string 0 $endIndex-1]] "; "
set string [string range $string $endIndex end]
set endIndex [string first "?>" $string]
if {$endIndex == -1} {
set endIndex [expr {[string length $string] + 1}]
}
set work [string range $string 0 2]
if {$work eq "<?="} {
set startIndex 3
append code "::minirivet::_emitOutput [string trim [string range $string 3 $endIndex-1]]; "
} else {
append code [string range $string 2 $endIndex-1] "\n"
}
set string [string range $string $endIndex+2 end]
|