code: def parse_string(self, string):  # type: (str) -> Dict[str, Any]
          
          lines = string.split('\n')
  
          reader = vimlparser.StringReader(lines)
          parser = vimlparser.VimLParser(self._enable_neovim)
          ast = parser.parse(reader)
  
          # TOPLEVEL does not have a pos, but we need pos for all nodes
          ast['pos'] = {'col': 1, 'i': 0, 'lnum': 1}
  
          for plugin in self.plugins:
              plugin.process(ast)
  
          return ast
docs: Parse vim script string and return the AST.