umbrello  2.32.0
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  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2005-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef NATIVEIMPORTBASE_H
12 #define NATIVEIMPORTBASE_H
13 
14 #include "basictypes.h"
15 #include "classimport.h"
16 
17 #include <QString>
18 #include <QStringList>
19 
20 class UMLPackage;
21 class UMLClassifier;
22 
45 {
46 public:
47  explicit NativeImportBase(const QString &singleLineCommentIntro, CodeImpThread* thread = 0);
48  virtual ~NativeImportBase();
49 
50 protected:
51  void initialize();
52 
53  void setMultiLineComment(const QString &intro, const QString &end);
54  void setMultiLineAltComment(const QString &intro, const QString &end);
55 
56  virtual bool parseFile(const QString& filename);
57 
58  virtual void initVars();
59 
60  void scan(const QString& line);
61 
62  virtual bool preprocess(QString& line);
63 
64  virtual QStringList split(const QString& line);
65 
71  virtual void fillSource(const QString& word) = 0;
72 
81  virtual bool parseStmt() = 0;
82 
83  void skipStmt(const QString& until = QLatin1String(";"));
84  bool skipToClosing(QChar opener);
85 
86  QString lookAhead();
87  virtual QString advance();
88 
89  void pushScope(UMLPackage *p);
92  int scopeIndex();
93 
95  QStringList m_source;
96  int m_srcIndex;
97  QList<UMLPackage *> m_scope;
100  QString m_comment;
101 
108 
115  static QStringList m_parsedFiles;
116 
125 };
126 
127 #endif
128 
Definition: classimport.h:26
Definition: codeimpthread.h:36
Base class for native implementations of language import.
Definition: nativeimportbase.h:45
Uml::Visibility::Enum m_currentAccess
current access (public/protected/private)
Definition: nativeimportbase.h:99
bool skipToClosing(QChar opener)
Definition: nativeimportbase.cpp:97
static QStringList m_parsedFiles
Definition: nativeimportbase.h:115
QList< UMLPackage * > m_scope
stack of scopes for use by the specific importer
Definition: nativeimportbase.h:97
UMLPackage * currentScope()
Definition: nativeimportbase.cpp:165
QString lookAhead()
Definition: nativeimportbase.cpp:185
bool m_inComment
Definition: nativeimportbase.h:106
void scan(const QString &line)
Definition: nativeimportbase.cpp:374
QStringList m_source
the scanned lexemes
Definition: nativeimportbase.h:95
int m_srcIndex
used for indexing m_source
Definition: nativeimportbase.h:96
virtual bool preprocess(QString &line)
Definition: nativeimportbase.cpp:226
void pushScope(UMLPackage *p)
Definition: nativeimportbase.cpp:143
QString m_singleLineCommentIntro
start token of a single line comment
Definition: nativeimportbase.h:94
QString m_multiLineAltCommentEnd
Definition: nativeimportbase.h:124
virtual QStringList split(const QString &line)
Definition: nativeimportbase.cpp:324
virtual bool parseFile(const QString &filename)
Definition: nativeimportbase.cpp:417
void setMultiLineComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:59
void setMultiLineAltComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:71
virtual void initVars()
Definition: nativeimportbase.cpp:406
UMLClassifier * m_klass
class currently being processed
Definition: nativeimportbase.h:98
QString m_comment
intermediate accumulator for comment text
Definition: nativeimportbase.h:100
int scopeIndex()
Definition: nativeimportbase.cpp:176
void initialize()
Definition: nativeimportbase.cpp:501
QString m_multiLineCommentEnd
multi line comment delimiter end
Definition: nativeimportbase.h:118
void skipStmt(const QString &until=QLatin1String(";"))
Definition: nativeimportbase.cpp:82
UMLPackage * popScope()
Definition: nativeimportbase.cpp:153
virtual bool parseStmt()=0
QString m_multiLineCommentIntro
multi line comment delimiter intro
Definition: nativeimportbase.h:117
QString m_multiLineAltCommentIntro
Definition: nativeimportbase.h:123
NativeImportBase(const QString &singleLineCommentIntro, CodeImpThread *thread=0)
Definition: nativeimportbase.cpp:34
bool m_isAbstract
accumulator for abstractness
Definition: nativeimportbase.h:107
virtual ~NativeImportBase()
Definition: nativeimportbase.cpp:48
virtual QString advance()
Definition: nativeimportbase.cpp:198
virtual void fillSource(const QString &word)=0
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
Non-graphical information for a Package.
Definition: package.h:33
Enum
Definition: basictypes.h:59