Grantlee: Grantlee::Parser Class Reference

Grantlee 5.3.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:
[legend]

## 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)

## 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.