text: 
  """
       The following predicates can be used in the traversal functions directly.
  """
  
  from ...tokens import TYPE_OP_ASSIGNMENT
  from ...tokens import TYPE_OP_COMMA
  from ...tokens import TYPE_OP_SQUARE_LEFT_BRACKET
  from ...tokens import TYPE_OP_SQUARE_RIGHT_BRACKET
  from ..atomic import AtomicElement
  from ..metadata import (
      PunctuationElement,
      CommentElement,
      NewlineElement,
      WhitespaceElement,
  )
  from .. import common
  
  
  atomic = lambda e: isinstance(e, AtomicElement)
  
  
  op_assignment = (
      lambda e: isinstance(e, PunctuationElement) and e.token.type == TYPE_OP_ASSIGNMENT
  )
  
  
  op_comma = lambda e: isinstance(e, PunctuationElement) and e.token.type == TYPE_OP_COMMA
  
  
  comment = lambda e: isinstance(e, CommentElement)
  
  
  newline = lambda e: isinstance(e, NewlineElement)
  
  
  non_metadata = lambda e: e.type != common.TYPE_METADATA
  
  
  closing_square_bracket = (
      lambda e: isinstance(e, PunctuationElement)
      and e.token.type == TYPE_OP_SQUARE_RIGHT_BRACKET
  )
  
  
  opening_square_bracket = (
      lambda e: isinstance(e, PunctuationElement)
      and e.token.type == TYPE_OP_SQUARE_LEFT_BRACKET
  )
  
  
  def table(e):
      from ..table import TableElement
  
      return isinstance(e, TableElement)
  
  
  def table_header(e):
      from ..tableheader import TableHeaderElement
  
      return isinstance(e, TableHeaderElement)
  
  
  whitespace = lambda e: isinstance(e, WhitespaceElement)
  