Doxygen
Loading...
Searching...
No Matches
fortranscanner.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2015 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef SCANNER_FORTRAN_H
17#define SCANNER_FORTRAN_H
18
19#include "parserintf.h"
20
21/** \brief Fortran language parser using state-based lexical scanning.
22 *
23 * This is the Fortran language parser for doxygen.
24 */
26{
27 public:
31 void parseInput(const DString &fileName,
32 const char *fileBuf,
33 const std::shared_ptr<Entry> &root,
34 ClangTUParser *clangParser) override;
35 bool needsPreprocessing(const DString &extension) const override;
36 void parsePrototype(const DString &text) override;
37
38 private:
39 struct Private;
40 std::unique_ptr<Private> p;
41};
42
48
54
55const char* prepassFixedForm(const char* contents, int *hasContLine, int fixedCommentAfter);
56bool recognizeFixedForm(const DString &contents, FortranFormat format);
58
59#endif
Clang parser object for a single translation unit, which consists of a source file and the directly o...
Definition clangparser.h:25
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
bool needsPreprocessing(const DString &extension) const override
Returns true if the language identified by extension needs the C preprocessor to be run before feed t...
void parseInput(const DString &fileName, const char *fileBuf, const std::shared_ptr< Entry > &root, ClangTUParser *clangParser) override
Parses a single input file with the goal to build an Entry tree.
std::unique_ptr< Private > p
~FortranOutlineParser() override
FortranOutlineParser(FortranFormat format=FortranFormat::Unknown)
void parsePrototype(const DString &text) override
Callback function called by the comment block scanner.
Abstract interface for outline parsers.
Definition parserintf.h:41
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
const char * prepassFixedForm(const char *contents, int *hasContLine, int fixedCommentAfter)
bool recognizeFixedForm(const DString &contents, FortranFormat format)
FortranFormat convertFileNameFortranParserCode(const DString &fn)
FortranFormat
Definition types.h:612