diff options
author | Liang Qi <liang.qi@qt.io> | 2018-02-23 10:04:56 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-02-23 11:28:24 +0000 |
commit | 3fcedcbabbd488e9b20e84e56877f6ba2f7aea73 (patch) | |
tree | d9bdaf990236793cf8fb71b64386dbdf75ffe021 /src/corelib/xml | |
parent | 5cfd5fd9d7ece7e1eb3c4d2be8ec342b376acf38 (diff) |
Reapply 403343039d07812c0beee9260b291f86e14d8ac4 on 5.11
This change amends 305dd1b61f657474d751cc3b24f58249ec21b61b, which lost
40334303 and brought src/corelib/xml/qxmlstream_p.h back. In
a6b697ca13945a174cff9f3e9b1af1cf61c0bea5, it was moved to
src/corelib/serialization/qxmlstream_p.h in 5.11.
Change-Id: Ia1e9841b866ff49f7274b1b13fd224c0a20a017e
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/corelib/xml')
-rw-r--r-- | src/corelib/xml/qxmlstream_p.h | 1966 |
1 files changed, 0 insertions, 1966 deletions
diff --git a/src/corelib/xml/qxmlstream_p.h b/src/corelib/xml/qxmlstream_p.h deleted file mode 100644 index e6c89e40cd..0000000000 --- a/src/corelib/xml/qxmlstream_p.h +++ /dev/null @@ -1,1966 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of other Qt classes. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtCore/private/qglobal_p.h> - -// This file was generated by qlalr - DO NOT EDIT! -#ifndef QXMLSTREAM_P_H -#define QXMLSTREAM_P_H - -#if defined(ERROR) -# undef ERROR -#endif - -class QXmlStreamReader_Table -{ -public: - enum VariousConstants { - EOF_SYMBOL = 0, - AMPERSAND = 5, - ANY = 41, - ATTLIST = 31, - BANG = 25, - CDATA = 47, - CDATA_START = 28, - COLON = 17, - COMMA = 19, - DASH = 20, - DBLQUOTE = 8, - DIGIT = 27, - DOCTYPE = 29, - DOT = 23, - ELEMENT = 30, - EMPTY = 40, - ENTITIES = 51, - ENTITY = 32, - ENTITY_DONE = 45, - EQ = 14, - ERROR = 43, - FIXED = 39, - HASH = 6, - ID = 48, - IDREF = 49, - IDREFS = 50, - IMPLIED = 38, - LANGLE = 3, - LBRACK = 9, - LETTER = 26, - LPAREN = 11, - NDATA = 36, - NMTOKEN = 52, - NMTOKENS = 53, - NOTATION = 33, - NOTOKEN = 1, - PARSE_ENTITY = 44, - PCDATA = 42, - PERCENT = 15, - PIPE = 13, - PLUS = 21, - PUBLIC = 35, - QUESTIONMARK = 24, - QUOTE = 7, - RANGLE = 4, - RBRACK = 10, - REQUIRED = 37, - RPAREN = 12, - SEMICOLON = 18, - SHIFT_THERE = 56, - SLASH = 16, - SPACE = 2, - STAR = 22, - SYSTEM = 34, - UNRESOLVED_ENTITY = 46, - VERSION = 55, - XML = 54, - - ACCEPT_STATE = 416, - RULE_COUNT = 270, - STATE_COUNT = 427, - TERMINAL_COUNT = 57, - NON_TERMINAL_COUNT = 84, - - GOTO_INDEX_OFFSET = 427, - GOTO_INFO_OFFSET = 1017, - GOTO_CHECK_OFFSET = 1017 - }; - - static const char *const spell []; - static const short lhs []; - static const short rhs []; - static const short goto_default []; - static const short action_default []; - static const short action_index []; - static const short action_info []; - static const short action_check []; - - static inline int nt_action (int state, int nt) - { - const int yyn = action_index [GOTO_INDEX_OFFSET + state] + nt; - if (yyn < 0 || action_check [GOTO_CHECK_OFFSET + yyn] != nt) - return goto_default [nt]; - - return action_info [GOTO_INFO_OFFSET + yyn]; - } - - static inline int t_action (int state, int token) - { - const int yyn = action_index [state] + token; - - if (yyn < 0 || action_check [yyn] != token) - return - action_default [state]; - - return action_info [yyn]; - } -}; - - -const char *const QXmlStreamReader_Table::spell [] = { - "end of file", 0, " ", "<", ">", "&", "#", "\'", "\"", "[", - "]", "(", ")", "|", "=", "%", "/", ":", ";", ",", - "-", "+", "*", ".", "?", "!", "[a-zA-Z]", "[0-9]", "[CDATA[", "DOCTYPE", - "ELEMENT", "ATTLIST", "ENTITY", "NOTATION", "SYSTEM", "PUBLIC", "NDATA", "REQUIRED", "IMPLIED", "FIXED", - "EMPTY", "ANY", "PCDATA", 0, 0, 0, 0, "CDATA", "ID", "IDREF", - "IDREFS", "ENTITIES", "NMTOKEN", "NMTOKENS", "<?xml", "version", 0}; - -const short QXmlStreamReader_Table::lhs [] = { - 57, 57, 59, 59, 59, 59, 59, 59, 59, 59, - 67, 68, 64, 72, 72, 72, 75, 66, 66, 66, - 66, 79, 78, 80, 80, 80, 80, 80, 80, 80, - 81, 81, 81, 81, 81, 81, 81, 87, 83, 88, - 88, 88, 88, 91, 92, 93, 93, 93, 93, 94, - 94, 96, 96, 96, 97, 97, 98, 98, 99, 99, - 100, 100, 89, 89, 95, 90, 101, 101, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 104, 105, - 105, 105, 105, 107, 108, 109, 109, 84, 84, 110, - 110, 112, 112, 85, 85, 85, 65, 65, 76, 114, - 63, 115, 116, 86, 86, 86, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, - 118, 119, 119, 119, 119, 119, 119, 119, 119, 122, - 70, 70, 70, 70, 123, 124, 123, 124, 123, 124, - 123, 124, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 125, 73, 113, 113, 113, 113, - 127, 128, 127, 128, 127, 128, 127, 128, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 106, 106, 106, 106, 131, 132, 131, - 132, 131, 131, 132, 132, 133, 133, 133, 133, 135, - 71, 71, 71, 136, 136, 137, 62, 60, 61, 138, - 121, 82, 130, 134, 120, 139, 139, 139, 139, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 74, - 69, 69, 77, 111, 102, 102, 102, 102, 102, 140}; - -const short QXmlStreamReader_Table::rhs [] = { - 2, 1, 4, 2, 2, 2, 2, 2, 2, 0, - 1, 1, 9, 2, 4, 0, 4, 4, 6, 6, - 4, 1, 3, 1, 1, 1, 2, 2, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, - 1, 1, 1, 1, 2, 1, 1, 1, 0, 2, - 2, 2, 6, 6, 1, 5, 1, 5, 3, 5, - 0, 1, 6, 8, 4, 2, 1, 5, 1, 1, - 1, 1, 1, 1, 1, 1, 6, 7, 1, 2, - 2, 1, 4, 3, 3, 1, 2, 5, 6, 4, - 6, 3, 5, 5, 3, 4, 4, 5, 2, 3, - 2, 2, 4, 5, 5, 7, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, - 2, 2, 3, 3, 2, 2, 2, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 3, 3, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, - 0, 1, 3, 1, 3, 2, 4, 3, 5, 1, - 3, 3, 3, 3, 4, 1, 1, 2, 2, 2, - 4, 2, 2, 2, 2, 2, 2, 2, 0, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 2}; - -const short QXmlStreamReader_Table::action_default [] = { - 10, 259, 0, 2, 1, 0, 125, 117, 119, 120, - 127, 129, 123, 11, 114, 108, 0, 109, 128, 111, - 115, 113, 121, 124, 126, 107, 110, 112, 118, 116, - 131, 122, 240, 12, 254, 136, 250, 253, 0, 130, - 140, 257, 16, 252, 138, 137, 0, 256, 139, 259, - 231, 258, 255, 0, 0, 264, 0, 247, 246, 0, - 249, 248, 245, 241, 99, 263, 0, 236, 0, 0, - 260, 97, 98, 101, 0, 132, 134, 133, 135, 0, - 0, 261, 0, 0, 176, 0, 173, 165, 167, 168, - 142, 154, 171, 162, 156, 157, 153, 159, 163, 161, - 169, 172, 152, 155, 158, 160, 166, 164, 174, 170, - 150, 175, 0, 144, 148, 146, 151, 141, 149, 0, - 147, 143, 145, 0, 15, 14, 262, 0, 22, 21, - 261, 30, 0, 20, 0, 0, 32, 37, 31, 0, - 33, 261, 0, 34, 0, 24, 0, 35, 0, 26, - 36, 25, 0, 242, 41, 40, 261, 43, 49, 261, - 42, 0, 44, 261, 49, 261, 0, 261, 0, 49, - 0, 48, 46, 47, 51, 52, 261, 261, 0, 57, - 261, 54, 261, 0, 58, 0, 55, 261, 53, 261, - 0, 56, 65, 0, 261, 61, 261, 0, 59, 62, - 63, 0, 261, 0, 0, 60, 64, 45, 50, 66, - 0, 39, 0, 0, 261, 0, 94, 95, 0, 0, - 0, 0, 261, 0, 210, 201, 203, 205, 178, 190, - 208, 199, 193, 191, 194, 189, 196, 198, 206, 209, - 188, 192, 195, 197, 202, 200, 204, 207, 211, 213, - 212, 186, 0, 0, 243, 180, 184, 182, 0, 0, - 93, 187, 177, 185, 0, 183, 179, 181, 92, 0, - 96, 0, 0, 0, 0, 0, 261, 86, 261, 0, - 262, 0, 87, 0, 89, 69, 74, 73, 70, 71, - 72, 261, 75, 76, 0, 0, 0, 269, 268, 266, - 267, 265, 67, 261, 0, 261, 0, 0, 68, 77, - 261, 0, 261, 0, 0, 78, 0, 79, 0, 82, - 85, 0, 0, 215, 225, 224, 0, 227, 229, 228, - 226, 0, 244, 217, 221, 219, 223, 214, 222, 0, - 220, 216, 218, 0, 81, 80, 0, 83, 0, 84, - 88, 100, 0, 38, 0, 0, 0, 0, 91, 90, - 0, 103, 23, 27, 29, 28, 0, 0, 261, 262, - 0, 261, 0, 106, 105, 261, 0, 104, 102, 0, - 0, 18, 261, 17, 0, 19, 0, 0, 251, 0, - 261, 0, 239, 0, 232, 238, 0, 237, 234, 261, - 261, 262, 233, 235, 0, 261, 0, 230, 261, 0, - 261, 0, 231, 0, 0, 13, 270, 9, 5, 8, - 4, 0, 7, 259, 6, 0, 3}; - -const short QXmlStreamReader_Table::goto_default [] = { - 2, 4, 3, 49, 388, 43, 37, 52, 47, 41, - 249, 53, 127, 84, 393, 81, 85, 126, 42, 46, - 169, 130, 131, 146, 145, 149, 138, 136, 140, 147, - 139, 159, 160, 157, 168, 167, 209, 165, 164, 166, - 187, 180, 196, 200, 303, 302, 295, 321, 320, 319, - 279, 277, 278, 142, 56, 141, 222, 38, 34, 148, - 39, 48, 40, 248, 45, 36, 119, 112, 330, 111, - 264, 252, 251, 250, 339, 326, 325, 329, 398, 399, - 50, 51, 59, 0}; - -const short QXmlStreamReader_Table::action_index [] = { - -21, -57, 33, 119, 960, 70, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, 105, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, 40, -57, - 795, -57, 47, -57, -57, -57, 107, -57, -57, -57, - 84, -57, -57, -38, 80, -57, 12, -57, -57, 97, - -57, -57, -57, -57, -57, -57, 13, -57, 56, 34, - -57, -57, -57, -57, 51, -57, -57, -57, -57, 53, - 57, 84, 300, 255, -57, 84, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, 355, -57, -57, -57, -57, -57, -57, 326, - -57, -57, -57, 48, -57, -57, -57, 50, -57, -57, - 84, 155, 32, -57, 38, 22, -57, -57, -57, 115, - -57, 35, 156, -57, 173, -57, 245, -57, 44, -57, - -57, -57, 16, -57, -57, -57, 29, -57, 116, 29, - -57, 133, -57, 29, 129, 84, 15, 29, -22, 121, - 74, -57, -57, -57, -57, 82, 29, 29, 88, -57, - 29, 7, 29, 86, -57, 83, -57, 27, 19, 26, - 94, -57, -57, 106, 29, 3, 29, -8, -57, -57, - -57, 104, 29, -6, -7, -57, -57, -57, -57, -57, - 17, -57, -2, 11, 29, 18, -57, -57, 850, 65, - 465, 67, 84, 135, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, 630, 24, -57, -57, -57, -57, 84, 76, - -57, -57, -57, -57, 740, -57, -57, -57, -57, 39, - -57, 23, 21, 14, 78, 22, 84, -57, 84, 184, - 20, 31, -57, 41, -57, -57, -57, -57, -57, -57, - -57, 84, -57, -57, 36, 126, 162, -57, -57, -57, - -57, -57, -57, 29, 79, 29, 29, 160, -57, -57, - 29, 145, 29, 75, 29, -57, 575, -57, 410, -57, - -57, 110, 64, -57, -57, -57, 685, -57, -57, -57, - -57, -17, -57, -57, -57, -57, -57, -57, -57, 520, - -57, -57, -57, 29, -57, -57, 61, -57, 29, -57, - -57, -57, 29, -57, 29, 29, -15, 29, -57, -57, - 29, -57, -57, -57, -57, -57, 95, 43, 29, 45, - 9, 29, 10, -57, -57, 29, 2, -57, -57, -24, - 190, -57, 29, -57, 1, -57, 905, 150, -57, -26, - 29, 0, -57, 109, -26, -57, 8, -57, -57, 29, - 29, -19, -57, -57, -11, 29, 59, -57, 29, -5, - 29, 103, 29, -16, 6, -57, -57, -57, -57, -57, - -57, 69, -57, -57, -57, 905, -57, - - -84, -84, -84, 204, 75, -84, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, 7, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - 101, -84, -84, -84, -84, -84, -84, -84, -84, 64, - 54, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, 68, -84, 30, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - 32, -84, -16, -7, -84, 42, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, 45, -84, -84, -84, -84, -84, -84, 44, - -84, -84, -84, 33, -84, -84, -84, -84, -84, -84, - 36, 108, -84, -84, -84, 69, -84, -84, -84, 62, - -84, 63, -84, -84, -84, -84, 118, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -2, -84, -84, -10, - -84, -84, -84, 25, -21, 11, -84, 20, -84, -25, - -84, -84, -84, -84, -84, -84, 1, 2, -36, -84, - -9, -84, 5, -13, -84, -8, -84, 6, -84, 8, - 12, -84, -84, -84, 23, -84, 4, -1, -84, -84, - -84, -84, 0, -84, -14, -84, -84, -84, -84, -84, - -84, -84, 55, -84, 58, -84, -84, -84, -84, 53, - 47, 123, 67, 66, -84, -84, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -15, -84, -84, -84, -84, -84, 41, 40, - -84, -84, -84, -84, -46, -84, -84, -84, -84, -84, - -84, 35, -84, 34, 37, 18, 70, -84, 89, -84, - 43, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, 48, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, 31, -84, 29, 27, 17, -84, -84, - 38, 24, 39, -84, 49, -84, 71, -84, 93, -84, - -84, -84, -12, -84, -84, -84, 94, -84, -84, -84, - -84, -84, -84, -84, -84, -84, -84, -84, -84, 78, - -84, -84, -84, 50, -84, -84, 46, -84, 56, -84, - -84, -84, 60, -84, 61, 59, 51, 57, -84, -84, - 14, -84, -84, -84, -84, -84, -11, -6, 72, -5, - -84, -3, -84, -84, -84, 52, -84, -84, -84, -20, - 77, -84, 21, -84, -84, -84, 76, 16, -84, 19, - 26, -84, -84, -84, 10, -84, -84, -84, -84, 80, - 13, 73, -84, -84, -84, 22, -27, -84, 9, -84, - 28, 15, 82, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, 3, -84, 98, -84}; - -const short QXmlStreamReader_Table::action_info [] = { - 65, 332, 65, 405, 392, 385, 377, 65, 414, 410, - 415, 55, 397, 374, 373, 217, 206, 408, 65, 65, - 207, 211, 216, 1, 55, 199, 182, 192, 70, 70, - 63, 70, 189, 416, 153, 350, 133, 70, 72, 55, - 65, 351, 254, 270, 73, 284, 65, 310, 55, 65, - 83, 82, 83, 82, 129, 83, 82, 54, 70, 128, - 83, 82, 66, 64, 83, 82, 318, 316, 318, 316, - 54, 212, 83, 82, 83, 82, 54, 55, 367, 366, - 69, 80, 79, 83, 82, 163, 70, 314, 305, 272, - 55, 306, 305, 354, 163, 177, 55, 163, 379, 163, - 65, 176, 83, 82, 55, 163, 58, 57, 0, 65, - 83, 82, 65, 395, 65, 62, 203, 202, 195, 194, - 65, 417, 16, 61, 60, 396, 156, 272, 0, 66, - 64, 65, 317, 318, 316, 378, 379, 171, 173, 162, - 172, 54, 171, 173, 163, 172, 0, 345, 344, 343, - 171, 173, 0, 172, 0, 155, 154, 70, 134, 65, - 0, 55, 297, 220, 218, 298, 389, 0, 300, 0, - 135, 301, 299, 33, 66, 64, 65, 297, 0, 297, - 298, 0, 298, 300, 0, 300, 301, 299, 301, 299, - 221, 219, 70, 272, 381, 291, 0, 0, 0, 128, - 13, 0, 0, 273, 271, 274, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 287, 294, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 285, 288, 289, 290, 286, 292, 293, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 70, 134, 0, - 0, 0, 0, 0, 0, 362, 0, 108, 0, 103, - 135, 94, 117, 116, 95, 104, 97, 105, 99, 93, - 98, 107, 87, 106, 88, 89, 100, 109, 92, 101, - 86, 96, 91, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 0, 103, 0, 94, 102, 90, 95, - 104, 97, 105, 99, 93, 98, 107, 87, 106, 88, - 89, 100, 109, 92, 101, 86, 96, 91, 108, 0, - 103, 0, 94, 121, 120, 95, 104, 97, 105, 99, - 93, 98, 107, 87, 106, 88, 89, 100, 109, 92, - 101, 86, 96, 91, 0, 0, 0, 108, 0, 103, - 0, 94, 114, 113, 95, 104, 97, 105, 99, 93, - 98, 107, 87, 106, 88, 89, 100, 109, 92, 101, - 86, 96, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 0, 103, 322, 94, 337, 336, 95, - 104, 97, 105, 99, 93, 98, 107, 87, 106, 88, - 89, 100, 109, 92, 101, 86, 96, 91, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 246, 233, 241, - 223, 232, 262, 261, 234, 242, 236, 243, 237, 231, - 0, 245, 225, 244, 226, 227, 238, 247, 230, 239, - 224, 235, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 0, 103, 322, 94, 341, 340, 95, - 104, 97, 105, 99, 93, 98, 107, 87, 106, 88, - 89, 100, 109, 92, 101, 86, 96, 91, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 0, 103, - 322, 94, 324, 323, 95, 104, 97, 105, 99, 93, - 98, 107, 87, 106, 88, 89, 100, 109, 92, 101, - 86, 96, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 246, 233, 241, 223, 232, 256, 255, 234, - 242, 236, 243, 237, 231, 0, 245, 225, 244, 226, - 227, 238, 247, 230, 239, 224, 235, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 0, 103, - 322, 94, 334, 333, 95, 104, 97, 105, 99, 93, - 98, 107, 87, 106, 88, 89, 100, 109, 92, 101, - 86, 96, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 246, 233, 241, 223, 232, 266, 265, 234, - 242, 236, 243, 237, 231, 0, 245, 225, 244, 226, - 227, 238, 247, 230, 239, 224, 235, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 0, 25, - 74, 15, 24, 10, 17, 26, 19, 27, 21, 14, - 20, 29, 7, 28, 8, 9, 22, 31, 12, 23, - 6, 18, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 246, 233, 241, 223, 232, 240, 228, 234, - 242, 236, 243, 237, 231, 0, 245, 225, 244, 226, - 227, 238, 247, 230, 239, 224, 235, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 387, 25, - 5, 15, 24, 10, 17, 26, 19, 27, 21, 14, - 20, 29, 7, 28, 8, 9, 22, 31, 12, 23, - 6, 18, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 32, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 30, 16, 25, 5, 15, 24, 10, 17, - 26, 19, 27, 21, 14, 20, 29, 7, 28, 8, - 9, 22, 31, 12, 23, 6, 18, 11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 32, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, - - 380, 179, 210, 181, 425, 368, 205, 375, 371, 372, - 161, 208, 204, 178, 185, 174, 201, 183, 188, 198, - 190, 409, 407, 175, 184, 404, 267, 67, 412, 186, - 400, 361, 193, 384, 406, 197, 67, 170, 391, 390, - 411, 307, 331, 304, 309, 125, 124, 71, 132, 191, - 311, 313, 110, 260, 352, 276, 0, 257, 259, 123, - 296, 118, 308, 348, 376, 386, 315, 346, 312, 258, - 215, 394, 360, 349, 358, 213, 359, 353, 356, 269, - 0, 328, 281, 0, 370, 44, 44, 280, 328, 369, - 0, 355, 402, 400, 383, 347, 413, 401, 382, 394, - 158, 283, 426, 328, 328, 357, 280, 0, 44, 214, - 0, 76, 122, 115, 137, 0, 150, 0, 143, 263, - 253, 0, 68, 152, 137, 151, 150, 144, 143, 0, - 0, 0, 0, 0, 327, 365, 268, 144, 35, 35, - 282, 327, 363, 364, 0, 0, 0, 0, 0, 0, - 0, 403, 0, 0, 342, 0, 327, 327, 0, 0, - 0, 35, 78, 0, 75, 77, 0, 0, 0, 338, - 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 423, 0, 420, - 418, 424, 422, 419, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - -const short QXmlStreamReader_Table::action_check [] = { - 26, 18, 26, 14, 4, 4, 4, 26, 24, 14, - 4, 26, 4, 4, 4, 4, 22, 55, 26, 26, - 42, 4, 4, 44, 26, 22, 19, 12, 2, 2, - 18, 2, 13, 0, 18, 4, 4, 2, 4, 26, - 26, 20, 18, 4, 4, 4, 26, 11, 26, 26, - 7, 8, 7, 8, 4, 7, 8, 6, 2, 9, - 7, 8, 24, 25, 7, 8, 7, 8, 7, 8, - 6, 36, 7, 8, 7, 8, 6, 26, 34, 35, - 24, 34, 35, 7, 8, 11, 2, 12, 13, 20, - 26, 12, 13, 15, 11, 13, 26, 11, 29, 11, - 26, 19, 7, 8, 26, 11, 26, 27, -1, 26, - 7, 8, 26, 4, 26, 18, 12, 13, 12, 13, - 26, 2, 3, 26, 27, 16, 11, 20, -1, 24, - 25, 26, 6, 7, 8, 28, 29, 21, 22, 6, - 24, 6, 21, 22, 11, 24, -1, 37, 38, 39, - 21, 22, -1, 24, -1, 40, 41, 2, 3, 26, - -1, 26, 17, 7, 8, 20, 16, -1, 23, -1, - 15, 26, 27, 54, 24, 25, 26, 17, -1, 17, - 20, -1, 20, 23, -1, 23, 26, 27, 26, 27, - 34, 35, 2, 20, 4, 11, -1, -1, -1, 9, - 45, -1, -1, 30, 31, 32, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 32, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 47, 48, 49, 50, 51, 52, 53, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2, 3, -1, - -1, -1, -1, -1, -1, 10, -1, 2, -1, 4, - 15, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2, -1, 4, -1, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 2, -1, - 4, -1, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, -1, -1, -1, 2, -1, 4, - -1, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2, -1, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2, -1, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2, -1, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2, -1, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2, -1, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, - -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, 46, -1, -1, -1, - -1, -1, -1, -1, 54, -1, -1, - - 20, 37, 12, 12, 1, 16, 20, 13, 13, 12, - 12, 36, 12, 12, 12, 36, 12, 12, 12, 20, - 12, 12, 49, 12, 37, 12, 72, 20, 13, 37, - 20, 17, 12, 12, 12, 12, 20, 12, 12, 20, - 12, 12, 54, 12, 17, 13, 13, 17, 12, 37, - 12, 12, 68, 13, 20, 20, -1, 72, 17, 17, - 12, 68, 45, 20, 12, 1, 17, 17, 44, 16, - 12, 17, 54, 17, 17, 12, 17, 17, 17, 12, - -1, 10, 12, -1, 12, 10, 10, 17, 10, 17, - -1, 54, 12, 20, 17, 49, 14, 17, 21, 17, - 38, 12, 4, 10, 10, 54, 17, -1, 10, 54, - -1, 10, 68, 68, 6, -1, 8, -1, 10, 72, - 54, -1, 54, 54, 6, 17, 8, 19, 10, -1, - -1, -1, -1, -1, 63, 17, 13, 19, 63, 63, - 51, 63, 24, 25, -1, -1, -1, -1, -1, -1, - -1, 78, -1, -1, 76, -1, 63, 63, -1, -1, - -1, 63, 61, -1, 63, 64, -1, -1, -1, 76, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3, -1, 5, - 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1}; - - -template <typename T> class QXmlStreamSimpleStack { - T *data; - int tos, cap; -public: - inline QXmlStreamSimpleStack():data(0), tos(-1), cap(0){} - inline ~QXmlStreamSimpleStack(){ if (data) free(data); } - - inline void reserve(int extraCapacity) { - if (tos + extraCapacity + 1 > cap) { - cap = qMax(tos + extraCapacity + 1, cap << 1 ); - void *ptr = realloc(static_cast<void *>(data), cap * sizeof(T)); - data = reinterpret_cast<T *>(ptr); - Q_CHECK_PTR(data); - } - } - - inline T &push() { reserve(1); return data[++tos]; } - inline T &rawPush() { return data[++tos]; } - inline const T &top() const { return data[tos]; } - inline T &top() { return data[tos]; } - inline T &pop() { return data[tos--]; } - inline T &operator[](int index) { return data[index]; } - inline const T &at(int index) const { return data[index]; } - inline int size() const { return tos + 1; } - inline void resize(int s) { tos = s - 1; } - inline bool isEmpty() const { return tos < 0; } - inline void clear() { tos = -1; } -}; - - -class QXmlStream -{ - Q_DECLARE_TR_FUNCTIONS(QXmlStream) -}; - -class QXmlStreamPrivateTagStack { -public: - struct NamespaceDeclaration - { - QStringRef prefix; - QStringRef namespaceUri; - }; - - struct Tag - { - QStringRef name; - QStringRef qualifiedName; - NamespaceDeclaration namespaceDeclaration; - int tagStackStringStorageSize; - int namespaceDeclarationsSize; - }; - - - QXmlStreamPrivateTagStack(); - QXmlStreamSimpleStack<NamespaceDeclaration> namespaceDeclarations; - QString tagStackStringStorage; - int tagStackStringStorageSize; - int initialTagStackStringStorageSize; - bool tagsDone; - - inline QStringRef addToStringStorage(const QStringRef &s) { - int pos = tagStackStringStorageSize; - int sz = s.size(); - if (pos != tagStackStringStorage.size()) - tagStackStringStorage.resize(pos); - tagStackStringStorage.insert(pos, s.unicode(), sz); - tagStackStringStorageSize += sz; - return QStringRef(&tagStackStringStorage, pos, sz); - } - inline QStringRef addToStringStorage(const QString &s) { - int pos = tagStackStringStorageSize; - int sz = s.size(); - if (pos != tagStackStringStorage.size()) - tagStackStringStorage.resize(pos); - tagStackStringStorage.insert(pos, s.unicode(), sz); - tagStackStringStorageSize += sz; - return QStringRef(&tagStackStringStorage, pos, sz); - } - - QXmlStreamSimpleStack<Tag> tagStack; - - - inline Tag &tagStack_pop() { - Tag& tag = tagStack.pop(); - tagStackStringStorageSize = tag.tagStackStringStorageSize; - namespaceDeclarations.resize(tag.namespaceDeclarationsSize); - tagsDone = tagStack.isEmpty(); - return tag; - } - inline Tag &tagStack_push() { - Tag &tag = tagStack.push(); - tag.tagStackStringStorageSize = tagStackStringStorageSize; - tag.namespaceDeclarationsSize = namespaceDeclarations.size(); - return tag; - } -}; - - -class QXmlStreamEntityResolver; -#ifndef QT_NO_XMLSTREAMREADER -class QXmlStreamReaderPrivate : public QXmlStreamReader_Table, public QXmlStreamPrivateTagStack{ - QXmlStreamReader *q_ptr; - Q_DECLARE_PUBLIC(QXmlStreamReader) -public: - QXmlStreamReaderPrivate(QXmlStreamReader *q); - ~QXmlStreamReaderPrivate(); - void init(); - - QByteArray rawReadBuffer; - QByteArray dataBuffer; - uchar firstByte; - qint64 nbytesread; - QString readBuffer; - int readBufferPos; - QXmlStreamSimpleStack<uint> putStack; - struct Entity { - Entity(const QString& str = QString()) - :value(str), external(false), unparsed(false), literal(false), - hasBeenParsed(false), isCurrentlyReferenced(false){} - static inline Entity createLiteral(const QString &entity) - { Entity result(entity); result.literal = result.hasBeenParsed = true; return result; } - QString value; - uint external : 1; - uint unparsed : 1; - uint literal : 1; - uint hasBeenParsed : 1; - uint isCurrentlyReferenced : 1; - }; - QHash<QString, Entity> entityHash; - QHash<QString, Entity> parameterEntityHash; - QXmlStreamSimpleStack<Entity *>entityReferenceStack; - inline bool referenceEntity(Entity &entity) { - if (entity.isCurrentlyReferenced) { - raiseWellFormedError(QXmlStream::tr("Recursive entity detected.")); - return false; - } - entity.isCurrentlyReferenced = true; - entityReferenceStack.push() = &entity; - injectToken(ENTITY_DONE); - return true; - } - - - QIODevice *device; - bool deleteDevice; -#ifndef QT_NO_TEXTCODEC - QTextCodec *codec; - QTextDecoder *decoder; -#endif - bool atEnd; - - /*! - \sa setType() - */ - QXmlStreamReader::TokenType type; - QXmlStreamReader::Error error; - QString errorString; - QString unresolvedEntity; - - qint64 lineNumber, lastLineStart, characterOffset; - - - void write(const QString &); - void write(const char *); - - - QXmlStreamAttributes attributes; - QStringRef namespaceForPrefix(const QStringRef &prefix); - void resolveTag(); - void resolvePublicNamespaces(); - void resolveDtd(); - uint resolveCharRef(int symbolIndex); - bool checkStartDocument(); - void startDocument(); - void parseError(); - void checkPublicLiteral(const QStringRef &publicId); - - bool scanDtd; - QStringRef lastAttributeValue; - bool lastAttributeIsCData; - struct DtdAttribute { - QStringRef tagName; - QStringRef attributeQualifiedName; - QStringRef attributePrefix; - QStringRef attributeName; - QStringRef defaultValue; - bool isCDATA; - bool isNamespaceAttribute; - }; - QXmlStreamSimpleStack<DtdAttribute> dtdAttributes; - struct NotationDeclaration { - QStringRef name; - QStringRef publicId; - QStringRef systemId; - }; - QXmlStreamSimpleStack<NotationDeclaration> notationDeclarations; - QXmlStreamNotationDeclarations publicNotationDeclarations; - QXmlStreamNamespaceDeclarations publicNamespaceDeclarations; - - struct EntityDeclaration { - QStringRef name; - QStringRef notationName; - QStringRef publicId; - QStringRef systemId; - QStringRef value; - bool parameter; - bool external; - inline void clear() { - name.clear(); - notationName.clear(); - publicId.clear(); - systemId.clear(); - value.clear(); - parameter = external = false; - } - }; - QXmlStreamSimpleStack<EntityDeclaration> entityDeclarations; - QXmlStreamEntityDeclarations publicEntityDeclarations; - - QStringRef text; - - QStringRef prefix, namespaceUri, qualifiedName, name; - QStringRef processingInstructionTarget, processingInstructionData; - QStringRef dtdName, dtdPublicId, dtdSystemId; - QStringRef documentVersion, documentEncoding; - uint isEmptyElement : 1; - uint isWhitespace : 1; - uint isCDATA : 1; - uint standalone : 1; - uint hasCheckedStartDocument : 1; - uint normalizeLiterals : 1; - uint hasSeenTag : 1; - uint inParseEntity : 1; - uint referenceToUnparsedEntityDetected : 1; - uint referenceToParameterEntityDetected : 1; - uint hasExternalDtdSubset : 1; - uint lockEncoding : 1; - uint namespaceProcessing : 1; - - int resumeReduction; - void resume(int rule); - - inline bool entitiesMustBeDeclared() const { - return (!inParseEntity - && (standalone - || (!referenceToUnparsedEntityDetected - && !referenceToParameterEntityDetected // Errata 13 as of 2006-04-25 - && !hasExternalDtdSubset))); - } - - // qlalr parser - int tos; - int stack_size; - struct Value { - int pos; - int len; - int prefix; - ushort c; - }; - - Value *sym_stack; - int *state_stack; - inline void reallocateStack(); - inline Value &sym(int index) const - { return sym_stack[tos + index - 1]; } - QString textBuffer; - inline void clearTextBuffer() { - if (!scanDtd) { - textBuffer.resize(0); - textBuffer.reserve(256); - } - } - struct Attribute { - Value key; - Value value; - }; - QXmlStreamSimpleStack<Attribute> attributeStack; - - inline QStringRef symString(int index) { - const Value &symbol = sym(index); - return QStringRef(&textBuffer, symbol.pos + symbol.prefix, symbol.len - symbol.prefix); - } - inline QStringRef symName(int index) { - const Value &symbol = sym(index); - return QStringRef(&textBuffer, symbol.pos, symbol.len); - } - inline QStringRef symString(int index, int offset) { - const Value &symbol = sym(index); - return QStringRef(&textBuffer, symbol.pos + symbol.prefix + offset, symbol.len - symbol.prefix - offset); - } - inline QStringRef symPrefix(int index) { - const Value &symbol = sym(index); - if (symbol.prefix) - return QStringRef(&textBuffer, symbol.pos, symbol.prefix - 1); - return QStringRef(); - } - inline QStringRef symString(const Value &symbol) { - return QStringRef(&textBuffer, symbol.pos + symbol.prefix, symbol.len - symbol.prefix); - } - inline QStringRef symName(const Value &symbol) { - return QStringRef(&textBuffer, symbol.pos, symbol.len); - } - inline QStringRef symPrefix(const Value &symbol) { - if (symbol.prefix) - return QStringRef(&textBuffer, symbol.pos, symbol.prefix - 1); - return QStringRef(); - } - - inline void clearSym() { Value &val = sym(1); val.pos = textBuffer.size(); val.len = 0; } - - - short token; - uint token_char; - - uint filterCarriageReturn(); - inline uint getChar(); - inline uint peekChar(); - inline void putChar(uint c) { putStack.push() = c; } - inline void putChar(QChar c) { putStack.push() = c.unicode(); } - void putString(const QString &s, int from = 0); - void putStringLiteral(const QString &s); - void putReplacement(const QString &s); - void putReplacementInAttributeValue(const QString &s); - uint getChar_helper(); - - bool scanUntil(const char *str, short tokenToInject = -1); - bool scanString(const char *str, short tokenToInject, bool requireSpace = true); - inline void injectToken(ushort tokenToInject) { - putChar(int(tokenToInject) << 16); - } - - QString resolveUndeclaredEntity(const QString &name); - void parseEntity(const QString &value); - QXmlStreamReaderPrivate *entityParser; - - bool scanAfterLangleBang(); - bool scanPublicOrSystem(); - bool scanNData(); - bool scanAfterDefaultDecl(); - bool scanAttType(); - - - // scan optimization functions. Not strictly necessary but LALR is - // not very well suited for scanning fast - int fastScanLiteralContent(); - int fastScanSpace(); - int fastScanContentCharList(); - int fastScanName(int *prefix = 0); - inline int fastScanNMTOKEN(); - - - bool parse(); - inline void consumeRule(int); - - void raiseError(QXmlStreamReader::Error error, const QString& message = QString()); - void raiseWellFormedError(const QString &message); - - QXmlStreamEntityResolver *entityResolver; - -private: - /*! \internal - Never assign to variable type directly. Instead use this function. - - This prevents errors from being ignored. - */ - inline void setType(const QXmlStreamReader::TokenType t) - { - if(type != QXmlStreamReader::Invalid) - type = t; - } -}; - -bool QXmlStreamReaderPrivate::parse() -{ - // cleanup currently reported token - - switch (type) { - case QXmlStreamReader::StartElement: - name.clear(); - prefix.clear(); - qualifiedName.clear(); - namespaceUri.clear(); - publicNamespaceDeclarations.clear(); - attributes.clear(); - if (isEmptyElement) { - setType(QXmlStreamReader::EndElement); - Tag &tag = tagStack_pop(); - namespaceUri = tag.namespaceDeclaration.namespaceUri; - name = tag.name; - qualifiedName = tag.qualifiedName; - isEmptyElement = false; - return true; - } - clearTextBuffer(); - break; - case QXmlStreamReader::EndElement: - name.clear(); - prefix.clear(); - qualifiedName.clear(); - namespaceUri.clear(); - clearTextBuffer(); - break; - case QXmlStreamReader::DTD: - publicNotationDeclarations.clear(); - publicEntityDeclarations.clear(); - dtdName.clear(); - dtdPublicId.clear(); - dtdSystemId.clear(); - Q_FALLTHROUGH(); - case QXmlStreamReader::Comment: - case QXmlStreamReader::Characters: - isCDATA = false; - isWhitespace = true; - text.clear(); - clearTextBuffer(); - break; - case QXmlStreamReader::EntityReference: - text.clear(); - name.clear(); - clearTextBuffer(); - break; - case QXmlStreamReader::ProcessingInstruction: - processingInstructionTarget.clear(); - processingInstructionData.clear(); - clearTextBuffer(); - break; - case QXmlStreamReader::NoToken: - case QXmlStreamReader::Invalid: - break; - case QXmlStreamReader::StartDocument: - lockEncoding = true; - documentVersion.clear(); - documentEncoding.clear(); -#ifndef QT_NO_TEXTCODEC - if (decoder && decoder->hasFailure()) { - raiseWellFormedError(QXmlStream::tr("Encountered incorrectly encoded content.")); - readBuffer.clear(); - return false; - } -#endif - Q_FALLTHROUGH(); - default: - clearTextBuffer(); - ; - } - - setType(QXmlStreamReader::NoToken); - - - // the main parse loop - int act, r; - - if (resumeReduction) { - act = state_stack[tos-1]; - r = resumeReduction; - resumeReduction = 0; - goto ResumeReduction; - } - - act = state_stack[tos]; - - forever { - if (token == -1 && - TERMINAL_COUNT != action_index[act]) { - uint cu = getChar(); - token = NOTOKEN; - token_char = cu == ~0U ? cu : ushort(cu); - if ((cu != ~0U) && (cu & 0xff0000)) { - token = cu >> 16; - } else switch (token_char) { - case 0xfffe: - case 0xffff: - token = ERROR; - break; - case '\r': - token = SPACE; - if (cu == '\r') { - if ((token_char = filterCarriageReturn())) { - ++lineNumber; - lastLineStart = characterOffset + readBufferPos; - break; - } - } else { - break; - } - Q_FALLTHROUGH(); - case ~0U: { - token = EOF_SYMBOL; - if (!tagsDone && !inParseEntity) { - int a = t_action(act, token); - if (a < 0) { - raiseError(QXmlStreamReader::PrematureEndOfDocumentError); - return false; - } - } - - } break; - case '\n': - ++lineNumber; - lastLineStart = characterOffset + readBufferPos; - Q_FALLTHROUGH(); - case ' ': - case '\t': - token = SPACE; - break; - case '&': - token = AMPERSAND; - break; - case '#': - token = HASH; - break; - case '\'': - token = QUOTE; - break; - case '\"': - token = DBLQUOTE; - break; - case '<': - token = LANGLE; - break; - case '>': - token = RANGLE; - break; - case '[': - token = LBRACK; - break; - case ']': - token = RBRACK; - break; - case '(': - token = LPAREN; - break; - case ')': - token = RPAREN; - break; - case '|': - token = PIPE; - break; - case '=': - token = EQ; - break; - case '%': - token = PERCENT; - break; - case '/': - token = SLASH; - break; - case ':': - token = COLON; - break; - case ';': - token = SEMICOLON; - break; - case ',': - token = COMMA; - break; - case '-': - token = DASH; - break; - case '+': - token = PLUS; - break; - case '*': - token = STAR; - break; - case '.': - token = DOT; - break; - case '?': - token = QUESTIONMARK; - break; - case '!': - token = BANG; - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - token = DIGIT; - break; - default: - if (cu < 0x20) - token = NOTOKEN; - else - token = LETTER; - break; - } - } - - act = t_action (act, token); - if (act == ACCEPT_STATE) { - // reset the parser in case someone resumes (process instructions can follow a valid document) - tos = 0; - state_stack[tos++] = 0; - state_stack[tos] = 0; - return true; - } else if (act > 0) { - if (++tos == stack_size-1) - reallocateStack(); - - Value &val = sym_stack[tos]; - val.c = token_char; - val.pos = textBuffer.size(); - val.prefix = 0; - val.len = 1; - if (token_char) - textBuffer += QChar(token_char); - - state_stack[tos] = act; - token = -1; - - - } else if (act < 0) { - r = - act - 1; - -#if defined (QLALR_DEBUG) - int ridx = rule_index[r]; - printf ("%3d) %s ::=", r + 1, spell[rule_info[ridx]]); - ++ridx; - for (int i = ridx; i < ridx + rhs[r]; ++i) { - int symbol = rule_info[i]; - if (const char *name = spell[symbol]) - printf (" %s", name); - else - printf (" #%d", symbol); - } - printf ("\n"); -#endif - - tos -= rhs[r]; - act = state_stack[tos++]; - ResumeReduction: - switch (r) { - - case 0: - setType(QXmlStreamReader::EndDocument); - break; - - case 1: - if (type != QXmlStreamReader::Invalid) { - if (hasSeenTag || inParseEntity) { - setType(QXmlStreamReader::EndDocument); - } else { - raiseError(QXmlStreamReader::NotWellFormedError, QXmlStream::tr("Start tag expected.")); - // reset the parser - tos = 0; - state_stack[tos++] = 0; - state_stack[tos] = 0; - return false; - } - } - break; - - case 10: - entityReferenceStack.pop()->isCurrentlyReferenced = false; - clearSym(); - break; - - case 11: - if (!scanString(spell[VERSION], VERSION, false) && atEnd) { - resume(11); - return false; - } - break; - - case 12: - setType(QXmlStreamReader::StartDocument); - documentVersion = symString(6); - startDocument(); - break; - - case 13: - hasExternalDtdSubset = true; - dtdSystemId = symString(2); - break; - - case 14: - checkPublicLiteral(symString(2)); - dtdPublicId = symString(2); - dtdSystemId = symString(4); - hasExternalDtdSubset = true; - break; - - case 16: - if (!scanPublicOrSystem() && atEnd) { - resume(16); - return false; - } - dtdName = symString(3); - break; - - case 17: - case 18: - dtdName = symString(3); - Q_FALLTHROUGH(); - - case 19: - case 20: - setType(QXmlStreamReader::DTD); - text = &textBuffer; - break; - - case 21: - scanDtd = true; - break; - - case 22: - scanDtd = false; - break; - - case 37: - if (!scanString(spell[EMPTY], EMPTY, false) - && !scanString(spell[ANY], ANY, false) - && atEnd) { - resume(37); - return false; - } - break; - - case 43: - if (!scanString(spell[PCDATA], PCDATA, false) && atEnd) { - resume(43); - return false; - } - break; - - case 68: { - lastAttributeIsCData = true; - } break; - - case 78: - if (!scanAfterDefaultDecl() && atEnd) { - resume(78); - return false; - } - break; - - case 83: - sym(1) = sym(2); - lastAttributeValue.clear(); - lastAttributeIsCData = false; - if (!scanAttType() && atEnd) { - resume(83); - return false; - } - break; - - case 84: { - DtdAttribute &dtdAttribute = dtdAttributes.push(); - dtdAttribute.tagName.clear(); - dtdAttribute.isCDATA = lastAttributeIsCData; - dtdAttribute.attributePrefix = addToStringStorage(symPrefix(1)); - dtdAttribute.attributeName = addToStringStorage(symString(1)); - dtdAttribute.attributeQualifiedName = addToStringStorage(symName(1)); - dtdAttribute.isNamespaceAttribute = (dtdAttribute.attributePrefix == QLatin1String("xmlns") - || (dtdAttribute.attributePrefix.isEmpty() - && dtdAttribute.attributeName == QLatin1String("xmlns"))); - if (lastAttributeValue.isNull()) { - dtdAttribute.defaultValue.clear(); - } else { - if (dtdAttribute.isCDATA) - dtdAttribute.defaultValue = addToStringStorage(lastAttributeValue); - else - dtdAttribute.defaultValue = addToStringStorage(lastAttributeValue.toString().simplified()); - - } - } break; - - case 88: { - if (referenceToUnparsedEntityDetected && !standalone) - break; - int n = dtdAttributes.size(); - QStringRef tagName = addToStringStorage(symName(3)); - while (n--) { - DtdAttribute &dtdAttribute = dtdAttributes[n]; - if (!dtdAttribute.tagName.isNull()) - break; - dtdAttribute.tagName = tagName; - for (int i = 0; i < n; ++i) { - if ((dtdAttributes[i].tagName.isNull() || dtdAttributes[i].tagName == tagName) - && dtdAttributes[i].attributeQualifiedName == dtdAttribute.attributeQualifiedName) { - dtdAttribute.attributeQualifiedName.clear(); // redefined, delete it - break; - } - } - } - } break; - - case 89: { - if (!scanPublicOrSystem() && atEnd) { - resume(89); - return false; - } - EntityDeclaration &entityDeclaration = entityDeclarations.push(); - entityDeclaration.clear(); - entityDeclaration.name = symString(3); - } break; - - case 90: { - if (!scanPublicOrSystem() && atEnd) { - resume(90); - return false; - } - EntityDeclaration &entityDeclaration = entityDeclarations.push(); - entityDeclaration.clear(); - entityDeclaration.name = symString(5); - entityDeclaration.parameter = true; - } break; - - case 91: { - if (!scanNData() && atEnd) { - resume(91); - return false; - } - EntityDeclaration &entityDeclaration = entityDeclarations.top(); - entityDeclaration.systemId = symString(3); - entityDeclaration.external = true; - } break; - - case 92: { - if (!scanNData() && atEnd) { - resume(92); - return false; - } - EntityDeclaration &entityDeclaration = entityDeclarations.top(); - checkPublicLiteral((entityDeclaration.publicId = symString(3))); - entityDeclaration.systemId = symString(5); - entityDeclaration.external = true; - } break; - - case 93: { - EntityDeclaration &entityDeclaration = entityDeclarations.top(); - entityDeclaration.notationName = symString(3); - if (entityDeclaration.parameter) - raiseWellFormedError(QXmlStream::tr("NDATA in parameter entity declaration.")); - } - Q_FALLTHROUGH(); - - case 94: - case 95: { - if (referenceToUnparsedEntityDetected && !standalone) { - entityDeclarations.pop(); - break; - } - EntityDeclaration &entityDeclaration = entityDeclarations.top(); - if (!entityDeclaration.external) - entityDeclaration.value = symString(2); - QString entityName = entityDeclaration.name.toString(); - QHash<QString, Entity> &hash = entityDeclaration.parameter ? parameterEntityHash : entityHash; - if (!hash.contains(entityName)) { - Entity entity(entityDeclaration.value.toString()); - entity.unparsed = (!entityDeclaration.notationName.isNull()); - entity.external = entityDeclaration.external; - hash.insert(entityName, entity); - } - } break; - - case 96: { - setType(QXmlStreamReader::ProcessingInstruction); - int pos = sym(4).pos + sym(4).len; - processingInstructionTarget = symString(3); - if (scanUntil("?>")) { - processingInstructionData = QStringRef(&textBuffer, pos, textBuffer.size() - pos - 2); - const QString piTarget(processingInstructionTarget.toString()); - if (!piTarget.compare(QLatin1String("xml"), Qt::CaseInsensitive)) { - raiseWellFormedError(QXmlStream::tr("XML declaration not at start of document.")); - } - else if(!QXmlUtils::isNCName(piTarget)) - raiseWellFormedError(QXmlStream::tr("%1 is an invalid processing instruction name.").arg(piTarget)); - } else if (type != QXmlStreamReader::Invalid){ - resume(96); - return false; - } - } break; - - case 97: - setType(QXmlStreamReader::ProcessingInstruction); - processingInstructionTarget = symString(3); - if (!processingInstructionTarget.toString().compare(QLatin1String("xml"), Qt::CaseInsensitive)) - raiseWellFormedError(QXmlStream::tr("Invalid processing instruction name.")); - break; - - case 98: - if (!scanAfterLangleBang() && atEnd) { - resume(98); - return false; - } - break; - - case 99: - if (!scanUntil("--")) { - resume(99); - return false; - } - break; - - case 100: { - setType(QXmlStreamReader::Comment); - int pos = sym(1).pos + 4; - text = QStringRef(&textBuffer, pos, textBuffer.size() - pos - 3); - } break; - - case 101: { - setType(QXmlStreamReader::Characters); - isCDATA = true; - isWhitespace = false; - int pos = sym(2).pos; - if (scanUntil("]]>", -1)) { - text = QStringRef(&textBuffer, pos, textBuffer.size() - pos - 3); - } else { - resume(101); - return false; - } - } break; - - case 102: { - if (!scanPublicOrSystem() && atEnd) { - resume(102); - return false; - } - NotationDeclaration ¬ationDeclaration = notationDeclarations.push(); - notationDeclaration.name = symString(3); - } break; - - case 103: { - NotationDeclaration ¬ationDeclaration = notationDeclarations.top(); - notationDeclaration.systemId = symString(3); - notationDeclaration.publicId.clear(); - } break; - - case 104: { - NotationDeclaration ¬ationDeclaration = notationDeclarations.top(); - notationDeclaration.systemId.clear(); - checkPublicLiteral((notationDeclaration.publicId = symString(3))); - } break; - - case 105: { - NotationDeclaration ¬ationDeclaration = notationDeclarations.top(); - checkPublicLiteral((notationDeclaration.publicId = symString(3))); - notationDeclaration.systemId = symString(5); - } break; - - case 129: - isWhitespace = false; - Q_FALLTHROUGH(); - - case 130: - sym(1).len += fastScanContentCharList(); - if (atEnd && !inParseEntity) { - resume(130); - return false; - } - break; - - case 139: - if (!textBuffer.isEmpty()) { - setType(QXmlStreamReader::Characters); - text = &textBuffer; - } - break; - - case 140: - case 141: - clearSym(); - break; - - case 142: - case 143: - sym(1) = sym(2); - break; - - case 144: - case 145: - case 146: - case 147: - sym(1).len += sym(2).len; - break; - - case 173: - if (normalizeLiterals) - textBuffer.data()[textBuffer.size()-1] = QLatin1Char(' '); - break; - - case 174: - sym(1).len += fastScanLiteralContent(); - if (atEnd) { - resume(174); - return false; - } - break; - - case 175: { - if (!QXmlUtils::isPublicID(symString(1).toString())) { - raiseWellFormedError(QXmlStream::tr("%1 is an invalid PUBLIC identifier.").arg(symString(1).toString())); - resume(175); - return false; - } - } break; - - case 176: - case 177: - clearSym(); - break; - - case 178: - case 179: - sym(1) = sym(2); - break; - - case 180: - case 181: - case 182: - case 183: - sym(1).len += sym(2).len; - break; - - case 213: - case 214: - clearSym(); - break; - - case 215: - case 216: - sym(1) = sym(2); - lastAttributeValue = symString(1); - break; - - case 217: - case 218: - case 219: - case 220: - sym(1).len += sym(2).len; - break; - - case 229: { - QStringRef prefix = symPrefix(1); - if (prefix.isEmpty() && symString(1) == QLatin1String("xmlns") && namespaceProcessing) { - NamespaceDeclaration &namespaceDeclaration = namespaceDeclarations.push(); - namespaceDeclaration.prefix.clear(); - - const QStringRef ns(symString(5)); - if(ns == QLatin1String("http://www.w3.org/2000/xmlns/") || - ns == QLatin1String("http://www.w3.org/XML/1998/namespace")) - raiseWellFormedError(QXmlStream::tr("Illegal namespace declaration.")); - else - namespaceDeclaration.namespaceUri = addToStringStorage(ns); - } else { - Attribute &attribute = attributeStack.push(); - attribute.key = sym(1); - attribute.value = sym(5); - - QStringRef attributeQualifiedName = symName(1); - bool normalize = false; - for (int a = 0; a < dtdAttributes.size(); ++a) { - DtdAttribute &dtdAttribute = dtdAttributes[a]; - if (!dtdAttribute.isCDATA - && dtdAttribute.tagName == qualifiedName - && dtdAttribute.attributeQualifiedName == attributeQualifiedName - ) { - normalize = true; - break; - } - } - if (normalize) { - // normalize attribute value (simplify and trim) - int pos = textBuffer.size(); - int n = 0; - bool wasSpace = true; - for (int i = 0; i < attribute.value.len; ++i) { - QChar c = textBuffer.at(attribute.value.pos + i); - if (c.unicode() == ' ') { - if (wasSpace) - continue; - wasSpace = true; - } else { - wasSpace = false; - } - textBuffer += textBuffer.at(attribute.value.pos + i); - ++n; - } - if (wasSpace) - while (n && textBuffer.at(pos + n - 1).unicode() == ' ') - --n; - attribute.value.pos = pos; - attribute.value.len = n; - } - if (prefix == QLatin1String("xmlns") && namespaceProcessing) { - NamespaceDeclaration &namespaceDeclaration = namespaceDeclarations.push(); - QStringRef namespacePrefix = symString(attribute.key); - QStringRef namespaceUri = symString(attribute.value); - attributeStack.pop(); - if (((namespacePrefix == QLatin1String("xml")) - ^ (namespaceUri == QLatin1String("http://www.w3.org/XML/1998/namespace"))) - || namespaceUri == QLatin1String("http://www.w3.org/2000/xmlns/") - || namespaceUri.isEmpty() - || namespacePrefix == QLatin1String("xmlns")) - raiseWellFormedError(QXmlStream::tr("Illegal namespace declaration.")); - - namespaceDeclaration.prefix = addToStringStorage(namespacePrefix); - namespaceDeclaration.namespaceUri = addToStringStorage(namespaceUri); - } - } - } break; - - case 235: { - normalizeLiterals = true; - Tag &tag = tagStack_push(); - prefix = tag.namespaceDeclaration.prefix = addToStringStorage(symPrefix(2)); - name = tag.name = addToStringStorage(symString(2)); - qualifiedName = tag.qualifiedName = addToStringStorage(symName(2)); - if ((!prefix.isEmpty() && !QXmlUtils::isNCName(prefix)) || !QXmlUtils::isNCName(name)) - raiseWellFormedError(QXmlStream::tr("Invalid XML name.")); - } break; - - case 236: - isEmptyElement = true; - Q_FALLTHROUGH(); - - case 237: - setType(QXmlStreamReader::StartElement); - resolveTag(); - if (tagStack.size() == 1 && hasSeenTag && !inParseEntity) - raiseWellFormedError(QXmlStream::tr("Extra content at end of document.")); - hasSeenTag = true; - break; - - case 238: { - setType(QXmlStreamReader::EndElement); - Tag &tag = tagStack_pop(); - - namespaceUri = tag.namespaceDeclaration.namespaceUri; - name = tag.name; - qualifiedName = tag.qualifiedName; - if (qualifiedName != symName(3)) - raiseWellFormedError(QXmlStream::tr("Opening and ending tag mismatch.")); - } break; - - case 239: - if (entitiesMustBeDeclared()) { - raiseWellFormedError(QXmlStream::tr("Entity '%1' not declared.").arg(unresolvedEntity)); - break; - } - setType(QXmlStreamReader::EntityReference); - name = &unresolvedEntity; - break; - - case 240: { - sym(1).len += sym(2).len + 1; - QString reference = symString(2).toString(); - if (entityHash.contains(reference)) { - Entity &entity = entityHash[reference]; - if (entity.unparsed) { - raiseWellFormedError(QXmlStream::tr("Reference to unparsed entity '%1'.").arg(reference)); - } else { - if (!entity.hasBeenParsed) { - parseEntity(entity.value); - entity.hasBeenParsed = true; - } - if (entity.literal) - putStringLiteral(entity.value); - else if (referenceEntity(entity)) - putReplacement(entity.value); - textBuffer.chop(2 + sym(2).len); - clearSym(); - } - break; - } - - if (entityResolver) { - QString replacementText = resolveUndeclaredEntity(reference); - if (!replacementText.isNull()) { - putReplacement(replacementText); - textBuffer.chop(2 + sym(2).len); - clearSym(); - break; - } - } - - injectToken(UNRESOLVED_ENTITY); - unresolvedEntity = symString(2).toString(); - textBuffer.chop(2 + sym(2).len); - clearSym(); - - } break; - - case 241: { - sym(1).len += sym(2).len + 1; - QString reference = symString(2).toString(); - if (parameterEntityHash.contains(reference)) { - referenceToParameterEntityDetected = true; - Entity &entity = parameterEntityHash[reference]; - if (entity.unparsed || entity.external) { - referenceToUnparsedEntityDetected = true; - } else { - if (referenceEntity(entity)) - putString(entity.value); - textBuffer.chop(2 + sym(2).len); - clearSym(); - } - } else if (entitiesMustBeDeclared()) { - raiseWellFormedError(QXmlStream::tr("Entity '%1' not declared.").arg(symString(2).toString())); - } - } break; - - case 242: - sym(1).len += sym(2).len + 1; - break; - - case 243: { - sym(1).len += sym(2).len + 1; - QString reference = symString(2).toString(); - if (entityHash.contains(reference)) { - Entity &entity = entityHash[reference]; - if (entity.unparsed || entity.value.isNull()) { - raiseWellFormedError(QXmlStream::tr("Reference to external entity '%1' in attribute value.").arg(reference)); - break; - } - if (!entity.hasBeenParsed) { - parseEntity(entity.value); - entity.hasBeenParsed = true; - } - if (entity.literal) - putStringLiteral(entity.value); - else if (referenceEntity(entity)) - putReplacementInAttributeValue(entity.value); - textBuffer.chop(2 + sym(2).len); - clearSym(); - break; - } - - if (entityResolver) { - QString replacementText = resolveUndeclaredEntity(reference); - if (!replacementText.isNull()) { - putReplacement(replacementText); - textBuffer.chop(2 + sym(2).len); - clearSym(); - break; - } - } - if (entitiesMustBeDeclared()) { - raiseWellFormedError(QXmlStream::tr("Entity '%1' not declared.").arg(reference)); - } - } break; - - case 244: { - if (uint s = resolveCharRef(3)) { - if (s >= 0xffff) - putStringLiteral(QString::fromUcs4(&s, 1)); - else - putChar((LETTER << 16) | s); - - textBuffer.chop(3 + sym(3).len); - clearSym(); - } else { - raiseWellFormedError(QXmlStream::tr("Invalid character reference.")); - } - } break; - - case 247: - case 248: - sym(1).len += sym(2).len; - break; - - case 259: - sym(1).len += fastScanSpace(); - if (atEnd) { - resume(259); - return false; - } - break; - - case 262: { - sym(1).len += fastScanName(&sym(1).prefix); - if (atEnd) { - resume(262); - return false; - } - } break; - - case 263: - sym(1).len += fastScanName(); - if (atEnd) { - resume(263); - return false; - } - break; - - case 264: - case 265: - case 266: - case 267: - case 268: - sym(1).len += fastScanNMTOKEN(); - if (atEnd) { - resume(268); - return false; - } - - break; - - default: - ; - } // switch - act = state_stack[tos] = nt_action (act, lhs[r] - TERMINAL_COUNT); - if (type != QXmlStreamReader::NoToken) - return true; - } else { - parseError(); - break; - } - } - return false; -} -#endif //QT_NO_XMLSTREAMREADER.xml - - -#endif // QXMLSTREAM_P_H - |