KVIrc 5.2.6
Developer APIs
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.

Referenced by KviKvsKernel, and parseSpecialCommandBreak().

◆ ~KviKvsParser()

KviKvsParser::~KviKvsParser ( )

References m_pGlobals.

Member Function Documentation

◆ error() [1/2]

◆ error() [2/2]

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

◆ errorBadChar()

◆ init()

◆ 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()

◆ parseBindingOperationLiteralParameter()

◆ parseBindingOperationParameter()

◆ parseCommand()

◆ parseCommandLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseCommandLiteralParameter ( )
private

Referenced by parseCommandParameter().

◆ parseCommandParameter()

◆ parseCommandParameterList()

◆ parseCommandSwitchList()

◆ parseCommaSeparatedLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseCommaSeparatedLiteralParameter ( )
private

◆ parseCommaSeparatedParameter()

◆ parseCommaSeparatedParameterList()

◆ parseCommaSeparatedParameterListNoTree()

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

◆ parseComment()

◆ parseDollar()

◆ parseExpression()

◆ parseExpressionBinaryOperator()

◆ parseExpressionMightPointToOperator()

bool KviKvsParser::parseExpressionMightPointToOperator ( )
private

◆ parseExpressionOperand()

◆ parseExpressionOperandCore()

◆ parseHashKey()

KviKvsTreeNodeData * KviKvsParser::parseHashKey ( )
private

Referenced by parsePercentOrDollar().

◆ parseHashKeyLiteralParameter()

◆ parseInstruction()

◆ parseInstructionBlock()

◆ parseInstructionList()

◆ parseOperation()

◆ parseOperationRightSide()

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

◆ parseParameterPercentOrDollar()

◆ parsePercent()

◆ parsePercentOrDollar()

◆ parseSingleLiteralParameterInParenthesis()

KviKvsTreeNodeConstantData * KviKvsParser::parseSingleLiteralParameterInParenthesis ( )
private

◆ parseSingleParameterInParenthesis()

◆ parseSpecialCommandBreak()

◆ parseSpecialCommandClass()

◆ parseSpecialCommandContinue()

◆ parseSpecialCommandDefpopup()

◆ parseSpecialCommandDefpopupLabelPopup()

◆ parseSpecialCommandDo()

◆ parseSpecialCommandFor()

◆ parseSpecialCommandForeach()

◆ parseSpecialCommandGlobal()

◆ parseSpecialCommandHelp()

◆ parseSpecialCommandIf()

◆ parseSpecialCommandPerlBegin()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandPerlBegin ( )
private

Referenced by parseCommand().

◆ parseSpecialCommandPythonBegin()

KviKvsTreeNodeCommand * KviKvsParser::parseSpecialCommandPythonBegin ( )
private

◆ parseSpecialCommandSwitch()

◆ parseSpecialCommandUnset()

◆ parseSpecialCommandWhile()

◆ parseStringLiteralParameter()

KviKvsTreeNodeConstantData * KviKvsParser::parseStringLiteralParameter ( )
private

◆ parseStringParameter()

◆ parseVoidFunctionCallOrOperation()

◆ report()

◆ skipSpaces()

◆ skipSpacesAndNewlines()

◆ skipToEndOfCStyleComment()

◆ skipToEndOfForControlBlock()

bool KviKvsParser::skipToEndOfForControlBlock ( )
private

◆ skipToNextLine()

void KviKvsParser::skipToNextLine ( )
private

References KVSP_curCharUnicode, and KVSP_skipChar.

Referenced by parseComment().

◆ warning()

Friends And Related Symbol Documentation

◆ KviKvsKernel

friend class KviKvsKernel
friend

References KviKvsKernel, and KviKvsParser().

Referenced by init(), and KviKvsKernel.

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

◆ 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: