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 (Template *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>

Constructor & Destructor Documentation

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

Constructor.

Initialises the Parser with the tokenList.

Grantlee::Parser::~Parser ( )

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.

bool Grantlee::Parser::hasNextToken ( ) const

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 ( Template 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.

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.