code: def col (loc,strg):
      
      s = strg
      return 1 if loc<len(s) and s[loc] == '\n' else loc - s.rfind("\n", 0, loc)
docs: Returns current column within a string, counting newlines as line separators.
     The first column is number 1.
  
     Note: the default parsing behavior is to expand tabs in the input string
     before starting the parsing process.  See L{I{ParserElement.parseString}<ParserElement.parseString>} for more information
     on parsing strings containing C{<TAB>}s, and suggested methods to maintain a
     consistent view of the parsed string, the parse location, and line and column
     positions within the parsed string.