code: def split_code(cls, code, PS1, PS2):
          
          processed_lines = []
          for line in textwrap.dedent(code).splitlines():
              if not line or line.startswith(PS1) or line.startswith(PS2):
                  processed_lines.append(line)
                  continue
  
              assert len(processed_lines) > 0, 'code improperly formatted: {}'.format(code)
              if not isinstance(processed_lines[-1], CodeAnswer):
                  processed_lines.append(CodeAnswer())
              processed_lines[-1].update(line)
          return processed_lines
docs: Splits the given string of code based on the provided PS1 and PS2
          symbols.
  
          PARAMETERS:
          code -- str; lines of interpretable code, using PS1 and PS2 prompts
          PS1  -- str; first-level prompt symbol
          PS2  -- str; second-level prompt symbol
  
          RETURN:
          list; a processed sequence of lines corresponding to the input code.