📄 dtd.cpp
字号:
/** * This file is part of the DOM implementation for KDE. * * (C) 1999 Lars Knoll (knoll@kde.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * * $Id: dtd.cpp,v 1.47.2.1 2001/11/02 16:36:29 mueller Exp $ */#include "dtd.h"#include "htmlhashes.h"using namespace DOM;#include <kdebug.h>// priority of tags. Closing tags of higher priority close tags of lower// priority.// Update this list, whenever you change htmltags.*//// 0 elements with forbidden close tag and text. They don't get pushed// to the stack.// 1 inline elements// 2 form elements// 3 regular block level elements// 4 lists (OL UL DIR MENU)// 5 TD TH SELECT// 6 TR// 7 tbody thead tfoot caption object// 8 table// 9 body frameset// 10 htmlconst unsigned short DOM::tagPriority[] = { 0, // 0 5, // ID_A == 1 1, // ID_ABBR 1, // ID_ACRONYM 3, // ID_ADDRESS 1, // ID_APPLET 0, // ID_AREA 1, // ID_B 0, // ID_BASE 0, // ID_BASEFONT 1, // ID_BDO 1, // ID_BIG 3, // ID_BLOCKQUOTE 9, // ID_BODY 0, // ID_BR 1, // ID_BUTTON 5, // ID_CAPTION 5, // ID_CENTER 1, // ID_CITE 1, // ID_CODE 0, // ID_COL 1, // ID_COLGROUP 3, // ID_DD 1, // ID_DEL 1, // ID_DFN 4, // ID_DIR 3, // ID_DIV 4, // ID_DL 3, // ID_DT 1, // ID_EM 0, // ID_EMBED 3, // ID_FIELDSET 5, // ID_FONT 3, // ID_FORM 0, // ID_FRAME 9, // ID_FRAMESET 5, // ID_H1 5, // ID_H2 5, // ID_H3 5, // ID_H4 5, // ID_H5 5, // ID_H6 9, // ID_HEAD 0, // ID_HR 10, // ID_HTML 1, // ID_I 1, // ID_IFRAME 0, // ID_IMG 0, // ID_INPUT 1, // ID_INS 0, // ID_ISINDEX 1, // ID_KBD 0, // ID_KEYGEN 5, // ID__KONQBLOCK 1, // ID_LABEL 1, // ID_LAYER 1, // ID_LEGEND 3, // ID_LI 0, // ID_LINK 1, // ID_LISTING 1, // ID_MAP 4, // ID_MENU 0, // ID_META 9, // ID_NOEMBED 9, // ID_NOFRAMES 3, // ID_NOSCRIPT 1, // ID_NOLAYER 7, // ID_OBJECT 4, // ID_OL 1, // ID_OPTGROUP 2, // ID_OPTION 3, // ID_P 0, // ID_PARAM 1, // ID_PLAIN 5, // ID_PRE 1, // ID_Q 1, // ID_S 1, // ID_SAMP 1, // ID_SCRIPT 5, // ID_SELECT 1, // ID_SMALL 1, // ID_SPAN 1, // ID_STRIKE 1, // ID_STRONG 1, // ID_STYLE 1, // ID_SUB 1, // ID_SUP 8, // ID_TABLE 7, // ID_TBODY 5, // ID_TD 1, // ID_TEXTAREA 7, // ID_TFOOT 5, // ID_TH 7, // ID_THEAD 1, // ID_TITLE 6, // ID_TR 1, // ID_TT 1, // ID_U 4, // ID_UL 1, // ID_VAR 0, // ID_TEXT};const tagStatus DOM::endTag[] = { REQUIRED, // 0 REQUIRED, // ID_A == 1 REQUIRED, // ID_ABBR REQUIRED, // ID_ACRONYM REQUIRED, // ID_ADDRESS REQUIRED, // ID_APPLET FORBIDDEN, // ID_AREA REQUIRED, // ID_B FORBIDDEN, // ID_BASE FORBIDDEN, // ID_BASEFONT REQUIRED, // ID_BDO REQUIRED, // ID_BIG REQUIRED, // ID_BLOCKQUOTE REQUIRED, // ID_BODY FORBIDDEN, // ID_BR REQUIRED, // ID_BUTTON REQUIRED, // ID_CAPTION REQUIRED, // ID_CENTER REQUIRED, // ID_CITE REQUIRED, // ID_CODE FORBIDDEN, // ID_COL OPTIONAL, // ID_COLGROUP OPTIONAL, // ID_DD REQUIRED, // ID_DEL REQUIRED, // ID_DFN REQUIRED, // ID_DIR REQUIRED, // ID_DIV REQUIRED, // ID_DL OPTIONAL, // ID_DT REQUIRED, // ID_EM REQUIRED, // ID_EMBED REQUIRED, // ID_FIELDSET REQUIRED, // ID_FONT REQUIRED, // ID_FORM FORBIDDEN, // ID_FRAME REQUIRED, // ID_FRAMESET REQUIRED, // ID_H1 REQUIRED, // ID_H2 REQUIRED, // ID_H3 REQUIRED, // ID_H4 REQUIRED, // ID_H5 REQUIRED, // ID_H6 OPTIONAL, // ID_HEAD FORBIDDEN, // ID_HR REQUIRED, // ID_HTML REQUIRED, // ID_I REQUIRED, // ID_IFRAME FORBIDDEN, // ID_IMG FORBIDDEN, // ID_INPUT REQUIRED, // ID_INS FORBIDDEN, // ID_ISINDEX REQUIRED, // ID_KBD REQUIRED, // ID_KEYGEN REQUIRED, // ID__KONQBLOCK REQUIRED, // ID_LABEL REQUIRED, // ID_LAYER REQUIRED, // ID_LEGEND OPTIONAL, // ID_LI FORBIDDEN, // ID_LINK REQUIRED, // ID_LISTING REQUIRED, // ID_MAP REQUIRED, // ID_MENU FORBIDDEN, // ID_META REQUIRED, // ID_NOEMBED REQUIRED, // ID_NOFRAMES REQUIRED, // ID_NOSCRIPT REQUIRED, // ID_NOLAYER REQUIRED, // ID_OBJECT REQUIRED, // ID_OL REQUIRED, // ID_OPTGROUP OPTIONAL, // ID_OPTION OPTIONAL, // ID_P FORBIDDEN, // ID_PARAM REQUIRED, // ID_PLAIN REQUIRED, // ID_PRE REQUIRED, // ID_Q REQUIRED, // ID_S REQUIRED, // ID_SAMP REQUIRED, // ID_SCRIPT REQUIRED, // ID_SELECT REQUIRED, // ID_SMALL REQUIRED, // ID_SPAN REQUIRED, // ID_STRIKE REQUIRED, // ID_STRONG REQUIRED, // ID_STYLE REQUIRED, // ID_SUB REQUIRED, // ID_SUP REQUIRED, // ID_TABLE OPTIONAL, // ID_TBODY OPTIONAL, // ID_TD REQUIRED, // ID_TEXTAREA OPTIONAL, // ID_TFOOT OPTIONAL, // ID_TH OPTIONAL, // ID_THEAD REQUIRED, // ID_TITLE OPTIONAL, // ID_TR REQUIRED, // ID_TT REQUIRED, // ID_U REQUIRED, // ID_UL REQUIRED, // ID_VAR REQUIRED // ID_TEXT};static const ushort tag_list_0[] = { ID_TEXT, ID_TT, ID_I, ID_B, ID_U, ID_S, ID_STRIKE, ID_BIG, ID_SMALL, ID_EM, ID_STRONG, ID_DFN, ID_CODE, ID_SAMP, ID_KBD, ID_VAR, ID_CITE, ID_ABBR, ID_ACRONYM, ID_A, ID_IMG, ID_APPLET, ID_OBJECT, ID_EMBED, ID_FONT, ID_BASEFONT, ID_BR, ID_SCRIPT, ID_MAP, ID_Q, ID_SUB, ID_SUP, ID_SPAN, ID_BDO, ID_IFRAME, ID_INPUT, ID_SELECT, ID_TEXTAREA, ID_LABEL, ID_BUTTON, ID_INS, ID_DEL, ID_COMMENT, 0};static const ushort tag_list_1[] = { ID_P, ID_H1, ID_H2, ID_H3, ID_H4, ID_H5, ID_H6, ID_UL, ID_OL, ID_DIR, ID_MENU, ID_PRE, ID_DL, ID_DIV, ID_LAYER, ID_CENTER, ID_NOSCRIPT, ID_NOFRAMES, ID_BLOCKQUOTE, ID_FORM, ID_ISINDEX, ID_HR, ID_TABLE, ID_FIELDSET, ID_ADDRESS, ID_TEXT, ID_TT, ID_I, ID_B, ID_U, ID_S, ID_STRIKE, ID_BIG, ID_SMALL, ID_EM, ID_STRONG, ID_DFN, ID_CODE, ID_SAMP, ID_KBD, ID_VAR, ID_CITE, ID_ABBR, ID_ACRONYM, ID_A, ID_IMG, ID_APPLET, ID_OBJECT, ID_EMBED, ID_FONT, ID_BASEFONT, ID_BR, ID_SCRIPT, ID_MAP, ID_Q, ID_SUB, ID_SUP, ID_SPAN, ID_BDO, ID_IFRAME, ID_INPUT, ID_KEYGEN, ID_SELECT, ID_TEXTAREA, ID_LABEL, ID_BUTTON, ID_COMMENT, ID_LI, ID_LISTING, ID__KONQBLOCK, ID_INS, ID_DEL, 0};static const ushort tag_list_2[] = { ID_COMMENT, 0};static const ushort tag_list_3[] = { ID_P, ID_H1, ID_H2, ID_H3, ID_H4, ID_H5, ID_H6, ID_UL, ID_OL, ID_DIR, ID_MENU, ID_PRE, ID_DL, ID_DIV, ID_LAYER, ID_CENTER, ID_NOSCRIPT, ID_NOFRAMES, ID_BLOCKQUOTE, ID_FORM, ID_ISINDEX, ID_HR, ID_TABLE, ID_FIELDSET, ID_ADDRESS, ID_COMMENT, ID_LI, ID_LISTING, ID__KONQBLOCK, 0};static const ushort tag_list_4[] = { ID_PARAM, ID_P, ID_H1, ID_H2, ID_H3, ID_H4, ID_H5, ID_H6, ID_UL, ID_OL, ID_DIR, ID_MENU, ID_PRE, ID_DL, ID_DIV, ID_LAYER, ID_CENTER, ID_NOSCRIPT, ID_NOFRAMES, ID_BLOCKQUOTE, ID_FORM, ID_ISINDEX, ID_HR, ID_TABLE, ID_FIELDSET, ID_ADDRESS, ID_TEXT, ID_TT, ID_I, ID_B, ID_U, ID_S, ID_STRIKE, ID_BIG, ID_SMALL, ID_EM, ID_STRONG, ID_DFN, ID_CODE, ID_SAMP, ID_KBD, ID_VAR, ID_CITE, ID_ABBR, ID_ACRONYM, ID_A, ID_IMG, ID_APPLET, ID_OBJECT, ID_EMBED, ID_FONT, ID_BASEFONT, ID_BR, ID_SCRIPT, ID_MAP, ID_Q, ID_SUB, ID_SUP, ID_SPAN, ID_BDO, ID_IFRAME, ID_INPUT, ID_SELECT, ID_TEXTAREA, ID_LABEL, ID_BUTTON, ID_COMMENT, ID_LI, ID_LISTING, 0};static const ushort tag_list_6[] = { ID_DT, ID_DD, ID_COMMENT, 0};static const ushort tag_list_7[] = { ID_OPTGROUP, ID_OPTION, ID_COMMENT, ID_SCRIPT, 0};static const ushort tag_list_9[] = { ID_TH, ID_TD, ID_COMMENT, 0};static const ushort tag_list_10[] = { ID_FRAMESET, ID_FRAME, ID_COMMENT, 0};static const ushort tag_list_11[] = { ID_SCRIPT, ID_STYLE, ID_META, ID_LINK, ID_OBJECT, ID_EMBED, ID_COMMENT, 0};bool check_array(ushort child, const ushort *tagList){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -