Previous: Dynare hooks, Up: Running Dynare [Contents][Index]

### 3.3 Understanding Preprocessor Error Messages

If the preprocessor runs into an error while processing your `.mod` file, it will issue an error. Due to the way that a parser works, sometimes these errors can be misleading. Here, we aim to demystify these error messages.

The preprocessor issues error messages of the form:

1. `ERROR: <<file.mod>>: line A, col B: <<error message>>`
2. `ERROR: <<file.mod>>: line A, cols B-C: <<error message>>`
3. `ERROR: <<file.mod>>: line A, col B - line C, col D: <<error message>>`

The first two errors occur on a single line, with error two spanning multiple columns. Error three spans multiple rows.

Often, the line and column numbers are precise, leading you directly to the offending syntax. Infrequently however, because of the way the parser works, this is not the case. The most common example of misleading line and column numbers (and error message for that matter) is the case of a missing semicolon, as seen in the following example:

    varexo a, b
    parameters c, ...;

In this case, the parser doesn’t know a semicolon is missing at the end of the `varexo` command until it begins parsing the second line and bumps into the `parameters` command. This is because we allow commands to span multiple lines and, hence, the parser cannot know that the second line will not have a semicolon on it until it gets there. Once the parser begins parsing the second line, it realizes that it has encountered a keyword, `parameters`, which it did not expect. Hence, it throws an error of the form: `ERROR: <<file.mod>>: line 2, cols 0-9: syntax error, unexpected PARAMETERS`. In this case, you would simply place a semicolon at the end of line one and the parser would continue processing.

Previous: Dynare hooks, Up: Running Dynare [Contents][Index]