Index: xotcl/library/lib/staticMetadata.xotcl =================================================================== diff -u -r489071934af0126a0f768b0ced07dea3b2328a23 -rad8a63234e44a8788efede276e811051ab891fbe --- xotcl/library/lib/staticMetadata.xotcl (.../staticMetadata.xotcl) (revision 489071934af0126a0f768b0ced07dea3b2328a23) +++ xotcl/library/lib/staticMetadata.xotcl (.../staticMetadata.xotcl) (revision ad8a63234e44a8788efede276e811051ab891fbe) @@ -1,71 +1,82 @@ package require xotcl::metadataAnalyzer package provide xotcl::staticMetadataAnalyzer 0.84 +package require XOTcl -@ @File { - description { - XOTcl file static analyzer for @ metadata. E.g. used for - doumentation with xoDoc. I.e. allows for reading in a - file and evaluating the metadata-related info only. +namespace eval ::xotcl::staticMetadataAnalyzer { + namespace import ::xotcl::* + + @ @File { + description { + XOTcl file static analyzer for @ metadata. E.g. used for + doumentation with xoDoc. I.e. allows for reading in a + file and evaluating the metadata-related info only. + } } -} -@ Class StaticMetadataAnalyzer -superclass MetadataAnalyzer { - description { - Metadata analyzer class that allows for reading in files - and evaluation of the metadata content in the file. + @ Class StaticMetadataAnalyzer -superclass MetadataAnalyzer { + description { + Metadata analyzer class that allows for reading in files + and evaluation of the metadata content in the file. + } } -} -Class StaticMetadataAnalyzer -superclass MetadataAnalyzer -StaticMetadataAnalyzer instproc cmdsplit {cmd} { - # from Jeffrey's tkcon - set inc {} - set cmds {} - foreach cmd [split [string trimleft $cmd] \n] { - if {[string compare {} $inc]} { - append inc \n$cmd - } else { - append inc [string trimleft $cmd] + Class StaticMetadataAnalyzer -superclass MetadataAnalyzer \ + -parameter {{namespace ::}} + StaticMetadataAnalyzer instproc cmdsplit {cmd} { + # from Jeffrey's tkcon + set inc {} + set cmds {} + foreach cmd [split [string trimleft $cmd] \n] { + if {[string compare {} $inc]} { + append inc \n$cmd + } else { + append inc [string trimleft $cmd] + } + if {[info complete $inc] && ![regexp {[^\\]\\$} $inc]} { + if {[regexp "^\[^#\]" $inc]} {lappend cmds $inc} + set inc {} + } } - if {[info complete $inc] && ![regexp {[^\\]\\$} $inc]} { - if {[regexp "^\[^#\]" $inc]} {lappend cmds $inc} - set inc {} - } + if {[regexp "^\[^#\]" $inc]} {lappend cmds $inc} + return $cmds } - if {[regexp "^\[^#\]" $inc]} {lappend cmds $inc} - return $cmds -} -StaticMetadataAnalyzer instproc evaluateCommands {c} { - foreach command [my cmdsplit $c] { - #puts stderr "$command===========================" - if {[regexp "^ *:*@ " $command]} { + StaticMetadataAnalyzer instproc evaluateCommands {c} { + my instvar namespace + foreach command [my cmdsplit $c] { #puts stderr "$command===========================" - eval $command - } elseif {[regexp "^ *package " $command]} { - #puts stderr "$command===========================" - eval my handlePackage $command - } elseif {[regexp "^ *namespace *eval *(\[^\{\]*) *\{(.*)\}\[^\}\]*$" $command _ namespace nsc]} { - #puts stderr "$command===========================" - my evaluateCommands $nsc - } + if {[regexp "^ *:*@ " $command]} { + #puts stderr "$command===========================" + namespace eval $namespace $command + } elseif {[regexp "^ *package " $command]} { + #puts stderr "$command===========================" + namespace eval $namespace [list my handlePackage $command] + } elseif {[regexp "^ *namespace *eval *(\[^\{\]*) *\{(.*)\}\[^\}\]*$" $command _ namespace nsc]} { + #puts stderr "$command===========================" + namespace eval $namespace [list my evaluateCommands $nsc] + } + } } -} -@ StaticMetadataAnalyzer instproc analyzeFile {name "File name"} { - description "Analyze a file and build up a token structure for each metadata token in the file." -} -StaticMetadataAnalyzer instproc analyzeFile name { - my set cmd "" + @ StaticMetadataAnalyzer instproc analyzeFile {name "File name"} { + description "Analyze a file and build up a token structure for each metadata token in the file." + } + StaticMetadataAnalyzer instproc analyzeFile name { + my set cmd "" - set t [FileToken create [my autoname t]] - $t set name $name - my set fileToken $t + set t [FileToken create [my autoname t]] + $t set name $name + my set fileToken $t - set f [open $name r] - set c [read $f] - close $f - ::@ onOff 1 - my evaluateCommands $c - ::@ onOff 0 + set f [open $name r] + set c [read $f] + close $f + ::@ onOff 1 + my evaluateCommands $c + ::@ onOff 0 + } + + namespace export StaticMetadataAnalyzer } + +namespace import ::xotcl::staticMetadataAnalyzer::*