54 lines
2.4 KiB
Plaintext
54 lines
2.4 KiB
Plaintext
s {
|
|
set f 0;
|
|
set r [list];
|
|
set a [list];
|
|
set e [list];
|
|
set i 0;
|
|
foreach c [split $s ""] {
|
|
switch -- $f {
|
|
0 {
|
|
switch -- $c {
|
|
\003 {set f 1;set b }
|
|
\002 {lappend e [list $i ]}
|
|
\037 {lappend e [list $i ]}
|
|
\026 {lappend e [list $i ]}
|
|
\017 {lappend e [list $i ]}
|
|
default {lappend a $c;incr i}
|
|
}
|
|
}
|
|
1 {
|
|
switch -regexp -- $c {
|
|
\\d {append b $c;incr f}
|
|
default {lappend e [list $i $b];lappend a $c;incr i;set f 0}
|
|
}
|
|
}
|
|
2 {
|
|
switch -regexp -- $c {
|
|
\\d {append b $c;incr f}
|
|
, {append b $c;set f 4}
|
|
default {lappend e [list $i $b];lappend a $c;incr i;set f 0}
|
|
}
|
|
}
|
|
3 {
|
|
switch -- $c {
|
|
, {append b $c;incr f}
|
|
default {lappend e [list $i $b];lappend a $c;incr i;set f 0}
|
|
}
|
|
}
|
|
4 {
|
|
switch -regexp -- $c {
|
|
\\d {append b $c;incr f}
|
|
default {lappend e [list $i $b];lappend a $c;incr i;set f 0}
|
|
}
|
|
}
|
|
5 {
|
|
switch -regexp -- $c {
|
|
\\d {append b $c;lappend e [list $i $b];set f 0}
|
|
default {lappend e [list $i $b];lappend a $c;incr i;set f 0}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return [list $a $e]
|
|
}
|