Grantlee  5.2.0
Public Member Functions | Protected Member Functions | List of all members
Grantlee::Parser Class Reference

The Parser class processes a string template into a tree of nodes. More...

#include <grantlee/parser.h>

Inheritance diagram for Grantlee::Parser:
Inheritance graph
[legend]

Public Member Functions

 Parser (const QList< Token > &tokenList, QObject *parent)
 
 ~Parser () override
 
QSharedPointer< FiltergetFilter (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)
 

Detailed Description

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.

Author
Stephen Kelly steve.nosp@m.ire@.nosp@m.gmail.nosp@m..com

Definition at line 48 of file parser.h.

Constructor & Destructor Documentation

◆ Parser()

Grantlee::Parser::Parser ( const QList< Token > &  tokenList,
QObject *  parent 
)

Constructor.

Initialises the Parser with the tokenList.

◆ ~Parser()

Grantlee::Parser::~Parser ( )
override

Destructor.

Member Function Documentation

◆ getFilter()

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.

◆ hasNextToken()

bool Grantlee::Parser::hasNextToken ( ) const

Returns whether the parser has another token to process.

◆ parse() [1/3]

NodeList Grantlee::Parser::parse ( Node parent,
const QString &  stopAt 
)

This is an overloaded method.

See also
parse.

◆ parse() [2/3]

NodeList Grantlee::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.

See also
AbstractNodeFactory::getNode

◆ parse() [3/3]

NodeList Grantlee::Parser::parse ( TemplateImpl *  parent,
const QStringList &  stopAt = {} 
)

This is an overloaded method.

See also
parse.

◆ prependToken()

void Grantlee::Parser::prependToken ( const Token token)
protected

Puts the token token to the front of the list to be processed by the parser.

◆ removeNextToken()

void Grantlee::Parser::removeNextToken ( )

Deletes the next token available to the parser.

◆ skipPast()

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.

◆ takeNextToken()

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.