original_docstring: 
          conditionaland : [conditionaland "&&"] relation
  
          The default implementation short-circuits
          and can ignore an CELEvalError in a sub-expression.
          
docstring: conditionaland : [conditionaland "&&"] relation
  The default implementation short-circuits
  and can ignore an CELEvalError in a sub-expression.
docstring_tokens: conditionaland : [ conditionaland " && " ] relation The default implementation short - circuits and can ignore an CELEvalError in a sub - expression .
code: def conditionaland(self, tree: lark.Tree) -> Result:
          """
          conditionaland : [conditionaland "&&"] relation
  
          The default implementation short-circuits
          and can ignore an CELEvalError in a sub-expression.
          """
          if len(tree.children) == 1:
              # relation with no preceding conditionaland.
              values = self.visit_children(tree)
              return values[0]
          elif len(tree.children) == 2:
              func = self.functions["_&&_"]
              left, right = cast(Tuple[Result, Result], self.visit_children(tree))
              try:
                  return func(left, right)
              except TypeError as ex:
                  self.logger.debug(f"{func.__name__}({left}, {right}) --> {ex}")
                  err = (
                      f"found no matching overload for _&&_ "
                      f"applied to '({type(left)}, {type(right)})'"
                  )
                  value = CELEvalError(err, ex.__class__, ex.args, tree=tree)
                  value.__cause__ = ex
                  return value
          else:
              raise CELSyntaxError(
                  f"{tree.data} {tree.children}: bad conditionalor node",
                  line=tree.line,
                  column=tree.column,
              )
code_tokens: def conditionaland ( self , tree : lark . Tree ) -> Result : if len ( tree . children ) == 1 : values = self . visit_children ( tree ) return values [ 0 ] elif len ( tree . children ) == 2 : func = self . functions [ "_&&_" ] left , right = cast ( Tuple [ Result , Result ] , self . visit_children ( tree ) ) try : return func ( left , right ) except TypeError as ex : self . logger . debug ( f"{func.__name__}({left}, {right}) --> {ex}" ) err = ( f"found no matching overload for _&&_ " f"applied to '({type(left)}, {type(right)})'" ) value = CELEvalError ( err , ex . __class__ , ex . args , tree = tree ) value . __cause__ = ex return value else : raise CELSyntaxError ( f"{tree.data} {tree.children}: bad conditionalor node" , line = tree . line , column = tree . column , )
short_docstring: conditionaland : [conditionaland "&&"] relation
  The default implementation short-circuits
  and can ignore an CELEvalError in a sub-expression.
short_docstring_tokens: conditionaland : [ conditionaland " && " ] relation The default implementation short - circuits and can ignore an CELEvalError in a sub - expression .
comment: """
          conditionaland : [conditionaland "&&"] relation
  
          The default implementation short-circuits
          and can ignore an CELEvalError in a sub-expression.
          """$SEP$# relation with no preceding conditionaland.