Grantlee
5.2.0
|
The Parser class processes a string template into a tree of nodes. More...
#include <grantlee/parser.h>
Public Member Functions | |
Parser (const QList< Token > &tokenList, QObject *parent) | |
~Parser () override | |
QSharedPointer< 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 () |
Protected Member Functions | |
void | prependToken (const Token &token) |
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.
Grantlee::Parser::Parser | ( | const QList< Token > & | tokenList, |
QObject * | parent | ||
) |
Constructor.
Initialises the Parser with the tokenList
.
|
override |
Destructor.
QSharedPointer<Filter> Grantlee::Parser::getFilter | ( | const QString & | name | ) | const |
Returns the filter object called name
or an invalid object if no filter with that name is loaded.
bool Grantlee::Parser::hasNextToken | ( | ) | const |
Returns whether the parser has another token to process.
This is an overloaded method.
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.
NodeList Grantlee::Parser::parse | ( | TemplateImpl * | parent, |
const QStringList & | stopAt = {} |
||
) |
This is an overloaded method.
|
protected |
Puts the token token
to the front of the list to be processed by the parser.
void Grantlee::Parser::removeNextToken | ( | ) |
Deletes the next token available to the parser.
void Grantlee::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.
Token Grantlee::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.