I was writting a compiler for a new language, and I was having problems
with Geany. Whenever I tried to run "make" (e.g. press F8 in geany)
there were three cases:
* no error
* error in the compiler program -> error message was a Python traceback
* error in the source file being compiled by the compiler -> error
message was a gnu formatted error message.
I asked about this problem here before: what kind of regular expression
should I use so that Geany finds both errors? The answer was that it is
almost impossible, because Geany can only handle a single regular
Today I came up with another solution. It is a tiny wrapper program that
can run any other command. It monitors the data that is flowing through
stderr and stdout. It can run several different regular expressions on
the output, and convert them into standardized format.
It is trivial to change this program so that you parse the compiler
output from program code (instead of a regular expression). It allows
you to parse the output of almost anything, including cases when the
information is spread in multiple lines.
If anyone is interested, the "program" is attached. I'm not sure if it
worth adding it to the Geany wiki.