Grantlee  0.2.0
Public Member Functions | Protected Member Functions
Grantlee::Parser Class Reference

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

#include <grantlee/parser.h>

List of all members.

Public Member Functions

 Parser (const QList< Token > &tokenList, QObject *parent)
 ~Parser ()
Filter::Ptr getFilter (const QString &name) const
bool hasNextToken () const
NodeList parse (Node *parent, const QStringList &stopAt=QStringList())
NodeList parse (TemplateImpl *parent, const QStringList &stopAt=QStringList())
NodeList parse (Node *parent, const QString &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 <steveire@gmail.com>

Definition at line 48 of file parser.h.


Constructor & Destructor Documentation

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

Constructor.

Initialises the Parser with the tokenList.

Destructor.


Member Function Documentation

Filter::Ptr 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.

Returns whether the parser has another token to process.

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

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
NodeList Grantlee::Parser::parse ( TemplateImpl *  parent,
const QStringList &  stopAt = QStringList() 
)

This is an overloaded method.

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

This is an overloaded method.

See also:
parse.
void Grantlee::Parser::prependToken ( const Token token) [protected]

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

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.

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.