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


Python L.get_setunion方法代码示例

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


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

示例1: rewrite_aggr

# 需要导入模块: from incoq.compiler.incast import L [as 别名]
# 或者: from incoq.compiler.incast.L import get_setunion [as 别名]
 def rewrite_aggr(self, symbol, name, aggr):
     # Only operate on min and max nodes.
     if isinstance(aggr.op, L.Min):
         func = 'min2'
     elif isinstance(aggr.op, L.Max):
         func = 'max2'
     else:
         return
     
     parts = L.get_setunion(aggr.value)
     if len(parts) <= 1:
         return
     multiple_queries = \
         len([p for p in parts if not isinstance(p, L.Set)]) > 1
     
     i = 2
     done_first_query = False
     new_parts = []
     for p in parts:
         if isinstance(p, L.Set):
             # Flatten the literal elements as arguments to
             # min2/max2.
             new_parts.extend(p.elts)
         else:
             new_query_node = aggr._replace(value=p)
             if done_first_query:
                 # Create a new query symbol and node for this
                 # non-literal argument.
                 new_name = name + '_aggrop' + str(i)
                 i += 1
                 new_parts.append(L.Query(new_name, new_query_node,
                                          None))
                 symtab.define_query(new_name, node=new_query_node,
                                     impl=symbol.impl)
             else:
                 # Push the Query node down to the first non-literal
                 # argument.
                 new_parts.append(L.Query(name, new_query_node, None))
                 symbol.node = new_query_node
                 done_first_query = True
     
     return L.Call(func, new_parts)
开发者ID:jieaozhu,项目名称:dist_lang_reviews,代码行数:44,代码来源:misc_rewritings.py


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