本文整理匯總了Python中ast.Gt方法的典型用法代碼示例。如果您正苦於以下問題:Python ast.Gt方法的具體用法?Python ast.Gt怎麽用?Python ast.Gt使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ast
的用法示例。
在下文中一共展示了ast.Gt方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: comp_op_rewrite
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def comp_op_rewrite(op: t.Union[Tokenizer, t.List[Tokenizer]]):
"""
('<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not')
"""
if isinstance(op, list):
op = tuple(map(lambda it: it.value, op))
else:
op = op.value
return {
'<': ast.Lt,
'>': ast.Gt,
'==': ast.Eq,
'>=': ast.GtE,
'<=': ast.LtE,
'<>': lambda: raise_exp(NotImplemented),
'!=': ast.NotEq,
'in': ast.In,
('is', ): ast.Is,
('is', 'not'): ast.IsNot,
('not', 'in'): ast.NotIn,
}[op]()
示例2: cmpop
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def cmpop(self, op):
if isinstance(op, ast.Eq):
return Operator.eq
elif isinstance(op, ast.NotEq):
return Operator.ne
elif isinstance(op, ast.Lt):
return Operator.lt
elif isinstance(op, ast.LtE):
return Operator.le
elif isinstance(op, ast.Gt):
return Operator.gt
elif isinstance(op, ast.GtE):
return Operator.ge
else:
raise Exception('Unexpected CmpOp (%s)'%(op.__class__))
#Parses a function call (AST Call)
示例3: visit_Compare
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def visit_Compare(self, node):
def _simple_nomalize(*ops_type_names):
if node.ops and len(node.ops) == 1 and type(node.ops[0]).__name__ in ops_type_names:
if node.left and node.comparators and len(node.comparators) == 1:
left, right = node.left, node.comparators[0]
if type(left).__name__ > type(right).__name__:
left, right = right, left
node.left = left
node.comparators = [right]
return True
return False
if _simple_nomalize('Eq'):
pass
if _simple_nomalize('Gt', 'Lt'):
node.ops = [{ast.Lt: ast.Gt, ast.Gt: ast.Lt}[type(node.ops[0])]()]
if _simple_nomalize('GtE', 'LtE'):
node.ops = [{ast.LtE: ast.GtE, ast.GtE: ast.LtE}[type(node.ops[0])]()]
self.generic_visit(node)
return node
示例4: gen_compare
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def gen_compare(self, condition, yes_block, no_block):
# print(dir(c), c.ops, c.comparators)
# TODO: chained operators! ( 'a < b < c < d' )
assert len(condition.ops) == len(condition.comparators)
assert len(condition.ops) == 1
op_map = {
ast.Gt: ">",
ast.GtE: ">=",
ast.Lt: "<",
ast.LtE: "<=",
ast.Eq: "==",
ast.NotEq: "!=",
}
a = self.gen_expr(condition.left)
op = op_map[type(condition.ops[0])]
b = self.gen_expr(condition.comparators[0])
if a.ty is not b.ty:
self.error(condition, "Type mismatch, types must be the same.")
self.emit(ir.CJump(a, op, b, yes_block, no_block))
示例5: visit_Assert
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def visit_Assert(self, node):
if is_binary_comparison(node):
if is_comparison_type(node, ast.Eq):
return make_call_node(node, assert_equal.__name__)
elif is_comparison_type(node, ast.NotEq):
return make_call_node(node, assert_not_equal.__name__)
elif is_comparison_type(node, ast.In):
return make_call_node(node, assert_in.__name__)
elif is_comparison_type(node, ast.NotIn):
return make_call_node(node, assert_not_in.__name__)
elif is_comparison_type(node, ast.Is):
return make_call_node(node, assert_is.__name__)
elif is_comparison_type(node, ast.IsNot):
return make_call_node(node, assert_is_not.__name__)
elif is_comparison_type(node, ast.Lt):
return make_call_node(node, assert_less_than.__name__)
elif is_comparison_type(node, ast.LtE):
return make_call_node(node, assert_less_than_equal_to.__name__)
elif is_comparison_type(node, ast.Gt):
return make_call_node(node, assert_greater_than.__name__)
elif is_comparison_type(node, ast.GtE):
return make_call_node(node, assert_greater_than_equal_to.__name__)
return node
示例6: _is_compared_with_zero
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def _is_compared_with_zero(node):
return (
isinstance(node.ops[0], (ast.Gt, ast.Eq))
and isinstance(node.comparators[0], ast.Num)
and node.comparators[0].n == 0
)
示例7: compare_ast_to_ir2
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def compare_ast_to_ir2(ast_node: ast.Compare,
compilation_context: CompilationContext,
in_match_pattern: bool,
check_var_reference: Callable[[ast.Name], None],
match_lambda_argument_names: Set[str],
current_stmt_line: int):
if len(ast_node.ops) != 1 or len(ast_node.comparators) != 1:
raise CompilationError(compilation_context, ast_node, 'Comparison not supported.') # pragma: no cover
if in_match_pattern:
raise CompilationError(compilation_context, ast_node,
'Comparisons are not allowed in match patterns')
lhs = ast_node.left
op = ast_node.ops[0]
rhs = ast_node.comparators[0]
if isinstance(op, ast.Eq):
return eq_ast_to_ir2(lhs, rhs, compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
elif isinstance(op, ast.NotEq):
return not_eq_ast_to_ir2(lhs, rhs, compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
elif isinstance(op, ast.In):
return in_ast_to_ir2(lhs, rhs, compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
elif isinstance(op, ast.Lt):
return int_comparison_ast_to_ir2(lhs, rhs, '<', compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
elif isinstance(op, ast.LtE):
return int_comparison_ast_to_ir2(lhs, rhs, '<=', compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
elif isinstance(op, ast.Gt):
return int_comparison_ast_to_ir2(lhs, rhs, '>', compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
elif isinstance(op, ast.GtE):
return int_comparison_ast_to_ir2(lhs, rhs, '>=', compilation_context, in_match_pattern, check_var_reference, current_stmt_line)
else:
raise CompilationError(compilation_context, ast_node, 'Comparison not supported.') # pragma: no cover
示例8: test_base_classes
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def test_base_classes(self):
self.assertTrue(issubclass(ast.For, ast.stmt))
self.assertTrue(issubclass(ast.Name, ast.expr))
self.assertTrue(issubclass(ast.stmt, ast.AST))
self.assertTrue(issubclass(ast.expr, ast.AST))
self.assertTrue(issubclass(ast.comprehension, ast.AST))
self.assertTrue(issubclass(ast.Gt, ast.AST))
示例9: visit_For
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def visit_For(self, node):
# Turn for+range loop into a while loop:
# i = start
# while i < stop:
# body
# i = i + step
assert isinstance(node.iter, ast.Call) and \
node.iter.func.id == 'range', \
'for can only be used with range()'
range_args = node.iter.args
if len(range_args) == 1:
start = ast.Num(n=0)
stop = range_args[0]
step = ast.Num(n=1)
elif len(range_args) == 2:
start, stop = range_args
step = ast.Num(n=1)
else:
start, stop, step = range_args
if (isinstance(step, ast.UnaryOp) and
isinstance(step.op, ast.USub) and
isinstance(step.operand, ast.Num)):
# Handle negative step
step = ast.Num(n=-step.operand.n)
assert isinstance(step, ast.Num) and step.n != 0, \
'range() step must be a nonzero integer constant'
self.visit(ast.Assign(targets=[node.target], value=start))
test = ast.Compare(
left=node.target,
ops=[ast.Lt() if step.n > 0 else ast.Gt()],
comparators=[stop],
)
incr = ast.Assign(
targets=[node.target],
value=ast.BinOp(left=node.target, op=ast.Add(), right=step),
)
self.visit(ast.While(test=test, body=node.body + [incr]))
示例10: invert
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def invert(node):
"""
Invert the operation in an ast node object (get its negation).
Args:
node: An ast node object.
Returns:
An ast node object containing the inverse (negation) of the input node.
"""
inverse = {ast.Eq: ast.NotEq,
ast.NotEq: ast.Eq,
ast.Lt: ast.GtE,
ast.LtE: ast.Gt,
ast.Gt: ast.LtE,
ast.GtE: ast.Lt,
ast.Is: ast.IsNot,
ast.IsNot: ast.Is,
ast.In: ast.NotIn,
ast.NotIn: ast.In}
if type(node) == ast.Compare:
op = type(node.ops[0])
inverse_node = ast.Compare(left=node.left, ops=[inverse[op]()],
comparators=node.comparators)
elif isinstance(node, ast.BinOp) and type(node.op) in inverse:
op = type(node.op)
inverse_node = ast.BinOp(node.left, inverse[op](), node.right)
elif type(node) == ast.NameConstant and node.value in [True, False]:
inverse_node = ast.NameConstant(value=not node.value)
else:
inverse_node = ast.UnaryOp(op=ast.Not(), operand=node)
return inverse_node
示例11: __init__
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def __init__( s, component ):
super().__init__( component )
s.loop_var_env = set()
s.tmp_var_env = set()
# opmap maps an ast operator to its RTLIR counterpart.
s.opmap = {
# Bool operators
# Note: we do not support boolean operators because Python does
# not allow overloading And and Or operators. Using them in
# expressions might lead to inconsistent semantics.
# ast.And : bir.And(), ast.Or : bir.Or(),
# Unary operators
# Note: ast.Not is disallowed because it is a boolean operator
# ast.Not : bir.Not(),
ast.Invert : bir.Invert(),
ast.UAdd : bir.UAdd(), ast.USub : bir.USub(),
# Binary operators
ast.Add : bir.Add(), ast.Sub : bir.Sub(),
ast.Mult : bir.Mult(), ast.Div : bir.Div(),
ast.Mod : bir.Mod(), ast.Pow : bir.Pow(),
ast.LShift : bir.ShiftLeft(), ast.RShift : bir.ShiftRightLogic(),
ast.BitOr : bir.BitOr(), ast.BitAnd : bir.BitAnd(),
ast.BitXor : bir.BitXor(),
# Compare bir.bir.operators
ast.Eq : bir.Eq(), ast.NotEq : bir.NotEq(),
ast.Lt : bir.Lt(), ast.LtE : bir.LtE(),
ast.Gt : bir.Gt(), ast.GtE : bir.GtE()
}
# Override
示例12: visit_Compare
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def visit_Compare(self, node: ast.Compare) -> Any:
"""Recursively visit the comparators and apply the operations on them."""
# pylint: disable=too-many-branches
left = self.visit(node=node.left)
comparators = [self.visit(node=comparator) for comparator in node.comparators]
result = None # type: Optional[Any]
for comparator, op in zip(comparators, node.ops):
if isinstance(op, ast.Eq):
comparison = left == comparator
elif isinstance(op, ast.NotEq):
comparison = left != comparator
elif isinstance(op, ast.Lt):
comparison = left < comparator
elif isinstance(op, ast.LtE):
comparison = left <= comparator
elif isinstance(op, ast.Gt):
comparison = left > comparator
elif isinstance(op, ast.GtE):
comparison = left >= comparator
elif isinstance(op, ast.Is):
comparison = left is comparator
elif isinstance(op, ast.IsNot):
comparison = left is not comparator
elif isinstance(op, ast.In):
comparison = left in comparator
elif isinstance(op, ast.NotIn):
comparison = left not in comparator
else:
raise NotImplementedError("Unhandled op of {}: {}".format(node, op))
if result is None:
result = comparison
else:
result = result and comparison
left = comparator
self.recomputed_values[node] = result
return result
示例13: p_comp_op_2
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def p_comp_op_2(p):
'''comp_op : GREATER'''
# 1
p[0] = ast.Gt(rule=inspect.currentframe().f_code.co_name)
示例14: gt_operator
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def gt_operator(d: ast.Gt):
return ">"
示例15: visit_Compare
# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Gt [as 別名]
def visit_Compare (self, node):
if len (node.comparators) > 1:
self.emit ('(')
left = node.left
for index, (op, right) in enumerate (zip (node.ops, node.comparators)):
if index:
self.emit (' && ')
if type (op) in (ast.In, ast.NotIn) or (self.allowOperatorOverloading and type (op) in (
ast.Eq, ast.NotEq, ast.Lt, ast.LtE, ast.Gt, ast.GtE
)):
self.emit ('{} ('.format (self.filterId (
# Non-overloaded
'__in__' if type (op) == ast.In else
'!__in__' if type (op) == ast.NotIn else
# Overloaded
'__eq__' if type (op) == ast.Eq else
'__ne__' if type (op) == ast.NotEq else
'__lt__' if type (op) == ast.Lt else
'__le__' if type (op) == ast.LtE else
'__gt__' if type (op) == ast.Gt else
'__ge__' if type (op) == ast.GtE else
'Never here'
)))
self.visitSubExpr (node, left)
self.emit (', ')
self.visitSubExpr (node, right)
self.emit (')')
else:
self.visitSubExpr (node, left)
self.emit (' {0} '.format (self.operators [type (op)][0]))
self.visitSubExpr (node, right)
left = right
if len (node.comparators) > 1:
self.emit(')')