KHTML
Go to the documentation of this file.
40 case MULOP:
return QString(
"MULOP[%1]" ).arg( xpathyylval.num );
41 case MINUS:
return "MINUS";
42 case PLUS:
return "PLUS";
43 case RELOP:
return QString(
"RELOP[%1]" ).arg( xpathyylval.num );
44 case EQOP:
return QString(
"EQOP[%1]" ).arg( xpathyylval.num );
45 case AND:
return "AND";
47 case AXISNAME:
return QString(
"AXISNAME['%1']" ).arg( Step::axisAsString( xpathyylval.axisType ) );
48 case NODETYPE:
return QString(
"NODETYPE['%1']" ).arg( *xpathyylval.str );
50 case FUNCTIONNAME:
return QString(
"FUNCTIONNAME['%1']" ).arg( *xpathyylval.str );
51 case LITERAL:
return QString(
"LITERAL['%1']" ).arg( *xpathyylval.str );
52 case VARIABLEREFERENCE:
return QString(
"VARIABLEREFERENCE['%1']" ).arg( *xpathyylval.str );
53 case NAMETEST:
return QString(
"NAMETEST['%1']" ).arg( *xpathyylval.str );
54 case NUMBER:
return QString(
"NUMBER['%1']" ).arg( *xpathyylval.str );
55 case DOTDOT:
return "DOTDOT";
57 case ERROR:
return "ERROR";
60 return QString(
"'%1'" ).arg(
char( token ) );
67 QStringList tokenStrings;
69 while ( token != 0 ) {
74 return tokenStrings.join(
" " );
77void check(
const QString &statement,
const QString &expected )
80 if ( result != expected ) {
81 qDebug() <<
"ERROR: failed to tokenizer " << statement <<
" as expected";
82 qDebug() <<
"Expected: " << expected;
83 qDebug() <<
"Got : " << result;
90 check(
"child ::book",
91 "AXISNAME['child'] NAMETEST['book']" );
92 check(
"/this/and/that",
93 "'/' NAMETEST['this'] '/' NAMETEST['and'] '/' NAMETEST['that']" );
94 check(
"self::self/book[@and=\"and\" and true( \t\t) ]",
95 "AXISNAME['self'] NAMETEST['self'] '/' NAMETEST['book'] '[' '@' NAMETEST['and'] EQOP[1] LITERAL['and'] AND FUNCTIONNAME['true'] '(' ')' ']'" );
96 check(
"123 . .43 31. 3131.22 2.2.2",
97 "NUMBER['123'] '.' NUMBER['.43'] NUMBER['31.'] NUMBER['3131.22'] NUMBER['2.2'] NUMBER['.2']" );
98 check(
"/or/and[\"and\" and 'or\"' ]",
99 "'/' NAMETEST['or'] '/' NAMETEST['and'] '[' LITERAL['and'] AND LITERAL['or\"'] ']'" );
100 check(
"self ::node ( )[true ( )]",
101 "AXISNAME['self'] NODETYPE['node'] '(' ')' '[' FUNCTIONNAME['true'] '(' ')' ']'" );
103 const QChar alpha( 0x03B1 );
104 check( QString(
"self::" ) + alpha + alpha + alpha,
105 QString(
"AXISNAME['self'] NAMETEST['" ) + alpha + alpha + alpha +
"']" );
107 check(
"this[substring-after(\"Name=Joe\", \"=\" )=\"Joe\"]",
108 "NAMETEST['this'] '[' FUNCTIONNAME['substring-after'] '(' LITERAL['Name=Joe'] ',' LITERAL['='] ')' EQOP[1] LITERAL['Joe'] ']'" );
109 check(
"child::processing-instruction()",
110 "AXISNAME['child'] PI '(' ')'" );
111 check(
"child::processing-instruction(\"yadda\")",
112 "AXISNAME['child'] PI '(' LITERAL['yadda'] ')'" );
115 check(
"comment() | text() | processing-instruction() | node()",
116 "NODETYPE['comment'] '(' ')' '|' NODETYPE['text'] '(' ')' '|' PI '(' ')' '|' NODETYPE['node'] '(' ')'" );
void check(const QString &statement, const QString &expected)
void initTokenizer(QString s)
QString getTokenString(const QString &s)
QString tokenAsString(yytokentype token)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by
doxygen 1.9.6 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.