/[ambar]/ambar/guion.py
ViewVC logotype

Diff of /ambar/guion.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.4 by amoyav, Sat Aug 30 13:31:25 2003 UTC revision 2.5 by amoyav, Sun Aug 31 12:07:37 2003 UTC
# Line 109  class Guion(object): Line 109  class Guion(object):
109    
110      # Constructor      # Constructor
111    
112      def __init__(self, elem_guion, macros, macros_extra = {}):      def __init__(self, elem_guion, macros_tipos, macros_extra = {}):
113          """Parsea un nodo conteniendo una lista de elementos <accion>, <requisito> o <guion>.          """Parsea un nodo conteniendo una lista de elementos <accion>, <requisito> o <guion>.
114    
115          macros ((string, string)[]) es una lista con los nombres y tipos de las          macros_tipos ((string, string)[]) es una lista con los nombres y tipos de las
116          macros permitidos en el contexto de este guion.          macros permitidos en el contexto de este guion.
117    
118          macros_extra (string:any) es un diccionario de macros que serán pasados          macros_extra (string:any) es un diccionario de macros que serán pasados
# Line 120  class Guion(object): Line 120  class Guion(object):
120    
121          Requiere:          Requiere:
122              elem_guion != None              elem_guion != None
123              macros != None              macros_tipos != None
124                macros_extra != None
125          """          """
126    
127          # Atributos privados:          # Atributos privados:
# Line 166  class Guion(object): Line 167  class Guion(object):
167    
168          for elem in elem_guion.childNodes:          for elem in elem_guion.childNodes:
169              if extraer_nombre_xml(elem) == "accion":              if extraer_nombre_xml(elem) == "accion":
170                  acc = Accion.nueva_xml(elem, macros)                  self.__secuencia.append(Accion.nueva_xml(elem, macros_tipos))
                 self.__secuencia.append(Accion.nueva_xml(elem, macros))  
171              elif extraer_nombre_xml(elem) == "requisito":              elif extraer_nombre_xml(elem) == "requisito":
172                  self.__secuencia.append(Requisito.nuevo_xml(elem, macros))                  self.__secuencia.append(Requisito.nuevo_xml(elem, macros_tipos))
173              elif extraer_nombre_xml(elem) == "guion":              elif extraer_nombre_xml(elem) == "guion":
174                  self.__parsear_fichero(elem, macros, macros_extra)                  self.__parsear_fichero(elem, macros_tipos, macros_extra)
175    
176    
177      # Métodos privados      # Métodos privados
178    
179      def __parsear_fichero(self, elem_guion, macros, macros_extra):      def __parsear_fichero(self, elem_guion, macros_tipos, macros_extra):
180          id = extraer_atributo_xml(elem_guion, 'id')              id = extraer_atributo_xml(elem_guion, 'id')    
181    
182          for i in range(0, elem_guion.attributes.length):          for i in range(0, elem_guion.attributes.length):
# Line 190  class Guion(object): Line 190  class Guion(object):
190    
191          elem_desc_guion = arbol_xml.documentElement          elem_desc_guion = arbol_xml.documentElement
192    
193          self.__secuencia.append(Guion(elem_desc_guion, macros, macros_extra))          self.__secuencia.append(Guion(elem_desc_guion, macros_tipos, macros_extra))
194             # Observar que un guion puede contener recursivamente otros guiones             # Observar que un guion puede contener recursivamente otros guiones
195    
196    
197      # Métodos normales      # Métodos normales
198    
199      def ejecutar(self, macros):      def ejecutar(self, macros_valores):
200          """Ejecuta el guion en cuestion.          """Ejecuta el guion en cuestion.
201    
202          macros({String:any}) es un diccionario de los nombres de las macros a su valor          macros_valores({String:any}) es un diccionario de los nombres de las macros a su valor
203          final.          final.
204    
205          Devuelve el resultado final de "aceptar" (1) o "cancelar" (0), o bien None          Devuelve el resultado final de "aceptar" (1) o "cancelar" (0), o bien None
206          si no se ha especificado (la serie no contiene ninguna de las dos acciones).          si no se ha especificado (la serie no contiene ninguna de las dos acciones).
207    
208          Requiere:          Requiere:
209              macros != None              macros_valores != None
210          """          """
211          trazar("ejecutando guion clasico %s" % self.__id, "pnj", 2)          trazar("ejecutando guion clasico %s" % self.__id, "pnj", 2)
212          resultado = None          resultado = None
213    
214          macros_total = macros          macros_total = macros_valores
215          macros_total.update(self.__macros_extra)          macros_total.update(self.__macros_extra)
216    
217          for instancia in self.__secuencia:          for instancia in self.__secuencia:

Legend:
Removed from v.2.4  
changed lines
  Added in v.2.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26