KVIrc 5.2.6
Developer APIs
KviKvsParser.cpp File Reference
#include "KviKvsParser.h"
#include "KviKvsTreeNode.h"
#include "KviKvsReport.h"
#include "KviKvsKernel.h"
#include "KviKvsScript.h"
#include "KviKvsParserMacros.h"
#include "KviLocale.h"
#include "KviOptions.h"

Macros

#define _REG_CNTRL_CMD(__cntrlCmdName, __parsingRoutine)
 
#define LITERAL_PARAM_PARSING_FUNCTION_BEGIN(__funcname)
 
#define LITERAL_PARAM_PARSING_FUNCTION_END_WITH_EXPECTED_TERMINATOR
 
#define LITERAL_PARAM_PARSING_FUNCTION_GENERIC_END
 
#define LITERAL_PARAM_PARSING_FUNCTION_WARN_NESTED_TERMINATOR
 

Functions

 for (;;)
 
l setAutoDelete (true)
 

Variables

case __pad0__
 
 __pad1__
 
 __pad2__
 
end_of_the_hash_key __pad3__
 
 else
 
end_of_the_hash_key l
 
return nullptr
 
KviKvsTreeNodeDatap = l->first()
 
const QChar * pBegin = KVSP_curCharPointer
 

Macro Definition Documentation

◆ _REG_CNTRL_CMD

#define _REG_CNTRL_CMD ( __cntrlCmdName,
__parsingRoutine )
Value:
{ \
r->proc = KVI_PTR2MEMBER(KviKvsParser::__parsingRoutine); \
pKern->registerSpecialCommandParsingRoutine(QString(__cntrlCmdName), r); \
}
#define r
Definition detector.cpp:83
#define KVI_PTR2MEMBER(__x)
Definition kvi_settings.h:182
Definition KviKvsKernel.h:48
specialCommandParsingRoutine proc
Definition KviKvsKernel.h:49

Referenced by KviKvsParser::init().

◆ LITERAL_PARAM_PARSING_FUNCTION_BEGIN

#define LITERAL_PARAM_PARSING_FUNCTION_BEGIN ( __funcname)
Value:
KviKvsTreeNodeConstantData * KviKvsParser::__funcname() \
{ \
QString szValue; \
\
[[maybe_unused]] const QChar * pStart = KVSP_curCharPointer; \
const QChar * pBegin = KVSP_curCharPointer; \
int iLen = 0; \
[[maybe_unused]] int iNestedTerminators = 0; \
\
for(;;) \
{ \
{
#define KVSP_curCharUnicode
Definition KviKvsParserMacros.h:32
#define KVSP_curCharPointer
Definition KviKvsParserMacros.h:33
const QChar * pBegin
Definition KviKvsParser.cpp:3227
Definition KviKvsTreeNodeConstantData.h:32

◆ LITERAL_PARAM_PARSING_FUNCTION_END_WITH_EXPECTED_TERMINATOR

#define LITERAL_PARAM_PARSING_FUNCTION_END_WITH_EXPECTED_TERMINATOR
Value:
if(iNestedTerminators > 0) \
{ \
if(!_OUTPUT_MUTE) \
warning(KVSP_curCharPointer, __tr2qs_ctx("Skipping nested terminator character %q", "kvs"), KVSP_curCharPointer); \
iNestedTerminators--; \
iLen++; \
} \
else \
{ \
if(iLen > 0) \
szValue.append(QString(pBegin, iLen)); \
{ \
bool bOk; \
kvs_int_t iVal = szValue.toLong(&bOk); \
if(bOk) \
kvs_real_t dVal = szValue.toDouble(&bOk); \
if(bOk) \
} \
return new KviKvsTreeNodeConstantData(pBegin, new KviKvsVariant(szValue)); \
} \
break;
#define KVSP_skipChar
Definition KviKvsParserMacros.h:27
double kvs_real_t
Definition KviKvsTypes.h:35
kvi_i64_t kvs_int_t
Definition KviKvsTypes.h:33
#define __tr2qs_ctx(text, context)
Definition KviLocale.h:223
#define _OUTPUT_MUTE
Definition KviOptions.h:693
This class defines a new data type which contains variant data.
Definition KviKvsVariant.h:352

◆ LITERAL_PARAM_PARSING_FUNCTION_GENERIC_END

#define LITERAL_PARAM_PARSING_FUNCTION_GENERIC_END

◆ LITERAL_PARAM_PARSING_FUNCTION_WARN_NESTED_TERMINATOR

#define LITERAL_PARAM_PARSING_FUNCTION_WARN_NESTED_TERMINATOR
Value:
if(!_OUTPUT_MUTE) \
warning(KVSP_curCharPointer, __tr2qs_ctx("Nested character %q corresponding to expected terminator, this might confuse me a bit: it is a good idea to enclose it in quotes", "kvs"), KVSP_curCharPointer); \
iNestedTerminators++; \
iLen++; \
break;

Function Documentation

◆ for()

for ( ;; )

◆ setAutoDelete()

l setAutoDelete ( true )

Variable Documentation

◆ __pad0__

case __pad0__

◆ __pad1__

__pad1__

◆ __pad2__

__pad2__

◆ __pad3__

end_of_the_hash_key __pad3__

◆ else

else
Initial value:
{
l->setAutoDelete(false)
end_of_the_hash_key l
Definition KviKvsParser.cpp:3307

◆ l

delete l

◆ nullptr

return nullptr

Referenced by KviIrcView::getTextLine().

◆ p

return p = l->first()

◆ pBegin