This should not be a big problem. In your grammar (you need a split grammar in this case) you can define a base class to be used for your generated lexer:
options {
superClass = MyLexer;
}
In that lexer you have to implement the same interface as the standard lexer class provides, so that the parser can work with it. Most important is the `nextToken()` method, but a number of others must be supported as well, to make everything working. You can implement them step by step as needed to compile everything, by looking at the original implementation to see how it's done there.