My Project
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
fortranscanner.h
Go to the documentation of this file.
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
27
class
FortranLanguageScanner
:
public
ParserInterface
28
{
29
public
:
30
FortranLanguageScanner
(
FortranFormat
format=
FortranFormat_Unknown
) :
m_format
(format) { }
31
virtual
~FortranLanguageScanner
() {}
32
void
startTranslationUnit
(
const
char
*) {}
33
void
finishTranslationUnit
() {}
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
62
class
FortranLanguageScannerFree
:
public
FortranLanguageScanner
63
{
64
public
:
65
FortranLanguageScannerFree
() :
FortranLanguageScanner
(
FortranFormat_Free
) { }
66
};
67
68
class
FortranLanguageScannerFixed
:
public
FortranLanguageScanner
69
{
70
public
:
71
FortranLanguageScannerFixed
() :
FortranLanguageScanner
(
FortranFormat_Fixed
) { }
72
};
73
74
#endif