ISLEman
fortranscanner.h
1 /******************************************************************************
2  *
3  *
4  *
5  * Copyright (C) 1997-2015 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby
9  * granted. No representations are made about the suitability of this software
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17 
18 #ifndef SCANNER_FORTRAN_H
19 #define SCANNER_FORTRAN_H
20 
21 #include "parserintf.h"
22 
28 {
29  public:
30  FortranLanguageScanner(FortranFormat format=FortranFormat_Unknown) : m_format(format) { }
31  virtual ~FortranLanguageScanner() {}
32  void startTranslationUnit(const char *) {}
34  void parseInput(const char *fileName,
35  const char *fileBuf,
36  Entry *root,
37  bool sameTranslationUnit,
38  QStrList &filesInSameTranslationUnit);
39  bool needsPreprocessing(const QCString &extension);
40  void parseCode(CodeOutputInterface &codeOutIntf,
41  const char *scopeName,
42  const QCString &input,
43  SrcLangExt lang,
44  bool isExampleBlock,
45  const char *exampleName=0,
46  FileDef *fileDef=0,
47  int startLine=-1,
48  int endLine=-1,
49  bool inlineFragment=FALSE,
50  MemberDef *memberDef=0,
51  bool showLineNumbers=TRUE,
52  Definition *searchCtx=0,
53  bool collectXRefs=TRUE
54  );
55  void resetCodeParserState();
56  void parsePrototype(const char *text);
57 
58  private:
59  FortranFormat m_format;
60 };
61 
63 {
64  public:
65  FortranLanguageScannerFree() : FortranLanguageScanner(FortranFormat_Free) { }
66 };
67 
69 {
70  public:
71  FortranLanguageScannerFixed() : FortranLanguageScanner(FortranFormat_Fixed) { }
72 };
73 
74 #endif
Definition: qstrlist.h:57
The common base class of all entity definitions found in the sources.
Definition: definition.h:92
A model of a class/file/namespace member symbol.
Definition: memberdef.h:43
Represents an unstructured piece of information, about an entity found in the sources.
Definition: entry.h:63
Abstract interface for programming language parsers.
Definition: parserintf.h:38
Definition: fortranscanner.h:62
void parsePrototype(const char *text)
Callback function called by the comment block scanner.
A model of a file symbol.
Definition: filedef.h:64
Definition: fortranscanner.h:68
Fortran language parser using state-based lexical scanning.
Definition: fortranscanner.h:27
SrcLangExt
Language as given by extension.
Definition: types.h:41
bool needsPreprocessing(const QCString &extension)
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed t...
void parseInput(const char *fileName, const char *fileBuf, Entry *root, bool sameTranslationUnit, QStrList &filesInSameTranslationUnit)
Parses a single input file with the goal to build an Entry tree.
void resetCodeParserState()
Resets the state of the code parser.
void finishTranslationUnit()
Called after all files in a translation unit have been processed.
Definition: fortranscanner.h:33
This is an alternative implementation of QCString.
Definition: qcstring.h:131
Output interface for code parser.
Definition: outputgen.h:59
void parseCode(CodeOutputInterface &codeOutIntf, const char *scopeName, const QCString &input, SrcLangExt lang, bool isExampleBlock, const char *exampleName=0, FileDef *fileDef=0, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, MemberDef *memberDef=0, bool showLineNumbers=TRUE, Definition *searchCtx=0, bool collectXRefs=TRUE)
Parses a source file or fragment with the goal to produce highlighted and cross-referenced output...
void startTranslationUnit(const char *)
Starts processing a translation unit (source files + headers).
Definition: fortranscanner.h:32