umbrello  2.39.2
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-2022 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 = QStringLiteral(";"));
79  bool skipToClosing(QChar opener);
80 
81  QString current();
82  QString lookAhead();
83  virtual QString advance();
84 
85  void pushScope(UMLPackage *p);
88  int scopeIndex();
89 
91  QStringList m_source;
92  int m_srcIndex;
93  QList<UMLPackage *> m_scope;
96  QString m_comment;
97 
104 
111  static QStringList m_parsedFiles;
112 
121 };
122 
123 #endif
124 
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:95
bool skipToClosing(QChar opener)
Definition: nativeimportbase.cpp:96
static QStringList m_parsedFiles
Definition: nativeimportbase.h:111
QList< UMLPackage * > m_scope
stack of scopes for use by the specific importer
Definition: nativeimportbase.h:93
UMLPackage * currentScope()
Definition: nativeimportbase.cpp:165
QString lookAhead()
Definition: nativeimportbase.cpp:197
bool m_inComment
Definition: nativeimportbase.h:102
void scan(const QString &line)
Definition: nativeimportbase.cpp:386
QStringList m_source
the scanned lexemes
Definition: nativeimportbase.h:91
int m_srcIndex
used for indexing m_source
Definition: nativeimportbase.h:92
virtual bool preprocess(QString &line)
Definition: nativeimportbase.cpp:238
void pushScope(UMLPackage *p)
Definition: nativeimportbase.cpp:142
void skipStmt(const QString &until=QStringLiteral(";"))
Definition: nativeimportbase.cpp:81
QString m_singleLineCommentIntro
start token of a single line comment
Definition: nativeimportbase.h:90
QString m_multiLineAltCommentEnd
Definition: nativeimportbase.h:120
virtual QStringList split(const QString &line)
Definition: nativeimportbase.cpp:336
virtual bool parseFile(const QString &filename)
Definition: nativeimportbase.cpp:429
void setMultiLineComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:58
void setMultiLineAltComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:70
virtual void initVars()
Definition: nativeimportbase.cpp:418
UMLClassifier * m_klass
class currently being processed
Definition: nativeimportbase.h:94
QString m_comment
intermediate accumulator for comment text
Definition: nativeimportbase.h:96
QString current()
Definition: nativeimportbase.cpp:186
int scopeIndex()
Definition: nativeimportbase.cpp:176
void initialize()
Definition: nativeimportbase.cpp:513
QString m_multiLineCommentEnd
multi line comment delimiter end
Definition: nativeimportbase.h:114
UMLPackage * popScope()
Definition: nativeimportbase.cpp:152
virtual bool parseStmt()=0
QString m_multiLineCommentIntro
multi line comment delimiter intro
Definition: nativeimportbase.h:113
QString m_multiLineAltCommentIntro
Definition: nativeimportbase.h:119
NativeImportBase(const QString &singleLineCommentIntro, CodeImpThread *thread=0)
Definition: nativeimportbase.cpp:33
bool m_isAbstract
accumulator for abstractness
Definition: nativeimportbase.h:103
virtual ~NativeImportBase()
Definition: nativeimportbase.cpp:47
virtual QString advance()
Definition: nativeimportbase.cpp:210
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