|
Cutelee 6.1.0
|
The Parser class processes a string template into a tree of nodes. More...
#include <cutelee/parser.h>

Public Member Functions | |
| Parser (const QList< Token > &tokenList, QObject *parent) | |
| ~Parser () override | |
| std::shared_ptr< Filter > | getFilter (const QString &name) const |
| bool | hasNextToken () const |
| void | invalidBlockTag (const Token &token, const QString &command, const QStringList &stopAt={}) |
| NodeList | parse (Node *parent, const QString &stopAt) |
| NodeList | parse (Node *parent, const QStringList &stopAt={}) |
| NodeList | parse (TemplateImpl *parent, const QStringList &stopAt={}) |
| void | removeNextToken () |
| void | skipPast (const QString &tag) |
| Token | takeNextToken () |
| Public Member Functions inherited from QObject | |
| QObject (QObject *parent) | |
| bool | blockSignals (bool block) |
| const QObjectList & | children () const const |
| QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
| void | deleteLater () |
| void | destroyed (QObject *obj) |
| bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
| bool | disconnect (const QObject *receiver, const char *method) const const |
| void | dumpObjectInfo () |
| void | dumpObjectInfo () const const |
| void | dumpObjectTree () |
| void | dumpObjectTree () const const |
| QList< QByteArray > | dynamicPropertyNames () const const |
| virtual bool | event (QEvent *e) |
| virtual bool | eventFilter (QObject *watched, QEvent *event) |
| T | findChild (const QString &name, Qt::FindChildOptions options) const const |
| QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
| QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
| QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
| bool | inherits (const char *className) const const |
| void | installEventFilter (QObject *filterObj) |
| bool | isWidgetType () const const |
| bool | isWindowType () const const |
| void | killTimer (int id) |
| virtual const QMetaObject * | metaObject () const const |
| void | moveToThread (QThread *targetThread) |
| QString | objectName () const const |
| void | objectNameChanged (const QString &objectName, QPrivateSignal) |
| QObject * | parent () const const |
| QVariant | property (const char *name) const const |
| Q_CLASSINFO (Name, Value) | |
| Q_DISABLE_COPY (Class) | |
| Q_DISABLE_COPY_MOVE (Class) | |
| Q_DISABLE_MOVE (Class) | |
| Q_EMIT Q_EMIT | |
| Q_ENUM (...) | |
| Q_ENUM_NS (...) | |
| Q_ENUMS (...) | |
| Q_FLAG (...) | |
| Q_FLAG_NS (...) | |
| Q_FLAGS (...) | |
| Q_GADGET Q_GADGET | |
| Q_INTERFACES (...) | |
| Q_INVOKABLE Q_INVOKABLE | |
| Q_NAMESPACE Q_NAMESPACE | |
| Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
| Q_OBJECT Q_OBJECT | |
| Q_PROPERTY (...) | |
| Q_REVISION Q_REVISION | |
| Q_SET_OBJECT_NAME (Object) | |
| Q_SIGNAL Q_SIGNAL | |
| Q_SIGNALS Q_SIGNALS | |
| Q_SLOT Q_SLOT | |
| Q_SLOTS Q_SLOTS | |
| T | qFindChild (const QObject *obj, const QString &name) |
| QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
| QList< T > | qFindChildren (const QObject *obj, const QString &name) |
| T | qobject_cast (const QObject *object) |
| T | qobject_cast (QObject *object) |
| QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
| void | removeEventFilter (QObject *obj) |
| void | setObjectName (const QString &name) |
| void | setParent (QObject *parent) |
| bool | setProperty (const char *name, const QVariant &value) |
| bool | signalsBlocked () const const |
| int | startTimer (int interval, Qt::TimerType timerType) |
| int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
| QThread * | thread () const const |
Protected Member Functions | |
| void | prependToken (const Token &token) |
| Protected Member Functions inherited from QObject | |
| virtual void | childEvent (QChildEvent *event) |
| virtual void | connectNotify (const QMetaMethod &signal) |
| virtual void | customEvent (QEvent *event) |
| virtual void | disconnectNotify (const QMetaMethod &signal) |
| bool | isSignalConnected (const QMetaMethod &signal) const const |
| int | receivers (const char *signal) const const |
| QObject * | sender () const const |
| int | senderSignalIndex () const const |
| virtual void | timerEvent (QTimerEvent *event) |
Additional Inherited Members | |
| Static Public Member Functions inherited from QObject | |
| QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
| bool | disconnect (const QMetaObject::Connection &connection) |
| bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
| bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
| bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
| QString | tr (const char *sourceText, const char *disambiguation, int n) |
| QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
| Public Attributes inherited from QObject | |
| typedef | QObjectList |
| Properties inherited from QObject | |
| objectName | |
For application developers, this class is internal.
For template tag authors it may be necessary to advance the parser and process contained tags if the tag works in a tag – endtag fashion.
Constructor.
Initialises the Parser with the tokenList.
Definition at line 90 of file parser.cpp.
References Parser(), QObject::QObject(), Cutelee::Engine::defaultLibraries(), QObject::parent(), and QObject::qobject_cast().
Referenced by Parser(), getFilter(), hasNextToken(), parse(), parse(), prependToken(), removeNextToken(), and takeNextToken().
|
override |
Destructor.
Definition at line 111 of file parser.cpp.
Returns the filter object called name or an invalid object if no filter with that name is loaded.
Definition at line 157 of file parser.cpp.
References Parser().
Referenced by Cutelee::FilterExpression::FilterExpression().
| bool Parser::hasNextToken | ( | ) | const |
Returns whether the parser has another token to process.
Definition at line 285 of file parser.cpp.
References Parser().
Referenced by skipPast().
| void Parser::invalidBlockTag | ( | const Token & | token, |
| const QString & | command, | ||
| const QStringList & | stopAt = {} ) |
Definition at line 303 of file parser.cpp.
This is an overloaded method.
Definition at line 168 of file parser.cpp.
References Parser(), and QObject::parent().
| NodeList Parser::parse | ( | Node * | parent, |
| const QStringList & | stopAt = {} ) |
Advance the parser, using parent as the parent of new Nodes. The parser will stop if it encounters a tag which is contained in the list stopAt.
For example, the {% if %} tag would stopAt both {% endif %} and {% else %} tags.
Definition at line 180 of file parser.cpp.
References Parser(), and QObject::parent().
Referenced by AutoescapeNodeFactory::getNode(), BlockNodeFactory::getNode(), ExtendsNodeFactory::getNode(), FilterNodeFactory::getNode(), ForNodeFactory::getNode(), IfChangedNodeFactory::getNode(), IfNodeFactory::getNode(), RangeNodeFactory::getNode(), SpacelessNodeFactory::getNode(), WithLocaleNodeFactory::getNode(), and WithNodeFactory::getNode().
| NodeList Cutelee::Parser::parse | ( | TemplateImpl * | parent, |
| const QStringList & | stopAt = {} ) |
|
protected |
Puts the token token to the front of the list to be processed by the parser.
Definition at line 322 of file parser.cpp.
References Parser().
| void Parser::removeNextToken | ( | ) |
Deletes the next token available to the parser.
Definition at line 297 of file parser.cpp.
References Parser().
Referenced by AutoescapeNodeFactory::getNode(), FilterNodeFactory::getNode(), ForNodeFactory::getNode(), IfChangedNodeFactory::getNode(), RangeNodeFactory::getNode(), SpacelessNodeFactory::getNode(), WithLocaleNodeFactory::getNode(), and WithNodeFactory::getNode().
| void Parser::skipPast | ( | const QString & | tag | ) |
Advances the parser to the tag tag. This method is similar to parse, but it does not create nodes for tags encountered.
Definition at line 145 of file parser.cpp.
References Cutelee::BlockToken, hasNextToken(), and takeNextToken().
Referenced by CommentNodeFactory::getNode().
| Token Parser::takeNextToken | ( | ) |
Returns the next token to be processed by the parser. This can be examined in template tag implementations to determine why parsing stopped.
For example, if the {% if %} tag, parsing may stop at an {% else %} tag, in which case parsing should be restarted, or it could stop at an {% endif %} tag, in which case parsing is finished for that node.
Definition at line 291 of file parser.cpp.
References Parser().
Referenced by BlockNodeFactory::getNode(), ForNodeFactory::getNode(), IfChangedNodeFactory::getNode(), IfNodeFactory::getNode(), and skipPast().