code: function nextLine() {
              var at,
                  tw; // trailing whitespace check
  
              if (line >= lines.length)
                  return false;
  
              character = 1;
              s = lines[line];
              line += 1;
  
              // If smarttabs option is used check for spaces followed by tabs only.
              // Otherwise check for any occurence of mixed tabs and spaces.
              if (option.smarttabs)
                  at = s.search(/ \t/);
              else
                  at = s.search(/ \t|\t /);
  
              if (at >= 0)
                  warningAt("Mixed spaces and tabs.", line, at + 1);
  
              s = s.replace(/\t/g, tab);
              at = s.search(cx);
  
              if (at >= 0)
                  warningAt("Unsafe character.", line, at);
  
              if (option.maxlen && option.maxlen < s.length)
                  warningAt("Line too long.", line, s.length);
  
              // Check for trailing whitespaces
              tw = option.trailing && s.match(/^(.*?)\s+$/);
              if (tw && !/^\s+$/.test(s)) {
                  warningAt("Trailing whitespace.", line, tw[1].length + 1);
              }
              return true;
          }
docs: Private lex methods