umbrello  2.31.80
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
nativeimportbase.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2005-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef NATIVEIMPORTBASE_H
7 #define NATIVEIMPORTBASE_H
8 
9 #include "basictypes.h"
10 #include "classimport.h"
11 
12 #include <QString>
13 #include <QStringList>
14 
15 class UMLPackage;
16 class UMLClassifier;
17 
40 {
41 public:
42  explicit NativeImportBase(const QString &singleLineCommentIntro, CodeImpThread* thread = 0);
43  virtual ~NativeImportBase();
44 
45 protected:
46  void initialize();
47 
48  void setMultiLineComment(const QString &intro, const QString &end);
49  void setMultiLineAltComment(const QString &intro, const QString &end);
50 
51  virtual bool parseFile(const QString& filename);
52 
53  virtual void initVars();
54 
55  void scan(const QString& line);
56 
57  virtual bool preprocess(QString& line);
58 
59  virtual QStringList split(const QString& line);
60 
66  virtual void fillSource(const QString& word) = 0;
67 
76  virtual bool parseStmt() = 0;
77 
78  void skipStmt(const QString& until = QLatin1String(";"));
79  bool skipToClosing(QChar opener);
80 
81  QString lookAhead();
82  virtual QString advance();
83 
84  void pushScope(UMLPackage *p);
87  int scopeIndex();
88 
90  QStringList m_source;
91  int m_srcIndex;
92  QList<UMLPackage *> m_scope;
95  QString m_comment;
96 
103 
110  static QStringList m_parsedFiles;
111 
120 };
121 
122 #endif
123 
Definition: classimport.h:21
Definition: codeimpthread.h:22
Base class for native implementations of language import.
Definition: nativeimportbase.h:40
Uml::Visibility::Enum m_currentAccess
current access (public/protected/private)
Definition: nativeimportbase.h:94
bool skipToClosing(QChar opener)
Definition: nativeimportbase.cpp:92
static QStringList m_parsedFiles
Definition: nativeimportbase.h:110
QList< UMLPackage * > m_scope
stack of scopes for use by the specific importer
Definition: nativeimportbase.h:92
UMLPackage * currentScope()
Definition: nativeimportbase.cpp:160
QString lookAhead()
Definition: nativeimportbase.cpp:180
bool m_inComment
Definition: nativeimportbase.h:101
void scan(const QString &line)
Definition: nativeimportbase.cpp:369
QStringList m_source
the scanned lexemes
Definition: nativeimportbase.h:90
int m_srcIndex
used for indexing m_source
Definition: nativeimportbase.h:91
virtual bool preprocess(QString &line)
Definition: nativeimportbase.cpp:221
void pushScope(UMLPackage *p)
Definition: nativeimportbase.cpp:138
QString m_singleLineCommentIntro
start token of a single line comment
Definition: nativeimportbase.h:89
QString m_multiLineAltCommentEnd
Definition: nativeimportbase.h:119
virtual QStringList split(const QString &line)
Definition: nativeimportbase.cpp:319
virtual bool parseFile(const QString &filename)
Definition: nativeimportbase.cpp:412
void setMultiLineComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:54
void setMultiLineAltComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:66
virtual void initVars()
Definition: nativeimportbase.cpp:401
UMLClassifier * m_klass
class currently being processed
Definition: nativeimportbase.h:93
QString m_comment
intermediate accumulator for comment text
Definition: nativeimportbase.h:95
int scopeIndex()
Definition: nativeimportbase.cpp:171
void initialize()
Definition: nativeimportbase.cpp:496
QString m_multiLineCommentEnd
multi line comment delimiter end
Definition: nativeimportbase.h:113
void skipStmt(const QString &until=QLatin1String(";"))
Definition: nativeimportbase.cpp:77
UMLPackage * popScope()
Definition: nativeimportbase.cpp:148
virtual bool parseStmt()=0
QString m_multiLineCommentIntro
multi line comment delimiter intro
Definition: nativeimportbase.h:112
QString m_multiLineAltCommentIntro
Definition: nativeimportbase.h:118
NativeImportBase(const QString &singleLineCommentIntro, CodeImpThread *thread=0)
Definition: nativeimportbase.cpp:29
bool m_isAbstract
accumulator for abstractness
Definition: nativeimportbase.h:102
virtual ~NativeImportBase()
Definition: nativeimportbase.cpp:43
virtual QString advance()
Definition: nativeimportbase.cpp:193
virtual void fillSource(const QString &word)=0
Information for a non-graphical Concept/Class.
Definition: classifier.h:35
Non-graphical information for a Package.
Definition: package.h:28
Enum
Definition: basictypes.h:45