improving the parsing of multi-options with the same meaning,

such as, 'methfessel-paxton', or 'm-p', or 'mp'


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10883 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
kokalj 2014-04-18 14:13:59 +00:00
parent 9840aded76
commit 83561c095d
2 changed files with 93 additions and 25 deletions

View File

@ -52,6 +52,73 @@ proc ::pwscf::readFilter::replaceFlag {line reference args} {
}
#******
#****f* module/Functions
# SYNOPSIS
proc ::pwscf::readFilter::replaceVarFlag {line var optsList} {
# PURPOSE
# Handle properly multiple flags with the same meaning, that is,
# for example: map 'methfessel-paxton', or 'm-p', or 'mp' --> 'methfessel-paxton'
# EXAMPLE
# readFilter::replaceVarFlag $line $var optList
# ARGUMENTS
# * line -- line of input to replace the flag to a reference value
# * var -- name of the variable for which to replace a flag to a reference flag
# * optList -- kind of double-list of options (the first option-value is taken as a reference), i.e.:
# set optList {
# {'gaussian' 'gauss'}
# {'methfessel-paxton' 'm-p' 'mp'}
# {'marzari-vanderbilt' 'cold' 'm-v' 'mv'}
# {'fermi-dirac' 'f-d' 'fd'}
# }
# SOURCE
if { ! [string match *${var}* $line] } { return $line }
set substituted 0
set spl [split $line =]
set nl [llength $spl]
set new_spl [lindex $spl 0]
for {set i 1} {$i < $nl} {incr i} {
set var_ [string trim [lindex [lindex $spl [expr $i - 1]] end] ,]
set value_ [lindex $spl $i]
if { $var_ == $var } {
# ok we find the proper variable; replace its flag with the reference value
foreach opts $optsList {
#
set reference [lindex $opts 0]
set flags [lrange $opts 1 end]
foreach flag $flags {
#
if { [regexp ${flag} $value_] } {
#
set value_ [regsub $flag $value_ $reference]
set substituted 1
break
}
}
}
}
lappend new_spl $value_
}
if { $substituted } {
set line [join $new_spl =]
}
return $line
}
#******
proc ::pwscf::readFilter::logicalFlag {line} {
# PURPOSE
# Convert all variants of .TRUE. .true. .T. .t. ---> .true.

View File

@ -7,6 +7,16 @@
# a script that loads the command.
set auto_index(::pwscf::_uniqueTabname) [list source [file join $dir auxil.itcl]]
set auto_index(::pwscf::view::inputByPager) [list source [file join $dir view.itcl]]
set auto_index(::pwscf::view::structByXcrysden) [list source [file join $dir view.itcl]]
set auto_index(::pwscf::view::defaultPager) [list source [file join $dir view.itcl]]
set auto_index(::pwscf::settings) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsOK) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsApply) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsSave) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsSave_Unix) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsSaveToFile) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsModule) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::edit::inputByEditor) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::defaultEditor) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::_defaultEditorCancel) [list source [file join $dir edit.itcl]]
@ -14,21 +24,6 @@ set auto_index(::pwscf::edit::_defaultEditorClose) [list source [file join $dir
set auto_index(::pwscf::edit::_defaultEditorDone) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::_defaultEditorSave) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::_defaultEditorSaveAs) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::init) [list source [file join $dir init.itcl]]
set auto_index(::pwscf::checkCmd) [list source [file join $dir init.itcl]]
set auto_index(::pwscf::menustate::editable) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::xcrysden) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::runnable) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::runnableXC) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::readFilter::replaceFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::logicalFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::purifyCardLine) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::amassIndex) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::default) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findNamelists) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findCards) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findNamelistsAndCards) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::selectFileRoot) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::run::run) [list source [file join $dir run.itcl]]
set auto_index(::pwscf::run::runAs) [list source [file join $dir run.itcl]]
set auto_index(::pwscf::run::runAndXC) [list source [file join $dir run.itcl]]
@ -41,13 +36,19 @@ set auto_index(::pwscf::run::_configApply) [list source [file join $dir run.itcl
set auto_index(::pwscf::run::_cancel) [list source [file join $dir run.itcl]]
set auto_index(::pwscf::run::_mkdirOutdir) [list source [file join $dir run.itcl]]
set auto_index(::pwscf::run::_displayXC) [list source [file join $dir run.itcl]]
set auto_index(::pwscf::settings) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsOK) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsApply) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsSave) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsSave_Unix) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsSaveToFile) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::_settingsModule) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::view::inputByPager) [list source [file join $dir view.itcl]]
set auto_index(::pwscf::view::structByXcrysden) [list source [file join $dir view.itcl]]
set auto_index(::pwscf::view::defaultPager) [list source [file join $dir view.itcl]]
set auto_index(::pwscf::menustate::editable) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::xcrysden) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::runnable) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::runnableXC) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::init) [list source [file join $dir init.itcl]]
set auto_index(::pwscf::checkCmd) [list source [file join $dir init.itcl]]
set auto_index(::pwscf::readFilter::replaceFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::replaceVarFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::logicalFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::purifyCardLine) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::amassIndex) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::default) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findNamelists) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findCards) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findNamelistsAndCards) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::selectFileRoot) [list source [file join $dir modutil.itcl]]