Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  htmltokn.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */


#pragma once

#include <svtools/svtdllapi.h>
#include <sal/types.h>
#include <stdexcept>
#include <string_view>

namespace rtl {
    class OUString;
};
enum class HtmlOptionId;
enum class HtmlTokenId : sal_Int16;

// search the char for the CharName
sal_Unicode GetHTMLCharName( std::u16string_view rName );

// search the TokenID for the token
SVT_DLLPUBLIC HtmlTokenId GetHTMLToken( std::u16string_view rName );

// search the TokenId for an attribute token
HtmlOptionId GetHTMLOption( std::u16string_view rName );

// search the 24-bit color for a color name (not found = SAL_MAX_UINT32)
SVT_DLLPUBLIC sal_uInt32 GetHTMLColor( const rtl::OUString& rName );

enum class HtmlTokenId : sal_Int16
{
    INVALID = -1,
    NONE = 0,
// always starting from 256 on, greater than a char
    TEXTTOKEN                      = 0x100,
    SINGLECHAR,
    NEWPARA,
    TABCHAR,
    RAWDATA,
    LINEFEEDCHAR,

    // these will only be turned on
    AREA, // Netscape 2.0
    BASE, // HTML 3.0
    COMMENT,
    CDATA,
    DUMMY, // so ONOFF_START is even
    DOCTYPE,
    EMBED, // Netscape 2.0            ignore </EMBED>
    HORZRULE,                      // ignore </HR>
    IMAGE,                         // ignore </IMG>
    INPUT,                         // ignore </INPUT>
    LINEBREAK,                     // </BR> -> <BR>
    LINK, // HTML 3.0
    META, // HTML 3.0                 ignore </META>
    OPTION,                        // ignore </OPTION>
    PARAM, // HotJava
    SPACER, // Netscape 3.0b5      // ignore </SPACER>

    // tokens recognised using HTML character
    NONBREAKSPACE,
    SOFTHYPH,

    // these will be turned back off,
    //  the off value is always located behind (+1) !!
    ONOFF_START,
    ABBREVIATION_ON = ONOFF_START, // HTML 3.0
    ABBREVIATION_OFF, // HTML 3.0
    ACRONYM_ON, // HTML 3.0
    ACRONYM_OFF, // HTML 3.0
    ADDRESS_ON,
    ADDRESS_OFF,
    ANCHOR_ON,
    ANCHOR_OFF,
    APPLET_ON, // HotJava
    APPLET_OFF, // HotJava
    AUTHOR_ON, // HTML 3.0
    AUTHOR_OFF, // HTML 3.0
    BANNER_ON, // HTML 3.0
    BANNER_OFF, // HTML 3.0
    BASEFONT_ON, // Netscape
    BASEFONT_OFF, // Netscape
    BIGPRINT_ON, // HTML 3.0
    BIGPRINT_OFF, // HTML 3.0
    BLINK_ON, // Netscape
    BLINK_OFF, // Netscape
    BLOCKQUOTE30_ON, // HTML 3.0
    BLOCKQUOTE30_OFF, // HTML 3.0
    BLOCKQUOTE_ON,
    BLOCKQUOTE_OFF,
    BODY_ON,
    BODY_OFF,
    BOLD_ON,
    BOLD_OFF,
    CAPTION_ON, // HTML 3.0
    CAPTION_OFF, // HTML 3.0
    CENTER_ON, // Netscape
    CENTER_OFF,  // Netscape
    CITATION_ON,
    CITATION_OFF,
    CODE_ON,
    CODE_OFF,
    COL_ON, // HTML3 Table Model Draft
    COL_OFF, // HTML3 Table Model Draft
    COLGROUP_ON, // HTML3 Table Model Draft
    COLGROUP_OFF, // HTML3 Table Model Draft
    CREDIT_ON, // HTML 3.0
    CREDIT_OFF, // HTML 3.0
    DD_ON,
    DD_OFF,
    DEFLIST_ON,
    DEFLIST_OFF,
    DELETEDTEXT_ON, // HTML 3.0
    DELETEDTEXT_OFF, // HTML 3.0
    DIRLIST_ON,
    DIRLIST_OFF,
    DIVISION_ON, // HTML 3.0
    DIVISION_OFF, // HTML 3.0
    DT_ON,
    DT_OFF,
    EMPHASIS_ON,
    EMPHASIS_OFF,
    FIGURE_ON, // HTML 3.0
    FIGURE_OFF, // HTML 3.0
    FONT_ON, // Netscape
    FONT_OFF, // Netscape
    FOOTNOTE_ON, // HTML 3.0
    FOOTNOTE_OFF, // HTML 3.0
    FORM_ON,
    FORM_OFF,
    FRAME_ON, // Netscape 2.0
    FRAME_OFF, // Netscape 2.0
    FRAMESET_ON, // Netscape 2.0
    FRAMESET_OFF, // Netscape 2.0
    HEAD1_ON,
    HEAD1_OFF,
    HEAD2_ON,
    HEAD2_OFF,
    HEAD3_ON,
    HEAD3_OFF,
    HEAD4_ON,
    HEAD4_OFF,
    HEAD5_ON,
    HEAD5_OFF,
    HEAD6_ON,
    HEAD6_OFF,
    HEAD_ON,
    HEAD_OFF,
    HTML_ON,
    HTML_OFF,
    IFRAME_ON, // IE 3.0b2
    IFRAME_OFF, // IE 3.0b2
    INSERTEDTEXT_ON, // HTML 3.0
    INSERTEDTEXT_OFF, // HTML 3.0
    ITALIC_ON,
    ITALIC_OFF,
    KEYBOARD_ON,
    KEYBOARD_OFF,
    LANGUAGE_ON, // HTML 3.0
    LANGUAGE_OFF, // HTML 3.0
    LISTHEADER_ON, // HTML 3.0
    LISTHEADER_OFF, // HTML 3.0
    LI_ON,
    LI_OFF,
    MAP_ON, // Netscape 2.0
    MAP_OFF, // Netscape 2.0
    MENULIST_ON,
    MENULIST_OFF,
    MULTICOL_ON, // Netscape 3.0b5
    MULTICOL_OFF, // Netscape 3.0b5
    NOBR_ON, // Netscape
    NOBR_OFF, // Netscape
    NOEMBED_ON, // Netscape 2.0
    NOEMBED_OFF, // Netscape 2.0
    NOFRAMES_ON, // Netscape 2.0
    NOFRAMES_OFF, // Netscape 2.0
    NOSCRIPT_ON, // Netscape 2.0
    NOSCRIPT_OFF, // Netscape 3.0
    NOTE_ON, // HTML 3.0
    NOTE_OFF, // HTML 3.0
    OBJECT_ON, // HotJava
    OBJECT_OFF, // HotJava
    ORDERLIST_ON,
    ORDERLIST_OFF,
    PARABREAK_ON,
    PARABREAK_OFF,
    PERSON_ON, // HTML 3.0
    PERSON_OFF, // HTML 3.0
    PLAINTEXT_ON, // HTML 3.0
    PLAINTEXT_OFF, // HTML 3.0
    PREFORMTXT_ON,
    PREFORMTXT_OFF,
    SAMPLE_ON,
    SAMPLE_OFF,
    SCRIPT_ON, // HTML 3.2
    SCRIPT_OFF,    // HTML 3.2
    SELECT_ON,
    SELECT_OFF,
    SHORTQUOTE_ON, // HTML 3.0
    SHORTQUOTE_OFF, // HTML 3.0
    SMALLPRINT_ON, // HTML 3.0
    SMALLPRINT_OFF, // HTML 3.0
    SPAN_ON, // Style Sheets
    SPAN_OFF, // Style Sheets
    STRIKETHROUGH_ON, // HTML 3.0
    STRIKETHROUGH_OFF, // HTML 3.0
    STRONG_ON,
    STRONG_OFF,
    STYLE_ON, // HTML 3.0
    STYLE_OFF, // HTML 3.0
    SUBSCRIPT_ON, // HTML 3.0
    SUBSCRIPT_OFF, // HTML 3.0
    SUPERSCRIPT_ON, // HTML 3.0
    SUPERSCRIPT_OFF, // HTML 3.0
    TABLE_ON, // HTML 3.0
    TABLE_OFF, // HTML 3.0
    TABLEDATA_ON, // HTML 3.0
    TABLEDATA_OFF, // HTML 3.0
    TABLEHEADER_ON, // HTML 3.0
    TABLEHEADER_OFF, // HTML 3.0
    TABLEROW_ON, // HTML 3.0
    TABLEROW_OFF, // HTML 3.0
    TBODY_ON, // HTML3 Table Model Draft
    TBODY_OFF, // HTML3 Table Model Draft
    TELETYPE_ON,
    TELETYPE_OFF,
    TEXTAREA_ON,
    TEXTAREA_OFF,
    TFOOT_ON, // HTML3 Table Model Draft
    TFOOT_OFF, // HTML3 Table Model Draft
    THEAD_ON, // HTML3 Table Model Draft
    THEAD_OFF, // HTML3 Table Model Draft
    TITLE_ON,
    TITLE_OFF,
    UNDERLINE_ON,
    UNDERLINE_OFF,
    UNORDERLIST_ON,
    UNORDERLIST_OFF,
    VARIABLE_ON,
    VARIABLE_OFF,

    // obsolete features
    XMP_ON,
    XMP_OFF,
    LISTING_ON,
    LISTING_OFF,

    // proposed features
    DEFINSTANCE_ON,
    DEFINSTANCE_OFF,
    STRIKE_ON,
    STRIKE_OFF,

    UNKNOWNCONTROL_ON,
    UNKNOWNCONTROL_OFF,

    // Microsoft features
    COMMENT2_ON, // HTML 2.0 ?
    COMMENT2_OFF, // HTML 2.0 ?
    MARQUEE_ON,
    MARQUEE_OFF,
    PLAINTEXT2_ON, // HTML 2.0 ?
    PLAINTEXT2_OFF, // HTML 2.0 ?

    SDFIELD_ON,
    SDFIELD_OFF
};

constexpr bool isOffToken(HtmlTokenId nToken)
{
    return (nToken == HtmlTokenId::NONE || nToken >= HtmlTokenId::ONOFF_START)
      ? (1 & static_cast<int>(nToken))
      : throw std::logic_error("Assertion failed!"); // C++11 does not do assert in constexpr
}

constexpr HtmlTokenId getOnToken(HtmlTokenId nToken)
{
    return (nToken == HtmlTokenId::NONE || nToken >= HtmlTokenId::ONOFF_START)
      ? HtmlTokenId(~1 & static_cast<int>(nToken))
      : throw std::logic_error("Assertion failed!"); // C++11 does not do assert in constexpr
}

// HTML attribute token (=Options)

enum class HtmlOptionId
{
// always starting from 256 on, greater than a char
BOOL_START          = 0x100,

// attributes without value
    CHECKED              = BOOL_START,
    COMPACT,
    DECLARE, // IExplorer 3.0b5
    DISABLED,
    ISMAP,
    MAYSCRIPT, // Netscape 3.0
    MULTIPLE,
    NOHREF, // Netscape
    NORESIZE, // Netscape 2.0
    NOSHADE, // Netscape
    NOWRAP,
    SDFIXED,
    SELECTED,
BOOL_END,

// attributes with a string as value
STRING_START        = BOOL_END,
    ACCEPT               = STRING_START,
    ACCESSKEY,
    ALT,
    AXIS,
    CHAR// HTML3 Table Model Draft
    CHARSET,
    CLASS,
    CODE, // HotJava
    CODETYPE,
    CONTENT,
    COORDS, // Netscape 2.0
    ENCTYPE,
    FACE, // IExplorer 2.0
    FRAMEBORDER, // IExplorer 3.0
    HTTPEQUIV,
    LANGUAGE, // JavaScript
    NAME,
    PROMPT,
    SHAPE,
    STANDBY,
    STYLE, // Style Sheets
    TITLE,
    VALUE,
    SDVAL, // StarDiv NumberValue
    DSVAL,
    SDNUM, // StarDiv NumberFormat
    DSNUM,
    DSFORMULA,
    SDLIBRARY,
    SDMODULE,
STRING_END,

// attributes with an SGML identifier as value
SGMLID_START        = STRING_END,
    ID                   = SGMLID_START,
    TARGET, // Netscape 2.0
    TO,
SGMLID_END,

// attributes with a URI as value
URI_START           = SGMLID_END,
    ACTION               = URI_START,
    ARCHIVE,
    BACKGROUND,
    CLASSID,
    CODEBASE, // HotJava
    DATA,
    HREF,
    SCRIPT,
    SRC,
    USEMAP, // Netscape 2.0
URI_END,

// attributes with a color as value (all Netscape)
COLOR_START         = URI_END,
    ALINK                = COLOR_START,
    BGCOLOR,
    BORDERCOLOR, // IExplorer 2.0
    BORDERCOLORLIGHT, // IExplorer 2.0
    BORDERCOLORDARK, // IExplorer 2.0
    COLOR,
    LINK,
    TEXT,
    VLINK,
COLOR_END,

// attributes with a numeric value
NUMBER_START        = COLOR_END,
    BORDER               = NUMBER_START,
    CELLSPACING, // HTML3 Table Model Draft
    CELLPADDING, // HTML3 Table Model Draft
    CHAROFF, // HTML3 Table Model Draft
    COLSPAN,
    FRAMESPACING, // IExplorer 3.0
    GUTTER, // Netscape 3.0b5
    HEIGHT,
    HSPACE,          // Netscape
    LEFT,
    LOOP, // IExplorer 2.0
    MARGINWIDTH, // Netscape 2.0
    MARGINHEIGHT, // Netscape 2.0
    MAXLENGTH,
    ROWSPAN,
    SCROLLAMOUNT, // IExplorer 2.0
    SCROLLDELAY, // IExplorer 2.0
    SPAN, // HTML3 Table Model Draft
    TABINDEX,
    VSPACE,          // Netscape
    WIDTH,
    ZINDEX,
NUMBER_END,

// attributes with Enum values
ENUM_START          = NUMBER_END,
    BEHAVIOR             = ENUM_START, // IExplorer 2.0
    CLEAR,
    DIR,
    DIRECTION, // IExplorer 2.0
    FORMAT,
    FRAME, // HTML3 Table Model Draft
    LANG,
    METHOD,
    REL,
    REV,
    RULES, // HTML3 Table Model Draft
    SCROLLING, // Netscape 2.0
    SDREADONLY,
    SUBTYPE,
    TYPE,
    VALIGN,
    VALUETYPE,
    WRAP,
    XML_SPACE,
ENUM_END,

// attributes with script code as value
SCRIPT_START        = ENUM_END,
    ONABORT              = SCRIPT_START, // JavaScript
    ONBLUR,      // JavaScript
    ONCHANGE,    // JavaScript
    ONCLICK,     // JavaScript
    ONERROR,     // JavaScript
    ONFOCUS,     // JavaScript
    ONLOAD,      // JavaScript
    ONMOUSEOUT,  // JavaScript
    ONMOUSEOVER, // JavaScript
    ONRESET,     // JavaScript
    ONSELECT,    // JavaScript
    ONSUBMIT,    // JavaScript
    ONUNLOAD,    // JavaScript

    SDONABORT,       // StarBasic
    SDONBLUR,        // StarBasic
    SDONCHANGE,      // StarBasic
    SDONCLICK,       // StarBasic
    SDONERROR,       // StarBasic
    SDONFOCUS,       // StarBasic
    SDONLOAD,        // StarBasic
    SDONMOUSEOUT,    // StarBasic
    SDONMOUSEOVER,   // StarBasic
    SDONRESET,       // StarBasic
    SDONSELECT,      // StarBasic
    SDONSUBMIT,      // StarBasic
    SDONUNLOAD,      // StarBasic
SCRIPT_END,

// attributes with context dependent values
CONTEXT_START       = SCRIPT_END,
    ALIGN                = CONTEXT_START,
    COLS, // Netscape 2.0 vs HTML 2.0
    ROWS, // Netscape 2.0 vs HTML 2.0
    SIZE,
    START,
CONTEXT_END,

// an unknown option
UNKNOWN                  = CONTEXT_END,
END
};

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Messung V0.5
C=93 H=97 G=94

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge