def expr(self, p): return ast.BiOperatorExpr(p.expr0, ast.Range(), p.expr1)
def expr(self, p): return ast.BiOperatorExpr(p.expr0, ast.Plus(), p.expr1)
def bool(self, p): return ast.BiOperatorExpr(p.expr0, ast.LessOrEqual(), p.expr1)
def bool(self, p): return ast.BiOperatorExpr(p.expr, ast.TypeCheck(), p.typ)
def bool(self, p): return ast.BiOperatorExpr(p.expr0, ast.LessThan(), p.expr1)
def bool(self, p): return ast.BiOperatorExpr(p.expr0, ast.GreaterThan(), p.expr1)
def bool(self, p): return ast.BiOperatorExpr(p.expr0, ast.NotEqualTo(), p.expr1)
def bool(self, p): # print(*p) return ast.BiOperatorExpr(p.expr0, ast.EqualTo(), p.expr1)
def expr(self, p): return ast.BiOperatorExpr(p.expr0, ast.Divide(), p.expr1)