ANTLR4 doesn’t find any tokens on a certain machine but works fine on mine with same input file

  antlr, antlr4, c++, c++17

My program uses the ANTLR (v4.8.0) C++ target for parsing. Now there is one machine, which I cannot access for fault-tracing, on which

line 1:0 mismatched input '<EOF>'

is reported for an input file which works fine on my machine. The error message makes me believe that ANTLR doesn’t find a single token, it’s like it was passed an empty stream. The input file is encoded with UTF8-BOM.

Both my machine and the one on which it doesn’t work runs Windows 10.

The code which loads the input stream is

antlr4::ANTLRInputStream antlrIs(inputAsUtf8);
A2lLexer lexer(&antlrIs);
antlr4::CommonTokenStream tokens(&lexer);
// The strategy from has been tested 
// and found to yield the same performance as this basic one.
XParser parser(&tokens);
XParser::XFileContext* xFileContext = parser.xFile();
if (lexer.getNumberOfSyntaxErrors() || parser.getNumberOfSyntaxErrors())
   throw runtime_error((string("Syntax error in ") + inputFile + ".").c_str());

The content of inputAsUtf8looks fine when printed to console.

Any ideas on how to fault-trace this furher? I’m a bit stuck.

Source: Windows Questions C++