KVIrc  4.9.2
DeveloperAPIs
Public Types | Public Member Functions | Static Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
KviKvsParser Class Reference

#include <KviKvsParser.h>

Public Types

enum  Flags { AssumeLocals = 1, Pedantic = 2 }
 

Public Member Functions

bool error () const
 
 KviKvsParser (KviKvsScript *pScript, KviWindow *pOutputWindow)
 
KviKvsTreeNodeInstruction * parse (const QChar *pBuffer, int iFlags=0)
 
KviKvsTreeNodeInstruction * parseAsExpression (const QChar *pBuffer, int iFlags=0)
 
KviKvsTreeNodeInstruction * parseAsParameter (const QChar *pBuffer, int iFlags=0)
 
 ~KviKvsParser ()
 

Static Protected Member Functions

static void init ()
 

Private Member Functions

void error (const QChar *pLocation, QString szMsgFmt,...)
 
void errorBadChar (const QChar *pLocation, char cExpected, const char *szCommandName)
 
KviKvsTreeNodeData * parseAt (bool bInObjScope=false)
 
KviKvsTreeNodeOperation * parseBindingOperation ()
 
KviKvsTreeNodeConstantData * parseBindingOperationLiteralParameter ()
 
KviKvsTreeNodeData * parseBindingOperationParameter ()
 
KviKvsTreeNodeCommand * parseCommand ()
 
KviKvsTreeNodeConstantData * parseCommandLiteralParameter ()
 
KviKvsTreeNodeData * parseCommandParameter (bool bPreferNumeric=false)
 
KviKvsTreeNodeDataList * parseCommandParameterList ()
 
KviKvsTreeNodeSwitchList * parseCommandSwitchList ()
 
KviKvsTreeNodeConstantData * parseCommaSeparatedLiteralParameter ()
 
KviKvsTreeNodeData * parseCommaSeparatedParameter ()
 
KviKvsTreeNodeDataList * parseCommaSeparatedParameterList ()
 
KviPointerList< QString > * parseCommaSeparatedParameterListNoTree ()
 
KviKvsTreeNode * parseComment ()
 
KviKvsTreeNodeData * parseDollar (bool bInObjScope=false)
 
KviKvsTreeNodeExpression * parseExpression (char terminator)
 
KviKvsTreeNodeExpressionBinaryOperator * parseExpressionBinaryOperator ()
 
bool parseExpressionMightPointToOperator ()
 
KviKvsTreeNodeExpression * parseExpressionOperand (char terminator)
 
KviKvsTreeNodeExpression * parseExpressionOperandCore (char terminator)
 
KviKvsTreeNodeData * parseHashKey ()
 
KviKvsTreeNodeConstantData * parseHashKeyLiteralParameter ()
 
KviKvsTreeNodeInstruction * parseInstruction ()
 
KviKvsTreeNodeInstruction * parseInstructionBlock ()
 
KviKvsTreeNodeInstruction * parseInstructionList ()
 
KviKvsTreeNodeOperation * parseOperation ()
 
KviKvsTreeNodeData * parseOperationRightSide (bool bPreferNumeric=false)
 
KviKvsTreeNodeData * parseParameterPercentOrDollar ()
 
KviKvsTreeNodeVariable * parsePercent (bool bInObjectScope=false)
 
KviKvsTreeNodeData * parsePercentOrDollar (bool bInObjScope=false)
 
KviKvsTreeNodeConstantData * parseSingleLiteralParameterInParenthesis ()
 
KviKvsTreeNodeData * parseSingleParameterInParenthesis ()
 
KviKvsTreeNodeCommand * parseSpecialCommandBreak ()
 
KviKvsTreeNodeCommand * parseSpecialCommandClass ()
 
KviKvsTreeNodeCommand * parseSpecialCommandContinue ()
 
KviKvsTreeNodeCommand * parseSpecialCommandDefpopup ()
 
KviKvsTreeNodeSpecialCommandDefpopupLabelPopup * parseSpecialCommandDefpopupLabelPopup ()
 
KviKvsTreeNodeCommand * parseSpecialCommandDo ()
 
KviKvsTreeNodeCommand * parseSpecialCommandFor ()
 
KviKvsTreeNodeCommand * parseSpecialCommandForeach ()
 
KviKvsTreeNodeCommand * parseSpecialCommandGlobal ()
 
KviKvsTreeNodeCommand * parseSpecialCommandHelp ()
 
KviKvsTreeNodeCommand * parseSpecialCommandIf ()
 
KviKvsTreeNodeCommand * parseSpecialCommandPerlBegin ()
 
KviKvsTreeNodeCommand * parseSpecialCommandPythonBegin ()
 
KviKvsTreeNodeCommand * parseSpecialCommandSwitch ()
 
KviKvsTreeNodeCommand * parseSpecialCommandUnset ()
 
KviKvsTreeNodeCommand * parseSpecialCommandWhile ()
 
KviKvsTreeNodeConstantData * parseStringLiteralParameter ()
 
KviKvsTreeNodeData * parseStringParameter ()
 
KviKvsTreeNodeInstruction * parseVoidFunctionCallOrOperation ()
 
void report (bool bError, const QChar *pLocation, const QString &szMsgFmt, kvi_va_list va)
 
void skipSpaces ()
 
bool skipSpacesAndNewlines ()
 
void skipToEndOfCStyleComment ()
 
bool skipToEndOfForControlBlock ()
 
void skipToNextLine ()
 
void warning (const QChar *pLocation, QString szMsgFmt,...)
 

Private Attributes

bool m_bError
 
int m_iFlags
 
const QChar * m_pBuffer
 
KviPointerHashTable< QString,
QString > * 
m_pGlobals
 
KviKvsScript * m_pScript
 
const QChar * m_ptr
 
KviWindow * m_pWindow
 

Friends

class KviKvsKernel
 

Member Enumeration Documentation

Enumerator
AssumeLocals 
Pedantic 

Constructor & Destructor Documentation

KviKvsParser::KviKvsParser ( KviKvsScript *  pScript,
KviWindow *  pOutputWindow 
)

References m_pGlobals, m_pScript, and m_pWindow.

KviKvsParser::~KviKvsParser ( )

References m_pGlobals.

Member Function Documentation

bool KviKvsParser::error ( ) const
inline
void KviKvsParser::error ( const QChar *  pLocation,
QString  szMsgFmt,
  ... 
)
private
void KviKvsParser::errorBadChar ( const QChar *  pLocation,
char  cExpected,
const char *  szCommandName 
)
private
void KviKvsParser::init ( )
staticprotected
KviKvsTreeNodeInstruction * KviKvsParser::parse ( const QChar *  pBuffer,
int  iFlags = 0 
)
KviKvsTreeNodeInstruction * KviKvsParser::parseAsExpression ( const QChar *  pBuffer,
int  iFlags = 0 
)
KviKvsTreeNodeInstruction * KviKvsParser::parseAsParameter ( const QChar *  pBuffer,
int  iFlags = 0 
)
KviKvsTreeNodeData* KviKvsParser::parseAt ( bool  bInObjScope = false)
private
KviKvsTreeNodeOperation * KviKvsParser::parseBindingOperation ( )
private
KviKvsTreeNodeConstantData* KviKvsParser::parseBindingOperationLiteralParameter ( )
private
KviKvsTreeNodeData * KviKvsParser::parseBindingOperationParameter ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseCommand ( )
private
KviKvsTreeNodeConstantData* KviKvsParser::parseCommandLiteralParameter ( )
private
KviKvsTreeNodeData* KviKvsParser::parseCommandParameter ( bool  bPreferNumeric = false)
private
KviKvsTreeNodeDataList * KviKvsParser::parseCommandParameterList ( )
private
KviKvsTreeNodeSwitchList * KviKvsParser::parseCommandSwitchList ( )
private
KviKvsTreeNodeConstantData* KviKvsParser::parseCommaSeparatedLiteralParameter ( )
private
KviKvsTreeNodeData* KviKvsParser::parseCommaSeparatedParameter ( )
private
KviKvsTreeNodeDataList * KviKvsParser::parseCommaSeparatedParameterList ( )
private
KviPointerList< QString > * KviKvsParser::parseCommaSeparatedParameterListNoTree ( )
private
KviKvsTreeNode * KviKvsParser::parseComment ( )
private
KviKvsTreeNodeData * KviKvsParser::parseDollar ( bool  bInObjScope = false)
private
KviKvsTreeNodeExpression * KviKvsParser::parseExpression ( char  terminator)
private
KviKvsTreeNodeExpressionBinaryOperator * KviKvsParser::parseExpressionBinaryOperator ( )
private
bool KviKvsParser::parseExpressionMightPointToOperator ( )
private
KviKvsTreeNodeExpression * KviKvsParser::parseExpressionOperand ( char  terminator)
private
KviKvsTreeNodeExpression * KviKvsParser::parseExpressionOperandCore ( char  terminator)
private
KviKvsTreeNodeData* KviKvsParser::parseHashKey ( )
private

Referenced by parsePercentOrDollar().

KviKvsTreeNodeConstantData* KviKvsParser::parseHashKeyLiteralParameter ( )
private
KviKvsTreeNodeInstruction * KviKvsParser::parseInstruction ( )
private
KviKvsTreeNodeInstruction * KviKvsParser::parseInstructionBlock ( )
private
KviKvsTreeNodeInstruction * KviKvsParser::parseInstructionList ( )
private
KviKvsTreeNodeOperation * KviKvsParser::parseOperation ( )
private
KviKvsTreeNodeData * KviKvsParser::parseOperationRightSide ( bool  bPreferNumeric = false)
private
KviKvsTreeNodeData * KviKvsParser::parseParameterPercentOrDollar ( )
private
KviKvsTreeNodeVariable * KviKvsParser::parsePercent ( bool  bInObjectScope = false)
private
KviKvsTreeNodeData * KviKvsParser::parsePercentOrDollar ( bool  bInObjScope = false)
private
KviKvsTreeNodeConstantData* KviKvsParser::parseSingleLiteralParameterInParenthesis ( )
private
KviKvsTreeNodeData* KviKvsParser::parseSingleParameterInParenthesis ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandBreak ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandClass ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandContinue ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandDefpopup ( )
private
KviKvsTreeNodeSpecialCommandDefpopupLabelPopup * KviKvsParser::parseSpecialCommandDefpopupLabelPopup ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandDo ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandFor ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandForeach ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandGlobal ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandHelp ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandIf ( )
private
KviKvsTreeNodeCommand* KviKvsParser::parseSpecialCommandPerlBegin ( )
private

Referenced by parseCommand().

KviKvsTreeNodeCommand* KviKvsParser::parseSpecialCommandPythonBegin ( )
private

Referenced by parseCommand().

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandSwitch ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandUnset ( )
private
KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandWhile ( )
private
KviKvsTreeNodeConstantData* KviKvsParser::parseStringLiteralParameter ( )
private
KviKvsTreeNodeData* KviKvsParser::parseStringParameter ( )
private
KviKvsTreeNodeInstruction * KviKvsParser::parseVoidFunctionCallOrOperation ( )
private
void KviKvsParser::report ( bool  bError,
const QChar *  pLocation,
const QString &  szMsgFmt,
kvi_va_list  va 
)
private
void KviKvsParser::skipSpaces ( )
private
bool KviKvsParser::skipSpacesAndNewlines ( )
private
void KviKvsParser::skipToEndOfCStyleComment ( )
private
bool KviKvsParser::skipToEndOfForControlBlock ( )
private
void KviKvsParser::skipToNextLine ( )
private

References KVSP_curCharUnicode, and KVSP_skipChar.

Referenced by parseComment().

void KviKvsParser::warning ( const QChar *  pLocation,
QString  szMsgFmt,
  ... 
)
private

Friends And Related Function Documentation

friend class KviKvsKernel
friend

Member Data Documentation

bool KviKvsParser::m_bError
private
int KviKvsParser::m_iFlags
private
const QChar* KviKvsParser::m_pBuffer
private
KviPointerHashTable<QString, QString>* KviKvsParser::m_pGlobals
private
KviKvsScript* KviKvsParser::m_pScript
private

Referenced by KviKvsParser(), and report().

const QChar* KviKvsParser::m_ptr
private
KviWindow* KviKvsParser::m_pWindow
private

Referenced by KviKvsParser(), and report().


The documentation for this class was generated from the following files: