Why do you pass extensions into the lexer? I might be missing something here, but I don't even see where you change the lexer constructor to receive it.