class_docstr: Represents a list of statements.
class_docstr_tok: ["Represents","a","list","of","statements","."]
docstr: Add an item to the list unless it is already present.
  
  If the item is an expression, then a semicolon will be appended to it
  in the final compiled code.
docstr_tok: ["Add","an","item","to","the","list","unless","it","is","already","present",".","If","the","item","is","an","expression",",","then","a","semicolon","will","be","appended","to","it","in","the","final","compiled","code","."]
code: def add(self, item, position=5):
      """Add an item to the list unless it is already present.
  
      If the item is an expression, then a semicolon will be appended to it
      in the final compiled code.
      """
      if item in self.items:
          return
      self.items[item] = position
      self._add_dep(item)
      self.order = None
      self.changed(code_changed=True)
  
imports: from collections import OrderedDict
  import logging
  import re
  import numpy
  from ...util.eq import eq
  from ...util import logger
  from .None import parsing
  from .shader_object import ShaderObject
  from .variable import Variable, Varying
  from .expression import TextExpression, FunctionCall
label_desc: Use image node_id 2 for calling the StatementList obj's underlying member method code with example usage: obj.add(item, position) without return types