pass file name to lexer init

so that it can record that in the source locations