提交 c0b770a1 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Temporary fix for #249: put parentheses everywhere.

上级 0d038a18
...@@ -69,12 +69,17 @@ class OperatorPrinter: ...@@ -69,12 +69,17 @@ class OperatorPrinter:
node = output.owner node = output.owner
if node is None: if node is None:
raise TypeError("operator %s cannot represent a variable that is not the result of an operation" % self.operator) raise TypeError("operator %s cannot represent a variable that is not the result of an operation" % self.operator)
outer_precedence = getattr(pstate, 'precedence', -999999)
outer_assoc = getattr(pstate, 'assoc', 'none') ## Precedence seems to be buggy, see #249
if outer_precedence > self.precedence: ## So, in doubt, we parenthesize everything.
#outer_precedence = getattr(pstate, 'precedence', -999999)
#outer_assoc = getattr(pstate, 'assoc', 'none')
#if outer_precedence > self.precedence:
# parenthesize = True
#else:
# parenthesize = False
parenthesize = True parenthesize = True
else:
parenthesize = False
input_strings = [] input_strings = []
max_i = len(node.inputs) - 1 max_i = len(node.inputs) - 1
for i, input in enumerate(node.inputs): for i, input in enumerate(node.inputs):
...@@ -243,7 +248,6 @@ class PPrinter: ...@@ -243,7 +248,6 @@ class PPrinter:
return "\n".join(s[1] for s in strings) return "\n".join(s[1] for s in strings)
def __call__(self, *args): def __call__(self, *args):
print sys.stderr, "WARNING: PPrinter bug. Is theano ticket #249 fixed yet?"
if len(args) == 1: if len(args) == 1:
return self.process(*args) return self.process(*args)
elif len(args) == 2 and isinstance(args[1], (PrinterState, dict)): elif len(args) == 2 and isinstance(args[1], (PrinterState, dict)):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论