Changeset b50ce62 in tol for tolbase/lib/byswidget


Ignore:
Timestamp:
Jun 18, 2009, 1:18:32 PM (17 years ago)
Author:
Jorge Pérez <josp.jorge@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
cfc30c0
Parents:
5fd08bd
Message:

TclRefToNameTol_ unfinished, it is superseded by tol::info, but keep it

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@1086 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tolbase/lib/byswidget/bfunctions/bftoltcl.tcl

    r5fd08bd rb50ce62  
    114114proc TclInfoRef {obj args} {
    115115#
    116 # PURPOSE: Get the value os Set TOL
     116# PURPOSE: Get the value for Set TOL
    117117#
    118118# PARAMETERS:
    119119#   obj:  reference of TCL
    120 #   args: indix of set
     120#   args: index of set
    121121#
    122122# RETURN: output [::tol::info var ref] information in "array get"
    … …  
    188188  }
    189189  return {}
     190}
     191
     192proc TclFindObjectRoot { ref } {
     193  set type [ lindex $ref 0 ]
     194  if { $type eq "File" } {
     195    set ref_root [ lrange $ref 0 2 ]
     196  } else {
     197    set ref_root [ lrange $ref 0 1 ]
     198  }
     199  # verifico si ref_root es un objeto con nombre
     200  set info_root [ ::tol::info var $root ]
     201  set name_root [ lindex $info_root 1 ]
     202  if { $name_root eq "" } {
     203    # el objeto raiz no tiene nombre, solo nos salvamos si la raiz es
     204    # un File y bajando por el camino encontramos algun global con
     205    # nombre
     206    if { $type eq "File" } {
     207      ...
     208    }
     209  } else {
     210    # bingo! la raiz de ref tiene nombre
     211    return $name_root
     212  }
     213}
     214
     215proc TclRefToNameTol_ { ref } {
     216  set type [ lindex $ref 0 ]
     217  switch $type {
     218    Console {
     219      set root [ lrange $ref 0 1 ]
     220      set info_root [ ::tol::info var $root ]
     221      # verifico si tiene nombre
     222      set name_root [ lindex $info_root 1 ]
     223      if { $name_root eq "" } {
     224        # el objeto raiz no tiene nombre, solo nos salvamos si el
     225        # objeto referenciado es global y tiene nombre
     226        set info_all [ ::tol::info var $ref ]
     227        set grammar_ref [ lindex $info_all 0 ]
     228        set name_ref [ lindex $info_all 1 ]
     229        if {  $name_ref eq "" } {
     230          # no podemos hacer nada, no existe expresion de tol que
     231          # pueda recuperar el valor de la referencia ref
     232          return ""
     233        } else {
     234          # chequeamo si es un objeto global con nombre $name.
     235          if { [ catch { ::tol::info var [ list $grammar_ref $name_ref ] } ] } {
     236            # no se ha podido encontrar $name_ref como variable global en
     237            # $grammar_ref
     238            return ""
     239          } else {
     240            # hemos encontrado un objeto en $grammar_ref con nombre
     241            # $name_ref. Dado el uso interno de PutName, eso no
     242            # asegura que el objeto referenciado en $ref sea el
     243            # mismo. Ya seria mala pata!!!!!
     244            return $name_ref
     245          }
     246        }
     247      } else {
     248        # el objeto raiz tiene nombre, ya vamos mejorando ...
     249        set name $name_root
     250        foreach i [ lrange $ref 2 end ] {
     251          append name "\[$i\]"
     252        }
     253        return $name
     254      }
     255    }
     256    File {
     257    }
     258    Set {
     259    }
     260    NameBlock {
     261    }
     262  }
    190263}
    191264
Note: See TracChangeset for help on using the changeset viewer.