当前位置: 首页>>代码示例>>Python>>正文


Python Nodo.subtipo方法代码示例

本文整理汇总了Python中Nodo.Nodo.subtipo方法的典型用法代码示例。如果您正苦于以下问题:Python Nodo.subtipo方法的具体用法?Python Nodo.subtipo怎么用?Python Nodo.subtipo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Nodo.Nodo的用法示例。


在下文中一共展示了Nodo.subtipo方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: visitIterable_generate

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_generate(self, ctx):
     valor = super(GramaticaExtVisitor,self).visit(ctx.test())
     if valor.tipo == "INTEGER":
         nodo = Nodo()
         nodo.tipo = "ITERATOR"
         nodo.subtipo = "LIST"
         nodo.valor = []
         for x in xrange(valor.valor):
             tmp = Nodo()
             tmp.tipo = "INTEGER"
             tmp.valor = x
             nodo.valor.append(tmp)
         return nodo
     elif valor.tipo == "STRING":
         nodo = Nodo()
         nodo.tipo = "ITERATOR"
         nodo.subtipo = "LIST"
         nodo.valor = []
         for x in valor.valor:
             tmp = Nodo()
             tmp.valor = x
             tmp.tipo = "STRING"
             nodo.valor.append(tmp)
         return nodo
     else:
         ln = -1
         self.raiseError(ln, 'Error en el generador, este debe ser de tipo cadena o entero', "non-iterable")
开发者ID:unzero,项目名称:Final,代码行数:29,代码来源:GramaticaExtVisitor.py

示例2: visitIterable_tuple

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_tuple(self, ctx):
     valorI = super(GramaticaExtVisitor,self).visit(ctx.test(0))
     valorD = super(GramaticaExtVisitor,self).visit(ctx.test(1))
     nodo = Nodo()
     nodo.tipo = "ITERATOR"
     nodo.subtipo = "TUPLE"
     nodo.valor = (valorI,valorD)
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:10,代码来源:GramaticaExtVisitor.py

示例3: visitAtomName

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitAtomName(self, ctx):
     nodo = Nodo()
     valor = self.evaluarSimbolo(ctx.NAME())
     nodo.tipo = valor.tipo
     nodo.valor = valor.valor
     nodo.subtipo = valor.subtipo
     #self.pilaValores.append(nodo)
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:10,代码来源:GramaticaExtVisitor.py

示例4: visitIterable_list

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_list(self, ctx):
     nodo = Nodo()
     nodo.tipo = "ITERATOR"
     nodo.subtipo = "LIST"
     nodo.valor = []
     if ctx.list_element() != None:
         valor = super(GramaticaExtVisitor,self).visit(ctx.list_element().test())
         nodo.valor.append(valor)
     if ctx.list_element() != None and ctx.list_element().sublist_element() != None:
         for el in ctx.list_element().sublist_element():
             valor = super(GramaticaExtVisitor,self).visit(el.test())
             nodo.valor.append(valor)
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:15,代码来源:GramaticaExtVisitor.py

示例5: unirIterables

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def unirIterables(self,iterab1,iterab2):
     if iterab1 == None or iterab2 == None:
         ln = -1
         self.raiseError(ln, "No se han proporcionado elementos para operar", "operators-expected")
     if iterab1.tipo != "ITERATOR" or iterab2.tipo != "ITERATOR":
         ln = -1
         self.raiseError(ln, "Se han proporcionado tipos no iterables", "iterable-expected")
     if iterab1.subtipo == "MAP" or iterab2.subtipo == "MAP":
         print(iterab1.subtipo)
         print(iterab2.subtipo)
         if iterab1.subtipo == "MAP" and iterab2.subtipo == "MAP":
             nodo = Nodo()
             nodo.tipo = "ITERATOR"
             nodo.subtipo = "MAP"
             nodo.valor = {}
             for k in iterab2.valor:
                 nodo.valor[k] = iterab2.valor[k]
             for k in iterab1.valor:
                 nodo.valor[k] = iterab1.valor[k]
             return nodo
         elif iterab1.subtipo == "TUPLE" and iterab2.subtipo == "MAP":
             nodo = Nodo()
             nodo.tipo = "ITERATOR"
             nodo.subtipo = "MAP"
             nodo.valor = iterab2.valor
             nodo.valor[iterab1.valor[0].valor] = iterab1.valor[1]
             return nodo
         else:
             ln = -1
             self.raiseError(ln, "No es posible concatenar un mapa con algun otro iterable", "tuple,map-expected")
     nodo = Nodo()
     nodo.tipo = "ITERATOR"
     nodo.subtipo = "LIST"
     nodo.valor = []
     for k in iterab1.valor:
         nodo.valor.append(k)
     for k in iterab2.valor:
         nodo.valor.append(k)
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:41,代码来源:GramaticaExtVisitor.py

示例6: visitIterable_name

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_name(self,ctx):
     valor = self.tablaDeSimbolosActual.resolver(ctx.NAME())
     if valor == None:
         ln = -1
         self.raiseError(ln, 'El simbolo no se ha encontrado', ctx.NAME())
     if valor.tipo != "ITERATOR":
         ln = -1
         self.raiseError(ln, 'El nombre no es de tipo iterador', ctx.NAME())
     
     nodo = Nodo()
     nodo.tipo = valor.tipo
     nodo.subtipo = valor.subtipo
     nodo.valor = valor.valor
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:16,代码来源:GramaticaExtVisitor.py

示例7: visitIterable_map

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_map(self, ctx):
     nodo = Nodo()
     nodo.tipo = "ITERATOR"
     nodo.subtipo = "MAP"
     nodo.valor = {}
     if ctx.map_element() != None:
         indice = super(GramaticaExtVisitor,self).visit(ctx.map_element().test(0))
         valor = super(GramaticaExtVisitor,self).visit(ctx.map_element().test(1))
         nodo.valor[indice.valor] = valor
     if ctx.map_element() != None and ctx.map_element().submap_element() != None:
         for el in ctx.map_element().submap_element():
             indice = super(GramaticaExtVisitor,self).visit(el.test(0))
             valor = super(GramaticaExtVisitor,self).visit(el.test(1))
             nodo.valor[indice.valor] = valor
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:17,代码来源:GramaticaExtVisitor.py

示例8: visitIterable_addition

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_addition(self,ctx):
     vl = super(GramaticaExtVisitor,self).visit(ctx.iterable(0))
     iterab = super(GramaticaExtVisitor,self).visit(ctx.iterable(1))
     if iterab == None or vl == None:
         ln = -1
         self.raiseError(ln, "No se han proporcionado elementos para operar", "operators-expected")
     if iterab.tipo != "ITERATOR":
         ln = -1
         self.raiseError(ln, "No es posible realizar esta operacion sobre un elemento no iterable", "iterable-expected")
     if vl.tipo == "ITERATOR":
         return self.unirIterables(vl, iterab)
     if iterab.tipo == "MAP":
         ln = -1
         self.raiseError(ln, "No es posible agregar ese elemento en un mapa", "tuple,map-expected")
     nodo = Nodo()
     nodo.tipo = "ITERATOR"
     nodo.subtipo = "LIST"
     nodo.valor = [vl] + iterab.valor
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:21,代码来源:GramaticaExtVisitor.py

示例9: visitIterable_filter

# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import subtipo [as 别名]
 def visitIterable_filter(self, ctx):
     iterab = super(GramaticaExtVisitor,self).visit(ctx.iterable())
     if iterab == None:
         ln = -1
         self.raiseError(ln, 'Error al evaluar el iterador', "iterator-eval")
     if iterab.tipo != "ITERATOR":
         ln = -1
         self.raiseError(ln, 'El objeto especificado no es de tipo iterable', "iterable-expected")
     if iterab.subtipo == "TUPLE":
         ln = -1
         self.raiseError(ln, 'No es posible realizar un recorrido sobre una tupla', "iterable-tuple")
     filtrada = None
     if iterab.subtipo == "LIST":
         filtrada = []
     else:
         filtrada = {}
     self.tablaDeSimbolosActual = TablaSimbolos(self.tablaDeSimbolosActual,self.tablaDeSimbolosActual.contexto)   
     for tmp in iterab.valor:
         ac = None
         ty = None
         if iterab.subtipo == "LIST":
             ac = tmp.valor
             ty = tmp.tipo
         else:
             ac = iterab.valor[tmp].valor
             ty = iterab.valor[tmp].tipo
         simbolo = Simbolo(ctx.lambda_test().NAME(),ty,ac)
         self.tablaDeSimbolosActual.agregarSimbolo(simbolo.nombre, simbolo)
         res = super(GramaticaExtVisitor,self).visit(ctx.lambda_test().test())
         if res.tipo != "BOOL":
             ln = -1
             self.raiseError(ln, 'No es posible filtrar bajo la funcion especificada', "lambda-filter-error")
         if res.valor == True and iterab.subtipo == "LIST":
             filtrada.append(tmp)
         elif res.valor == True and iterab.subtipo =="MAP":
             filtrada[tmp] = iterab.valor[tmp]
     self.tablaDeSimbolosActual = self.tablaDeSimbolosActual.destruirTabla()
     nodo = Nodo()
     nodo.subtipo = iterab.subtipo
     nodo.tipo = "ITERATOR"
     nodo.valor = filtrada
     print(nodo)
     return nodo
开发者ID:unzero,项目名称:Final,代码行数:45,代码来源:GramaticaExtVisitor.py


注:本文中的Nodo.Nodo.subtipo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。