summaryrefslogtreecommitdiffstats
path: root/src/fortrancode.h
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-12-03 19:54:36 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-12-03 19:54:36 (GMT)
commit3bda58a7b7b4f9094c2fcb2bad71c7174367605e (patch)
tree6b71e41e85f4dfd8822e2734c73bf7ff64b1fe35 /src/fortrancode.h
parent9b14bf58c30a02ef19abebec280568532dc58ed4 (diff)
downloadDoxygen-3bda58a7b7b4f9094c2fcb2bad71c7174367605e.zip
Doxygen-3bda58a7b7b4f9094c2fcb2bad71c7174367605e.tar.gz
Doxygen-3bda58a7b7b4f9094c2fcb2bad71c7174367605e.tar.bz2
Split language parser into "outline parser" and "code parser"
Diffstat (limited to 'src/fortrancode.h')
-rw-r--r--src/fortrancode.h46
1 files changed, 39 insertions, 7 deletions
diff --git a/src/fortrancode.h b/src/fortrancode.h
index 4df20a9..8391a0b 100644
--- a/src/fortrancode.h
+++ b/src/fortrancode.h
@@ -18,7 +18,7 @@
#ifndef FORTRANCODE_H
#define FORTRANCODE_H
-#include "types.h"
+#include "parserintf.h"
class CodeOutputInterface;
class FileDef;
@@ -26,13 +26,45 @@ class MemberDef;
class QCString;
class Definition;
-void parseFortranCode(CodeOutputInterface &,const char *,const QCString &,
- bool ,const char *,FileDef *fd,
- int startLine,int endLine,bool inlineFragment,
- const MemberDef *memberDef,bool showLineNumbers,const Definition *searchCtx,
- bool collectRefs, FortranFormat format);
-void resetFortranCodeParserState();
void codeFreeScanner();
const int fixedCommentAfter = 72;
+
+class FortranCodeParser : public CodeParserInterface
+{
+ public:
+ FortranCodeParser(FortranFormat format=FortranFormat_Unknown) : m_format(format) { }
+ 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,
+ const MemberDef *memberDef=0,
+ bool showLineNumbers=TRUE,
+ const Definition *searchCtx=0,
+ bool collectXRefs=TRUE
+ );
+ void resetCodeParserState();
+
+ private:
+ FortranFormat m_format;
+};
+
+class FortranCodeParserFree : public FortranCodeParser
+{
+ public:
+ FortranCodeParserFree() : FortranCodeParser(FortranFormat_Free) { }
+};
+
+class FortranCodeParserFixed : public FortranCodeParser
+{
+ public:
+ FortranCodeParserFixed() : FortranCodeParser(FortranFormat_Fixed) { }
+};
+
#endif