| % Creating an Error Parser |
| |
| Error parsers scan the output of \texttt{make} for error messages for a |
| particular compiler. When they see an error message they can recognize, they |
| extract the filename, line number, and error message, and use it to populate the |
| Problems view. |
| |
| For an example, see \texttt{IntelFortranErrorParser}. |
| (It's a mere 60 lines.) |
| |
| To create a new error parser, do the following. |
| |
| \begin{itemize} |
| |
| \item We will assume that your error parser class will be in the |
| \texttt{errorparsers} folder in the \texttt{org.eclipse.photran.core} plug-in |
| and added to the \\\texttt{org.eclipse.photran.internal.errorparsers} package. |
| |
| \item Define a class implementing \texttt{IErrorParser} |
| |
| \item Implement \texttt{public boolean processLine(String line, |
| ErrorParserManager eoParser)} which should always return false because |
| ErrorParserManager appears not to use the result in a rational way |
| |
| \item In org.eclipse.photran.core's \texttt{plugin.xml}, find the place where we |
| define all of the Fortran error parsers. Basically, copy an existing one. Your |
| addition will look something like this: |
| |
| \pagebreak |
| |
| \begin{lstlisting}[frame=lines, language=xml] |
| <extension |
| id="IntelFortranErrorParser" |
| name="Photran Error Parser for Some New Fortran Compiler" |
| point="org.eclipse.cdt.core.ErrorParser"> |
| <errorparser |
| class="org.eclipse.photran.internal.errorparsers.MyErrorParser"> |
| </errorparser> |
| </extension> |
| \end{lstlisting} |
| |
| \item Your new error parser will appear in the error parser list in the |
| Preferences automatically, and it will be automatically added to new projects. |
| For existing projects, you will need to open the project properties dialog and |
| add the new error parser to the project manually. |
| |
| \end{itemize} |
| |
| \textbf{Note.} Error parsers do not have to be implemented in the Photran Core |
| plug-in. In fact, they do not have to be implemented as part of Photran at all. |
| If you create a brand new plug-in, you can specify \texttt{org.eclipse.cdt.core} |
| as a dependency, include the above XML snippet in your plug-in's |
| \texttt{plugin.xml}, and include your custom error parser class in that plug-in. |
| The plug-in system for Eclipse will recognize your plug-in, detect that it |
| extends the \texttt{org.eclipse.cdt.core.ErrorParser} extension point, and add |
| it to the list of implemented error parsers automatically. |