KVIrc 5.2.4
Developer APIs
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)
 
KviKvsTreeNodeInstructionparse (const QChar *pBuffer, int iFlags=0)
 
KviKvsTreeNodeInstructionparseAsExpression (const QChar *pBuffer, int iFlags=0)
 
KviKvsTreeNodeInstructionparseAsParameter (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)
 
KviKvsTreeNodeDataparseAt (bool bInObjScope=false)
 
KviKvsTreeNodeOperationparseBindingOperation ()
 
KviKvsTreeNodeConstantDataparseBindingOperationLiteralParameter ()
 
KviKvsTreeNodeDataparseBindingOperationParameter ()
 
KviKvsTreeNodeCommandparseCommand ()
 
KviKvsTreeNodeConstantDataparseCommandLiteralParameter ()
 
KviKvsTreeNodeDataparseCommandParameter (bool bPreferNumeric=false)
 
KviKvsTreeNodeDataListparseCommandParameterList ()
 
KviKvsTreeNodeSwitchListparseCommandSwitchList ()
 
KviKvsTreeNodeConstantDataparseCommaSeparatedLiteralParameter ()
 
KviKvsTreeNodeDataparseCommaSeparatedParameter ()
 
KviKvsTreeNodeDataListparseCommaSeparatedParameterList ()
 
KviPointerList< QString > * parseCommaSeparatedParameterListNoTree ()
 
KviKvsTreeNodeparseComment ()
 
KviKvsTreeNodeDataparseDollar (bool bInObjScope=false)
 
KviKvsTreeNodeExpressionparseExpression (char terminator)
 
KviKvsTreeNodeExpressionBinaryOperatorparseExpressionBinaryOperator ()
 
bool parseExpressionMightPointToOperator ()
 
KviKvsTreeNodeExpressionparseExpressionOperand (char terminator)
 
KviKvsTreeNodeExpressionparseExpressionOperandCore (char terminator)
 
KviKvsTreeNodeDataparseHashKey ()
 
KviKvsTreeNodeConstantDataparseHashKeyLiteralParameter ()
 
KviKvsTreeNodeInstructionparseInstruction ()
 
KviKvsTreeNodeInstructionparseInstructionBlock ()
 
KviKvsTreeNodeInstructionparseInstructionList ()
 
KviKvsTreeNodeOperationparseOperation ()
 
KviKvsTreeNodeDataparseOperationRightSide (bool bPreferNumeric=false)
 
KviKvsTreeNodeDataparseParameterPercentOrDollar ()
 
KviKvsTreeNodeVariableparsePercent (bool bInObjectScope=false)
 
KviKvsTreeNodeDataparsePercentOrDollar (bool bInObjScope=false)
 
KviKvsTreeNodeConstantDataparseSingleLiteralParameterInParenthesis ()
 
KviKvsTreeNodeDataparseSingleParameterInParenthesis ()
 
KviKvsTreeNodeCommandparseSpecialCommandBreak ()
 
KviKvsTreeNodeCommandparseSpecialCommandClass ()
 
KviKvsTreeNodeCommandparseSpecialCommandContinue ()
 
KviKvsTreeNodeCommandparseSpecialCommandDefpopup ()
 
KviKvsTreeNodeSpecialCommandDefpopupLabelPopupparseSpecialCommandDefpopupLabelPopup ()
 
KviKvsTreeNodeCommandparseSpecialCommandDo ()
 
KviKvsTreeNodeCommandparseSpecialCommandFor ()
 
KviKvsTreeNodeCommandparseSpecialCommandForeach ()
 
KviKvsTreeNodeCommandparseSpecialCommandGlobal ()
 
KviKvsTreeNodeCommandparseSpecialCommandHelp ()
 
KviKvsTreeNodeCommandparseSpecialCommandIf ()
 
KviKvsTreeNodeCommandparseSpecialCommandPerlBegin ()
 
KviKvsTreeNodeCommandparseSpecialCommandPythonBegin ()
 
KviKvsTreeNodeCommandparseSpecialCommandSwitch ()
 
KviKvsTreeNodeCommandparseSpecialCommandUnset ()
 
KviKvsTreeNodeCommandparseSpecialCommandWhile ()
 
KviKvsTreeNodeConstantDataparseStringLiteralParameter ()
 
KviKvsTreeNodeDataparseStringParameter ()
 
KviKvsTreeNodeInstructionparseVoidFunctionCallOrOperation ()
 
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 = false
 
int m_iFlags = 0
 
const QChar * m_pBuffer = nullptr
 
KviPointerHashTable< QString, QString > * m_pGlobals
 
KviKvsScriptm_pScript
 
const QChar * m_ptr = nullptr
 
KviWindowm_pWindow
 

Friends

class KviKvsKernel
 

Member Enumeration Documentation

◆ Flags

Enumerator
AssumeLocals 
Pedantic 

Constructor & Destructor Documentation

◆ KviKvsParser()

KviKvsParser::KviKvsParser ( KviKvsScript pScript,
KviWindow pOutputWindow 
)

References m_pGlobals, m_pScript, and m_pWindow.

◆ ~KviKvsParser()

KviKvsParser::~KviKvsParser ( )

References m_pGlobals.

Member Function Documentation

◆ error() [1/2]

bool KviKvsParser::error ( ) const
inline

◆ error() [2/2]

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

◆ errorBadChar()

void KviKvsParser::errorBadChar ( const QChar *  pLocation,
char  cExpected,
const char *  szCommandName 
)
private

◆ init()

void KviKvsParser::init ( )
staticprotected

◆ parse()

KviKvsTreeNodeInstruction * KviKvsParser::parse ( const QChar *  pBuffer,
int  iFlags = 0 
)

◆ parseAsExpression()

KviKvsTreeNodeInstruction * KviKvsParser::parseAsExpression ( const QChar *  pBuffer,
int  iFlags = 0 
)

◆ parseAsParameter()

KviKvsTreeNodeInstruction * KviKvsParser::parseAsParameter ( const QChar *  pBuffer,
int  iFlags = 0 
)

◆ parseAt()

KviKvsTreeNodeData * KviKvsParser::parseAt ( bool  bInObjScope = false)
private

◆ parseBindingOperation()

KviKvsTreeNodeOperation * KviKvsParser::parseBindingOperation ( )
private

◆ parseBindingOperationLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseBindingOperationLiteralParameter ( )
private

◆ parseBindingOperationParameter()

KviKvsTreeNodeData * KviKvsParser::parseBindingOperationParameter ( )
private

◆ parseCommand()

KviKvsTreeNodeCommand * KviKvsParser::parseCommand ( )
private

◆ parseCommandLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseCommandLiteralParameter ( )
private

Referenced by parseCommandParameter().

◆ parseCommandParameter()

KviKvsTreeNodeData * KviKvsParser::parseCommandParameter ( bool  bPreferNumeric = false)
private

◆ parseCommandParameterList()

KviKvsTreeNodeDataList * KviKvsParser::parseCommandParameterList ( )
private

◆ parseCommandSwitchList()

KviKvsTreeNodeSwitchList * KviKvsParser::parseCommandSwitchList ( )
private

◆ parseCommaSeparatedLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseCommaSeparatedLiteralParameter ( )
private

◆ parseCommaSeparatedParameter()

KviKvsTreeNodeData * KviKvsParser::parseCommaSeparatedParameter ( )
private

◆ parseCommaSeparatedParameterList()

KviKvsTreeNodeDataList * KviKvsParser::parseCommaSeparatedParameterList ( )
private

◆ parseCommaSeparatedParameterListNoTree()

KviPointerList< QString > * KviKvsParser::parseCommaSeparatedParameterListNoTree ( )
private

◆ parseComment()

KviKvsTreeNode * KviKvsParser::parseComment ( )
private

◆ parseDollar()

KviKvsTreeNodeData * KviKvsParser::parseDollar ( bool  bInObjScope = false)
private

◆ parseExpression()

KviKvsTreeNodeExpression * KviKvsParser::parseExpression ( char  terminator)
private

◆ parseExpressionBinaryOperator()

KviKvsTreeNodeExpressionBinaryOperator * KviKvsParser::parseExpressionBinaryOperator ( )
private

◆ parseExpressionMightPointToOperator()

bool KviKvsParser::parseExpressionMightPointToOperator ( )
private

◆ parseExpressionOperand()

KviKvsTreeNodeExpression * KviKvsParser::parseExpressionOperand ( char  terminator)
private

◆ parseExpressionOperandCore()

KviKvsTreeNodeExpression * KviKvsParser::parseExpressionOperandCore ( char  terminator)
private

◆ parseHashKey()

KviKvsTreeNodeData * KviKvsParser::parseHashKey ( )
private

Referenced by parsePercentOrDollar().

◆ parseHashKeyLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseHashKeyLiteralParameter ( )
private

◆ parseInstruction()

KviKvsTreeNodeInstruction * KviKvsParser::parseInstruction ( )
private

◆ parseInstructionBlock()

KviKvsTreeNodeInstruction * KviKvsParser::parseInstructionBlock ( )
private

◆ parseInstructionList()

KviKvsTreeNodeInstruction * KviKvsParser::parseInstructionList ( )
private

◆ parseOperation()

KviKvsTreeNodeOperation * KviKvsParser::parseOperation ( )
private

◆ parseOperationRightSide()

KviKvsTreeNodeData * KviKvsParser::parseOperationRightSide ( bool  bPreferNumeric = false)
private

◆ parseParameterPercentOrDollar()

KviKvsTreeNodeData * KviKvsParser::parseParameterPercentOrDollar ( )
private

◆ parsePercent()

KviKvsTreeNodeVariable * KviKvsParser::parsePercent ( bool  bInObjectScope = false)
private

◆ parsePercentOrDollar()

KviKvsTreeNodeData * KviKvsParser::parsePercentOrDollar ( bool  bInObjScope = false)
private

◆ parseSingleLiteralParameterInParenthesis()

KviKvsTreeNodeConstantData * KviKvsParser::parseSingleLiteralParameterInParenthesis ( )
private

◆ parseSingleParameterInParenthesis()

KviKvsTreeNodeData * KviKvsParser::parseSingleParameterInParenthesis ( )
private

◆ parseSpecialCommandBreak()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandBreak ( )
private

◆ parseSpecialCommandClass()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandClass ( )
private

◆ parseSpecialCommandContinue()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandContinue ( )
private

◆ parseSpecialCommandDefpopup()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandDefpopup ( )
private

◆ parseSpecialCommandDefpopupLabelPopup()

KviKvsTreeNodeSpecialCommandDefpopupLabelPopup * KviKvsParser::parseSpecialCommandDefpopupLabelPopup ( )
private

◆ parseSpecialCommandDo()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandDo ( )
private

◆ parseSpecialCommandFor()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandFor ( )
private

◆ parseSpecialCommandForeach()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandForeach ( )
private

◆ parseSpecialCommandGlobal()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandGlobal ( )
private

◆ parseSpecialCommandHelp()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandHelp ( )
private

◆ parseSpecialCommandIf()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandIf ( )
private

◆ parseSpecialCommandPerlBegin()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandPerlBegin ( )
private

Referenced by parseCommand().

◆ parseSpecialCommandPythonBegin()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandPythonBegin ( )
private

Referenced by parseCommand().

◆ parseSpecialCommandSwitch()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandSwitch ( )
private

◆ parseSpecialCommandUnset()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandUnset ( )
private

◆ parseSpecialCommandWhile()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandWhile ( )
private

◆ parseStringLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseStringLiteralParameter ( )
private

◆ parseStringParameter()

KviKvsTreeNodeData * KviKvsParser::parseStringParameter ( )
private

◆ parseVoidFunctionCallOrOperation()

KviKvsTreeNodeInstruction * KviKvsParser::parseVoidFunctionCallOrOperation ( )
private

◆ report()

void KviKvsParser::report ( bool  bError,
const QChar *  pLocation,
const QString &  szMsgFmt,
kvi_va_list  va 
)
private

◆ skipSpaces()

void KviKvsParser::skipSpaces ( )
private

◆ skipSpacesAndNewlines()

bool KviKvsParser::skipSpacesAndNewlines ( )
private

◆ skipToEndOfCStyleComment()

void KviKvsParser::skipToEndOfCStyleComment ( )
private

◆ skipToEndOfForControlBlock()

bool KviKvsParser::skipToEndOfForControlBlock ( )
private

◆ skipToNextLine()

void KviKvsParser::skipToNextLine ( )
private

References KVSP_curCharUnicode, and KVSP_skipChar.

Referenced by parseComment().

◆ warning()

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

Friends And Related Symbol Documentation

◆ KviKvsKernel

friend class KviKvsKernel
friend

Member Data Documentation

◆ m_bError

bool KviKvsParser::m_bError = false
private

◆ m_iFlags

int KviKvsParser::m_iFlags = 0
private

◆ m_pBuffer

const QChar* KviKvsParser::m_pBuffer = nullptr
private

◆ m_pGlobals

KviPointerHashTable<QString, QString>* KviKvsParser::m_pGlobals
private

◆ m_pScript

KviKvsScript* KviKvsParser::m_pScript
private

Referenced by KviKvsParser(), and report().

◆ m_ptr

const QChar* KviKvsParser::m_ptr = nullptr
private

◆ m_pWindow

KviWindow* KviKvsParser::m_pWindow
private

Referenced by KviKvsParser(), and report().


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