tell me if I'm wrong: would it be a good idea to try to match the first line, using for example `/^\s+NAME/` ?

no need to mess with currentLineNumber, you could rewrite processLine like this:
```javascript
function _processLine(line) {
  switch(this._state) {
    'none':
      if (!/^\s+NAME/.test(line)) {
        return;
      }
      this._state = 'ps';
      this._keys = line.split(/\s+/);
      break;
    case 'ps':
      // do your ps stuff
      break;
    default:
     return;
}
```

Also, note the change in the "split" line: using a slightly more complex regexp you can remove the "nonEmpty" filter.