fixed, added `filename` arugment to `process` function, so creating a parser without a filename initially is sensible