Next: Highlighting erroneous lines, Previous: Starting the syntax check process, Up: Flymake Implementation [Contents][Index]

### 5.7 Parsing the output

The output generated by the syntax check tool is parsed in the process filter/sentinel using the error message patterns stored in the `flymake-err-line-patterns` variable. This variable contains a list of items of the form `(regexp file-idx line-idx err-text-idx)`, used to determine whether a particular line is an error message and extract file name, line number and error text, respectively. Error type (error/warning) is also guessed by matching error text with the ’`^[wW]arning`’ pattern. Anything that was not classified as a warning is considered an error. Type is then used to sort error menu items, which shows error messages first.

Flymake is also able to interpret error message patterns missing err-text-idx information. This is done by merely taking the rest of the matched line (`(substring line (match-end 0))`) as error text. This trick allows making use of a huge collection of error message line patterns from `compile.el`. All these error patterns are appended to the end of `flymake-err-line-patterns`.

The error information obtained is saved in a buffer local variable. The buffer for which the process output belongs is determined from the process-id->buffer mapping updated after every process launch/exit.