1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

Integration of OCCT 6.5.0 from SVN

This commit is contained in:
bugmaster
2011-03-16 07:30:28 +00:00
committed by bugmaster
parent 4903637061
commit 7fd59977df
16375 changed files with 3882564 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
#
# Documentation.tcl
#
# TCL procedures to process documentation files
#
#
# Read a file
# The array subTitles binds the subTitles for each title (or empty list)
# The array texts binds the text for each title
#
# Titles are of the form {Title subTitle subTitle}
#
proc readFile {filename} {
global subTitles texts
if {! [file readable $filename]} return
foreach ar {subTitles texts} {if [info exists $ar] {unset $ar}}
set title "Top"
set stitle "Top"
set subTitles($stitle) {}
set level 1
set f [open $filename r]
while {[gets $f line] >= 0} {
if [regexp {^[ ]*(\*+)[ ]*(.*$)} $line dummy s t] {
# it is a new title
set l [string length $s]
# at a deepest level go down enough levels
while {$level < $l} {
set up($title) $stitle
set stitle $title
lappend title $t
incr level
}
# at an upper level go up enough level
while {$level > $l} {
set title stitle
set stitle $up($stitle)
incr level -1
}
# at the current level
lappend subTitles($stitle) $t
set title [concat $stitle $t]
set texts($title) ""
} else {
# it is a line for the current title
lappend texts($title) $line
}
}
close $f
}
#
# call on each title : titleProc title level
# call on each text : textProc text
proc dump {titleProc textProc {title Top} {level 1}} {
global subTitles texts
if [info exists texts($title)] {$textProc $texts($title)}
if [info exists subTitles($title)] {
set l $level
incr l
foreach t $subTitles($title) {
$titleProc $t $level
dump $titleProc $textProc [concat $title $t] $l
}
}
}
# cut a text into sections
# and call on each section : sectionProc section text
proc sectionText {aText aSectionProc} {
set section ""
set text {}
foreach line $aText {
if {[string index $line 0] == "."} {
$aSectionProc $section $text
set section $line
set text {}
} else {
lappend text $line
}
}
$aSectionProc $section $text
}