File: [cvsweb.bsd.lv] / docbook2mdoc / Attic / extern.h (download)
Revision 1.33, Mon Mar 25 23:14:44 2019 UTC (5 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.32: +2 -2 lines
Various parser simplifications and improvements.
Delete the redundant member "node" of struct parse.
The same is already available from cur->node.
No need to check in xml_char() whether an element is open.
Text outside the document element results in expat errors "not
well-formed (invalid token)" or "junk after document element"
and the function xml_char() is not called.
No need to check in xml_elem_end() whether an element is open.
Bogus closing tags result in expat errors "not well-formed (invalid
token)" or "mismatched tag" and the function xml_elem_end() is not
called.
In xml_elem_start(): no point in skipping the element name check
for the document element; and the error error "multiple refentries"
can no longer happen due to earlier cleanups.
|
/* $Id: extern.h,v 1.33 2019/03/25 23:14:44 schwarze Exp $ */
/*
* Copyright (c) 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2019 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* All recognised node types.
*/
enum nodeid {
NODE_NONE = 0, /* Must come first. */
/* Alpha-ordered hereafter. */
NODE_ACRONYM,
NODE_AFFILIATION,
NODE_ANCHOR,
NODE_APPLICATION,
NODE_ARG,
NODE_AUTHOR,
NODE_AUTHORGROUP,
NODE_BLOCKQUOTE,
NODE_BOOK,
NODE_BOOKINFO,
NODE_CAUTION,
NODE_CITEREFENTRY,
NODE_CITETITLE,
NODE_CMDSYNOPSIS,
NODE_CODE,
NODE_COLSPEC,
NODE_COMMAND,
NODE_CONSTANT,
NODE_COPYRIGHT,
NODE_DATE,
NODE_EDITOR,
NODE_EMAIL,
NODE_EMPHASIS,
NODE_ENTRY,
NODE_ENVAR,
NODE_FIELDSYNOPSIS,
NODE_FILENAME,
NODE_FIRSTNAME,
NODE_FIRSTTERM,
NODE_FOOTNOTE,
NODE_FUNCDEF,
NODE_FUNCPROTOTYPE,
NODE_FUNCSYNOPSIS,
NODE_FUNCSYNOPSISINFO,
NODE_FUNCTION,
NODE_GLOSSTERM,
NODE_GROUP,
NODE_HOLDER,
NODE_INDEX,
NODE_INDEXTERM,
NODE_INFO,
NODE_INFORMALEQUATION,
NODE_INFORMALTABLE,
NODE_INLINEEQUATION,
NODE_ITEMIZEDLIST,
NODE_KEYSYM,
NODE_LEGALNOTICE,
NODE_LINK,
NODE_LISTITEM,
NODE_LITERAL,
NODE_LITERALLAYOUT,
NODE_MANVOLNUM,
NODE_MEMBER,
NODE_MML_MATH,
NODE_MML_MFENCED,
NODE_MML_MFRAC,
NODE_MML_MI,
NODE_MML_MN,
NODE_MML_MO,
NODE_MML_MROW,
NODE_MML_MSUB,
NODE_MML_MSUP,
NODE_MODIFIER,
NODE_NOTE,
NODE_OPTION,
NODE_ORDEREDLIST,
NODE_ORGNAME,
NODE_OTHERNAME,
NODE_PARA,
NODE_PARAMDEF,
NODE_PARAMETER,
NODE_PERSONNAME,
NODE_PHRASE,
NODE_PREFACE,
NODE_PRIMARY,
NODE_PROGRAMLISTING,
NODE_PROMPT,
NODE_QUOTE,
NODE_REFCLASS,
NODE_REFDESCRIPTOR,
NODE_REFENTRY,
NODE_REFENTRYINFO,
NODE_REFENTRYTITLE,
NODE_REFMETA,
NODE_REFMETAINFO,
NODE_REFMISCINFO,
NODE_REFNAME,
NODE_REFNAMEDIV,
NODE_REFPURPOSE,
NODE_REFSYNOPSISDIV,
NODE_RELEASEINFO,
NODE_REPLACEABLE,
NODE_ROW,
NODE_SBR,
NODE_SCREEN,
NODE_SECONDARY,
NODE_SECTION,
NODE_SGMLTAG,
NODE_SIMPLELIST,
NODE_SPANSPEC,
NODE_STRUCTNAME,
NODE_SUBTITLE,
NODE_SURNAME,
NODE_SYNOPSIS,
NODE_TABLE,
NODE_TBODY,
NODE_TERM,
NODE_TEXT,
NODE_TFOOT,
NODE_TGROUP,
NODE_THEAD,
NODE_TIP,
NODE_TITLE,
NODE_TRADEMARK,
NODE_TYPE,
NODE_ULINK,
NODE_USERINPUT,
NODE_VARIABLELIST,
NODE_VARLISTENTRY,
NODE_VARNAME,
NODE_WARNING,
NODE_WORDASWORD,
NODE_YEAR,
NODE__MAX
};
/*
* All recognised attribute keys.
*/
enum attrkey {
/* Alpha-order... */
ATTRKEY_CHOICE = 0,
ATTRKEY_CLASS,
ATTRKEY_CLOSE,
ATTRKEY_ID,
ATTRKEY_LINKEND,
ATTRKEY_OPEN,
ATTRKEY_REP,
ATTRKEY__MAX
};
/*
* All [explicitly] recognised attribute values.
* If an attribute has ATTRVAL__MAX, it could be a free-form.
*/
enum attrval {
/* Alpha-order... */
ATTRVAL_MONOSPACED,
ATTRVAL_NOREPEAT,
ATTRVAL_OPT,
ATTRVAL_PLAIN,
ATTRVAL_REPEAT,
ATTRVAL_REQ,
ATTRVAL__MAX
};