Initial import of the CDE 2.1.30 sources from the Open Group.

This commit is contained in:
Peter Howkins
2012-03-10 18:21:40 +00:00
commit 83b6996daa
18978 changed files with 3945623 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
XCOMM $TOG: Imakefile /main/6 1998/08/10 15:56:00 mgreess $
#define IHaveSubdirs
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CXXDEBUGFLAGS=$(CXXDEBUGFLAGS)'
SUBDIRS = SGML
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
NamedTargetSubdirs(install_buildtools,$(SUBDIRS),\
install_buildtools,,install_buildtools)

View File

@@ -0,0 +1,162 @@
XCOMM Imakefile for installing the SGML-related files
DECL_FILES= \
dtinfo.decl
DTD_FILES= \
dtinfoBook.dtd \
dtinfoStyle.dtd \
dtinfoTOC.dtd \
docbook.dtd
ENTITY_FILES= \
dtinfo.af \
catalog \
hal.gml \
iso-catalog \
iso-amsa.gml \
iso-amsb.gml \
iso-amsc.gml \
iso-amsn.gml \
iso-amso.gml \
iso-amsr.gml \
iso-box.gml \
iso-cyr1.gml \
iso-cyr2.gml \
iso-dia.gml \
iso-grk1.gml \
iso-grk2.gml \
iso-grk3.gml \
iso-grk4.gml \
iso-lat1.gml \
iso-lat2.gml \
iso-mfrk.gml \
iso-mopf.gml \
iso-mscr.gml \
iso-num.gml \
iso-pub.gml \
iso-tech.gml
MISC_FILES= \
styprolog.sgml
ALL_FILES= $(DECL_FILES) $(DTD_FILES) $(ENTITY_FILES) $(MISC_FILES)
InstallMultipleDest(install_buildtools,$(ALL_FILES),$(INSTALL_INFOLIB_DIR)/C/SGML)
depend::
#if !UseNSGMLS
XCOMM symlinks used by dtinfogen when run from the build tree
XCOMM really ugly but will do the trick if sgmls is used...
includes:: clean_symlinks
$(LN) dtinfoBook.dtd "-%%Common_Desktop_Environment%%DTD_DtInfo_Bookcase_Description%%EN"
$(LN) dtinfoStyle.dtd "-%%Common_Desktop_Environment%%DTD_DtInfo_Style_Sheet%%EN"
$(LN) dtinfoTOC.dtd "-%%Common_Desktop_Environment%%DTD_DtInfo_Table_of_Contents%%EN"
$(LN) dtinfo.af "-%%Common_Desktop_Environment%%ENTITIES_DtInfo_Architectural_Forms%%EN"
$(LN) proxy.ss "-%%Common_Desktop_Environment%%ENTITIES_Dtinfo_SS_Localization%%EN"
$(LN) iso-catalog "-%%Common_Desktop_Environment%%ENTITIES_ISO_Catalog%%EN"
$(LN) docbook.dtd "-%%HaL_and_O'Reilly%%DTD_DocBook%%EN"
$(LN) iso-lat1.gml "ISO_8879:1986%%ENTITIES_Added_Latin_1%%EN"
$(LN) iso-lat2.gml "ISO_8879:1986%%ENTITIES_Added_Latin_2%%EN"
$(LN) iso-amsa.gml "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Arrow_Relations%%EN"
$(LN) iso-amsb.gml "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Binary_Operators%%EN"
$(LN) iso-amsc.gml "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Delimiters%%EN"
$(LN) iso-amsn.gml "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Negated_Relations%%EN"
$(LN) iso-amso.gml "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Ordinary%%EN"
$(LN) iso-amsr.gml "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Relations%%EN"
$(LN) iso-grk4.gml "ISO_8879:1986%%ENTITIES_Alternative_Greek_Symbols%%EN"
$(LN) iso-box.gml "ISO_8879:1986%%ENTITIES_Box_and_Line_Drawing%%EN"
$(LN) iso-dia.gml "ISO_8879:1986%%ENTITIES_Diacritical_Marks%%EN"
$(LN) iso-tech.gml "ISO_8879:1986%%ENTITIES_General_Technical%%EN"
$(LN) iso-grk1.gml "ISO_8879:1986%%ENTITIES_Greek_Letters%%EN"
$(LN) iso-grk3.gml "ISO_8879:1986%%ENTITIES_Greek_Symbols%%EN"
$(LN) iso-grk2.gml "ISO_8879:1986%%ENTITIES_Monotoniko_Greek%%EN"
$(LN) iso-cyr2.gml "ISO_8879:1986%%ENTITIES_Non-Russian_Cyrillic%%EN"
$(LN) iso-num.gml "ISO_8879:1986%%ENTITIES_Numeric_and_Special_Graphic%%EN"
$(LN) iso-pub.gml "ISO_8879:1986%%ENTITIES_Publishing%%EN"
$(LN) iso-cyr1.gml "ISO_8879:1986%%ENTITIES_Russian_Cyrillic%%EN"
$(LN) iso-mfrk.gml "ISO_9573-13:1991%%ENTITIES_Math_Alphabets:_Fraktur_%%EN"
$(LN) iso-mopf.gml "ISO_9573-13:1991%%ENTITIES_Math_Alphabets:_Open_Face_%%EN"
$(LN) iso-mscr.gml "ISO_9573-13:1991%%ENTITIES_Math_Alphabets:_Script_%%EN"
$(LN) iso-lat1.gml "ISO_8879-1986%%ENTITIES_Added_Latin_1%%EN"
$(LN) iso-lat2.gml "ISO_8879-1986%%ENTITIES_Added_Latin_2%%EN"
$(LN) iso-amsa.gml "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Arrow_Relations%%EN"
$(LN) iso-amsb.gml "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Binary_Operators%%EN"
$(LN) iso-amsc.gml "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Delimiters%%EN"
$(LN) iso-amsn.gml "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Negated_Relations%%EN"
$(LN) iso-amso.gml "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Ordinary%%EN"
$(LN) iso-amsr.gml "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Relations%%EN"
$(LN) iso-grk4.gml "ISO_8879-1986%%ENTITIES_Alternative_Greek_Symbols%%EN"
$(LN) iso-box.gml "ISO_8879-1986%%ENTITIES_Box_and_Line_Drawing%%EN"
$(LN) iso-dia.gml "ISO_8879-1986%%ENTITIES_Diacritical_Marks%%EN"
$(LN) iso-tech.gml "ISO_8879-1986%%ENTITIES_General_Technical%%EN"
$(LN) iso-grk1.gml "ISO_8879-1986%%ENTITIES_Greek_Letters%%EN"
$(LN) iso-grk3.gml "ISO_8879-1986%%ENTITIES_Greek_Symbols%%EN"
$(LN) iso-grk2.gml "ISO_8879-1986%%ENTITIES_Monotoniko_Greek%%EN"
$(LN) iso-cyr2.gml "ISO_8879-1986%%ENTITIES_Non-Russian_Cyrillic%%EN"
$(LN) iso-num.gml "ISO_8879-1986%%ENTITIES_Numeric_and_Special_Graphic%%EN"
$(LN) iso-pub.gml "ISO_8879-1986%%ENTITIES_Publishing%%EN"
$(LN) iso-cyr1.gml "ISO_8879-1986%%ENTITIES_Russian_Cyrillic%%EN"
$(LN) iso-mfrk.gml "ISO_9573-13-1991%%ENTITIES_Math_Alphabets:_Fraktur_%%EN"
$(LN) iso-mopf.gml "ISO_9573-13-1991%%ENTITIES_Math_Alphabets:_Open_Face_%%EN"
$(LN) iso-mscr.gml "ISO_9573-13-1991%%ENTITIES_Math_Alphabets:_Script_%%EN"
clean_symlinks::
$(RM) -- "-%%Common_Desktop_Environment%%DTD_DtInfo_Bookcase_Description%%EN"
$(RM) -- "-%%Common_Desktop_Environment%%DTD_DtInfo_Style_Sheet%%EN"
$(RM) -- "-%%Common_Desktop_Environment%%DTD_DtInfo_Table_of_Contents%%EN"
$(RM) -- "-%%Common_Desktop_Environment%%ENTITIES_DtInfo_Architectural_Forms%%EN"
$(RM) -- "-%%Common_Desktop_Environment%%ENTITIES_Dtinfo_SS_Localization%%EN"
$(RM) -- "-%%Common_Desktop_Environment%%ENTITIES_ISO_Catalog%%EN"
$(RM) -- "-%%HaL_and_O'Reilly%%DTD_DocBook%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Latin_1%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Latin_2%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Arrow_Relations%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Binary_Operators%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Delimiters%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Negated_Relations%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Ordinary%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Added_Math_Symbols:_Relations%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Alternative_Greek_Symbols%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Box_and_Line_Drawing%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Diacritical_Marks%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_General_Technical%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Greek_Letters%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Greek_Symbols%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Monotoniko_Greek%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Non-Russian_Cyrillic%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Numeric_and_Special_Graphic%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Publishing%%EN"
$(RM) "ISO_8879:1986%%ENTITIES_Russian_Cyrillic%%EN"
$(RM) "ISO_9573-13:1991%%ENTITIES_Math_Alphabets:_Fraktur_%%EN"
$(RM) "ISO_9573-13:1991%%ENTITIES_Math_Alphabets:_Open_Face_%%EN"
$(RM) "ISO_9573-13:1991%%ENTITIES_Math_Alphabets:_Script_%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Latin_1%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Latin_2%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Arrow_Relations%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Binary_Operators%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Delimiters%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Negated_Relations%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Ordinary%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Added_Math_Symbols:_Relations%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Alternative_Greek_Symbols%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Box_and_Line_Drawing%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Diacritical_Marks%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_General_Technical%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Greek_Letters%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Greek_Symbols%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Monotoniko_Greek%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Non-Russian_Cyrillic%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Numeric_and_Special_Graphic%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Publishing%%EN"
$(RM) "ISO_8879-1986%%ENTITIES_Russian_Cyrillic%%EN"
$(RM) "ISO_9573-13-1991%%ENTITIES_Math_Alphabets:_Fraktur_%%EN"
$(RM) "ISO_9573-13-1991%%ENTITIES_Math_Alphabets:_Open_Face_%%EN"
$(RM) "ISO_9573-13-1991%%ENTITIES_Math_Alphabets:_Script_%%EN"
clean:: clean_symlinks
#endif /* !UseNSGMLS */

View File

@@ -0,0 +1,68 @@
PUBLIC "-//Common Desktop Environment//DTD DtInfo Bookcase Description//EN" dtinfoBook.dtd
PUBLIC "-//Common Desktop Environment//DTD DtInfo Style Sheet//EN" dtinfoStyle.dtd
PUBLIC "-//Common Desktop Environment//DTD DtInfo Table of Contents//EN" dtinfoTOC.dtd
PUBLIC "-//Common Desktop Environment//ENTITIES DtInfo Architectural Forms//EN" dtinfo.af
PUBLIC "-//Common Desktop Environment//ENTITIES ISO Catalog//EN" iso-catalog
PUBLIC "-//HaL and O'Reilly//DTD DocBook//EN" docbook.dtd
-- ISO entities --
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" iso-lat1.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" iso-lat2.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" iso-amsa.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" iso-amsb.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" iso-amsc.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" iso-amsn.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" iso-amso.gml
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" iso-amsr.gml
PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" iso-grk4.gml
PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" iso-box.gml
PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" iso-dia.gml
PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" iso-tech.gml
PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" iso-grk1.gml
PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" iso-grk3.gml
PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" iso-grk2.gml
PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" iso-cyr2.gml
PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" iso-num.gml
PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" iso-pub.gml
PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" iso-cyr1.gml
PUBLIC "ISO 9573-13:1991//ENTITIES Math Alphabets: Fraktur //EN" iso-mfrk.gml
PUBLIC "ISO 9573-13:1991//ENTITIES Math Alphabets: Open Face //EN" iso-mopf.gml
PUBLIC "ISO 9573-13:1991//ENTITIES Math Alphabets: Script //EN" iso-mscr.gml
-- old style entity identifier --
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" iso-lat1.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 2//EN" iso-lat2.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Arrow Relations//EN" iso-amsa.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Binary Operators//EN" iso-amsb.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Delimiters//EN" iso-amsc.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Negated Relations//EN" iso-amsn.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Ordinary//EN" iso-amso.gml
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Relations//EN" iso-amsr.gml
PUBLIC "ISO 8879-1986//ENTITIES Alternative Greek Symbols//EN" iso-grk4.gml
PUBLIC "ISO 8879-1986//ENTITIES Box and Line Drawing//EN" iso-box.gml
PUBLIC "ISO 8879-1986//ENTITIES Diacritical Marks//EN" iso-dia.gml
PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN" iso-tech.gml
PUBLIC "ISO 8879-1986//ENTITIES Greek Letters//EN" iso-grk1.gml
PUBLIC "ISO 8879-1986//ENTITIES Greek Symbols//EN" iso-grk3.gml
PUBLIC "ISO 8879-1986//ENTITIES Monotoniko Greek//EN" iso-grk2.gml
PUBLIC "ISO 8879-1986//ENTITIES Non-Russian Cyrillic//EN" iso-cyr2.gml
PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN" iso-num.gml
PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN" iso-pub.gml
PUBLIC "ISO 8879-1986//ENTITIES Russian Cyrillic//EN" iso-cyr1.gml
PUBLIC "ISO 9573-13-1991//ENTITIES Math Alphabets: Fraktur //EN" iso-mfrk.gml
PUBLIC "ISO 9573-13-1991//ENTITIES Math Alphabets: Open Face //EN" iso-mopf.gml
PUBLIC "ISO 9573-13-1991//ENTITIES Math Alphabets: Script //EN" iso-mscr.gml
-- Compatibility with OLIAS --
PUBLIC "-//HaL Software Systems//DTD OLIAS Bookcase Description//EN" Bookcase.dtd
PUBLIC "-//HaL Software Systems//DTD OLIAS Style Sheet//EN" StyleSheet.dtd
PUBLIC "-//HaL Software Systems//DTD OLIAS Table of Contents//EN" TOC.dtd
PUBLIC "-//HaL Software Systems//ENTITIES OLIAS Architectural Forms//EN" olias.af
PUBLIC "-//HaL Software Systems//ENTITIES ISO Catalog//EN" iso-catalog
-- Enable optional localization of stylesheet fragments --
PUBLIC "-//Common Desktop Environment//ENTITIES Dtinfo SS Localization//EN" proxy.ss

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,400 @@
<!--
Bookcase forms
-->
<!ENTITY % DTINFO.Bookcase
"OLIAS NAME #FIXED Bookcase"
>
<!ENTITY % DTINFO.BookcaseDesc
"OLIAS NAME #FIXED BookcaseDesc"
>
<!ENTITY % DTINFO.BookcaseName
"OLIAS NAME #FIXED BookcaseName"
>
<!--
Style sheet forms
-->
<!ENTITY % DTINFO.StyleSheet
"OLIAS NAME #FIXED StyleSheet"
>
<!ENTITY % DTINFO.Style.Online
"OLIAS NAME #FIXED Online"
>
<!ENTITY % DTINFO.Style.Print
"OLIAS NAME #FIXED Print"
>
<!ENTITY % DTINFO.Style.Path
"OLIAS NAME #FIXED Path"
>
<!ENTITY % DTINFO.Style.Select
"OLIAS NAME #FIXED Select"
>
<!ENTITY % DTINFO.Style.Feature
"OLIAS NAME #FIXED Feature"
>
<!ENTITY % DTINFO.Style.Content
"OLIAS NAME #FIXED FeatureText"
>
<!ENTITY % DTINFO.Style.Choice
"OLIAS.Choice"
>
<!ENTITY % DTINFO.Style.AutoRef
"OLIAS NAME #FIXED AutoRef"
>
<!ENTITY % DTINFO.Style.AutoNum
"OLIAS NAME #FIXED AutoNumber"
>
<!--
Book forms to the file level.
-->
<!ENTITY % DTINFO.Book
"OLIAS NAME #FIXED Book"
>
<!ENTITY % DTINFO.BookTitle
"OLIAS NAME #FIXED BookTitle"
>
<!ENTITY % DTINFO.BookShortTitle
"OLIAS NAME #FIXED BookShortTitle"
>
<!ENTITY % DTINFO.BookAccess
"OLIAS NAME #FIXED BookAccess"
>
<!ENTITY % DTINFO.BookTab
"OLIAS NAME #FIXED BookTab"
>
<!ENTITY % DTINFO.BookTOCFile
"OLIAS NAME #FIXED BookTOCFile"
>
<!ENTITY % DTINFO.BookFile
"OLIAS NAME #FIXED BookFile"
>
<!--
TOC specific forms
-->
<!ENTITY % DTINFO.TOC
"OLIAS.TOC CDATA #FIXED '#CONTENT'"
>
<!ENTITY % DTINFO.TOCEntry
"OLIAS.TOCEntry CDATA #FIXED '#CONTENT'"
>
<!ENTITY % DTINFO.TOCLevel
"OLIAS.TOCLevel CDATA #FIXED "
>
<!--
Section forms.
-->
<!ENTITY % DTINFO.Section
"OLIAS.Section CDATA #FIXED '#CONTENT'"
>
<!ENTITY % DTINFO.Section.I
"OLIAS.Section CDATA #IMPLIED"
>
<!ENTITY % DTINFO.Title
"OLIAS.Title CDATA #FIXED"
>
<!ENTITY % DTINFO.Title.I
"OLIAS.Title CDATA #IMPLIED"
>
<!ENTITY % DTINFO.ShortTitle
"OLIAS.ShortTitle CDATA #FIXED"
>
<!ENTITY % DTINFO.ShortTitle.I
"OLIAS.ShortTitle CDATA #IMPLIED"
>
<!ENTITY % DTINFO.Ignore
"OLIAS.Ignore CDATA #FIXED '#CONTENT'"
>
<!ENTITY % DTINFO.Graphic
"OLIAS.Graphic CDATA #FIXED"
>
<!ENTITY % DTINFO.Graphic.I
"OLIAS.Graphic CDATA #IMPLIED"
>
<!ENTITY % DTINFO.Table
"OLIAS.Table CDATA #FIXED"
>
<!ENTITY % DTINFO.Table.I
"OLIAS.Table CDATA #IMPLIED"
>
<!--
Search scope specific forms.
-->
<!ENTITY % DTINFO.Scope.Example
"OLIAS.Scope NAME #FIXED Example"
>
<!ENTITY % DTINFO.Scope.Graphic
"OLIAS.Scope NAME #FIXED Graphic"
>
<!ENTITY % DTINFO.Scope.Index
"OLIAS.Scope NAME #FIXED Index"
>
<!ENTITY % DTINFO.Scope.Table
"OLIAS.Scope NAME #FIXED Table"
>
<!ENTITY % DTINFO.Scope.Title
"OLIAS.Scope NAME #FIXED Title"
>
<!--
Data forms. By default any element specified via DTINFO, has an
implied DTINFO.Value attribute that refers to the element's content.
You can add "prefix" and "suffix" strings depending on the need.
The syntaxes used for referencing values are:
attr() - means use an attribute's value as the content of
the AF.
concat() - means concatenate the values of the subelements
and attribute values listed.
firstof() - choose the value from the following order of
possibilities. The first nonempty value
returned is used.
#CONTENT - Use the element's content as the value. This is
especially useful on the DTINFO.ID, and
DTINFO.IDREF forms.
Values for the Structural AFs.
%DTINFO.Value; "concat( attr(Label), RefTitle, ManVolNum )"
%DTINFO.Value; "firstof( attr(Fileref), attr(Other), #CONTENT )"
Hypertext forms.
%DTINFO.ID; "attr(Id)"
%DTINFO.IDREF; "attr(Linkend)"
Style sheet references. The first is absolute, the second is
indicating that the Style attribute contains the reference.
%DTINFO.Style; "sty1"
%DTINFO.Style; "attr(Style)"
-->
<!ENTITY % DTINFO.Value
"OLIAS.Value CDATA #FIXED"
>
<!ENTITY % DTINFO.ID
"OLIAS.ID CDATA #FIXED"
>
<!ENTITY % DTINFO.ID.I
"OLIAS.ID CDATA #IMPLIED"
>
<!ENTITY % DTINFO.IDREF
"OLIAS.IDREF CDATA #FIXED"
>
<!ENTITY % DTINFO.IDREF.I
"OLIAS.IDREF CDATA #IMPLIED"
>
<!ENTITY % DTINFO.Style
"OLIAS.Style CDATA #FIXED"
>
<!ENTITY % DTINFO.Style.I
"OLIAS.Style CDATA #IMPLIED"
>
<!ENTITY % DTINFO.XREFLABEL
"OLIAS.XREFLABEL CDATA #FIXED"
>
<!ENTITY % DTINFO.XREF
"OLIAS.XREF CDATA #FIXED"
>
<!-- *** BACKWARDS COMPATIBILITY *** -->
<!--
Bookcase forms
-->
<!ENTITY % OLIAS.Bookcase
"OLIAS NAME #FIXED Bookcase"
>
<!ENTITY % OLIAS.BookcaseDesc
"OLIAS NAME #FIXED BookcaseDesc"
>
<!ENTITY % OLIAS.BookcaseName
"OLIAS NAME #FIXED BookcaseName"
>
<!--
Style sheet forms
-->
<!ENTITY % OLIAS.StyleSheet
"OLIAS NAME #FIXED StyleSheet"
>
<!ENTITY % OLIAS.Style.Online
"OLIAS NAME #FIXED Online"
>
<!ENTITY % OLIAS.Style.Print
"OLIAS NAME #FIXED Print"
>
<!ENTITY % OLIAS.Style.Path
"OLIAS NAME #FIXED Path"
>
<!ENTITY % OLIAS.Style.Select
"OLIAS NAME #FIXED Select"
>
<!ENTITY % OLIAS.Style.Feature
"OLIAS NAME #FIXED Feature"
>
<!ENTITY % OLIAS.Style.Content
"OLIAS NAME #FIXED FeatureText"
>
<!ENTITY % OLIAS.Style.Choice
"OLIAS.Choice"
>
<!ENTITY % OLIAS.Style.AutoRef
"OLIAS NAME #FIXED AutoRef"
>
<!ENTITY % OLIAS.Style.AutoNum
"OLIAS NAME #FIXED AutoNumber"
>
<!--
Book forms to the file level.
-->
<!ENTITY % OLIAS.Book
"OLIAS NAME #FIXED Book"
>
<!ENTITY % OLIAS.BookTitle
"OLIAS NAME #FIXED BookTitle"
>
<!ENTITY % OLIAS.BookShortTitle
"OLIAS NAME #FIXED BookShortTitle"
>
<!ENTITY % OLIAS.BookAccess
"OLIAS NAME #FIXED BookAccess"
>
<!ENTITY % OLIAS.BookTab
"OLIAS NAME #FIXED BookTab"
>
<!ENTITY % OLIAS.BookTOCFile
"OLIAS NAME #FIXED BookTOCFile"
>
<!ENTITY % OLIAS.BookFile
"OLIAS NAME #FIXED BookFile"
>
<!--
TOC specific forms
-->
<!ENTITY % OLIAS.TOC
"OLIAS.TOC CDATA #FIXED '#CONTENT'"
>
<!ENTITY % OLIAS.TOCEntry
"OLIAS.TOCEntry CDATA #FIXED '#CONTENT'"
>
<!ENTITY % OLIAS.TOCLevel
"OLIAS.TOCLevel CDATA #FIXED "
>
<!--
Section forms.
-->
<!ENTITY % OLIAS.Section
"OLIAS.Section CDATA #FIXED '#CONTENT'"
>
<!ENTITY % OLIAS.Section.I
"OLIAS.Section CDATA #IMPLIED"
>
<!ENTITY % OLIAS.Title
"OLIAS.Title CDATA #FIXED"
>
<!ENTITY % OLIAS.Title.I
"OLIAS.Title CDATA #IMPLIED"
>
<!ENTITY % OLIAS.ShortTitle
"OLIAS.ShortTitle CDATA #FIXED"
>
<!ENTITY % OLIAS.ShortTitle.I
"OLIAS.ShortTitle CDATA #IMPLIED"
>
<!ENTITY % OLIAS.Ignore
"OLIAS.Ignore CDATA #FIXED '#CONTENT'"
>
<!ENTITY % OLIAS.Graphic
"OLIAS.Graphic CDATA #FIXED"
>
<!ENTITY % OLIAS.Graphic.I
"OLIAS.Graphic CDATA #IMPLIED"
>
<!ENTITY % OLIAS.Table
"OLIAS.Table CDATA #FIXED"
>
<!ENTITY % OLIAS.Table.I
"OLIAS.Table CDATA #IMPLIED"
>
<!--
Search scope specific forms.
-->
<!ENTITY % OLIAS.Scope.Example
"OLIAS.Scope NAME #FIXED Example"
>
<!ENTITY % OLIAS.Scope.Graphic
"OLIAS.Scope NAME #FIXED Graphic"
>
<!ENTITY % OLIAS.Scope.Index
"OLIAS.Scope NAME #FIXED Index"
>
<!ENTITY % OLIAS.Scope.Table
"OLIAS.Scope NAME #FIXED Table"
>
<!ENTITY % OLIAS.Scope.Title
"OLIAS.Scope NAME #FIXED Title"
>
<!--
Data forms. By default any element specified via OLIAS, has an
implied OLIAS.Value attribute that refers to the element's content.
You can add "prefix" and "suffix" strings depending on the need.
The syntaxes used for referencing values are:
attr() - means use an attribute's value as the content of
the AF.
concat() - means concatenate the values of the subelements
and attribute values listed.
firstof() - choose the value from the following order of
possibilities. The first nonempty value
returned is used.
#CONTENT - Use the element's content as the value. This is
especially useful on the OLIAS.ID, and
OLIAS.IDREF forms.
Values for the Structural AFs.
OLIAS.Value CDATA #FIXED
"concat( attr(Label), RefTitle, ManVolNum )"
OLIAS.Value CDATA #FIXED
"firstof( attr(Fileref), attr(Other), #CONTENT )"
Hypertext forms.
OLIAS.ID CDATA #FIXED "attr(Id)"
OLIAS.IDREF CDATA #FIXED "attr(Linkend)"
Style sheet references. The first is absolute, the second is
indicating that the Style attribute contains the reference.
OLIAS.Style CDATA #FIXED "sty1"
OLIAS.Style CDATA #FIXED "attr(Style)"
-->
<!ENTITY % OLIAS.Value
"OLIAS.Value CDATA #FIXED"
>
<!ENTITY % OLIAS.ID
"OLIAS.ID CDATA #FIXED"
>
<!ENTITY % OLIAS.ID.I
"OLIAS.ID CDATA #IMPLIED"
>
<!ENTITY % OLIAS.IDREF
"OLIAS.IDREF CDATA #FIXED"
>
<!ENTITY % OLIAS.IDREF.I
"OLIAS.IDREF CDATA #IMPLIED"
>
<!ENTITY % OLIAS.Style
"OLIAS.Style CDATA #FIXED"
>
<!ENTITY % OLIAS.Style.I
"OLIAS.Style CDATA #IMPLIED"
>

View File

@@ -0,0 +1,106 @@
<!SGML "ISO 8879:1986"
CHARSET
BASESET "ISO 646:1983//CHARSET
International Reference Version (IRV)//ESC 2/5 4/0"
-- BASESET "ISO 646:1983//CHARSET IRV//ESC 2/8 4/2" --
DESCSET
0 9 UNUSED
9 2 9
11 2 UNUSED
13 1 13
14 18 UNUSED
32 95 32
127 1 UNUSED
BASESET "ISO Registration Number 100//CHARSET
ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
DESCSET 128 32 UNUSED
160 96 32
CAPACITY SGMLREF
TOTALCAP 99000000
ATTCAP 1000000
ATTCHCAP 1000000
AVGRPCAP 1000000
ELEMCAP 1000000
ENTCAP 1000000
ENTCHCAP 1000000
EXGRPCAP 35000
EXNMCAP 35000
GRPCAP 1000000
IDCAP 32000000
IDREFCAP 32000000
LKNMCAP 35000
LKSETCAP 35000
MAPCAP 35000
NOTCAP 35000
NOTCHCAP 35000
SCOPE DOCUMENT
SYNTAX
SHUNCHAR CONTROLS 0 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 28 29
30 31 127
BASESET "ISO 646:1983//CHARSET
International Reference Version (IRV)//ESC 2/5 4/0"
DESCSET 0 128 0
FUNCTION RE 13
RS 10
SPACE 32
TAB SEPCHAR 9
NAMING LCNMSTRT ""
UCNMSTRT ""
LCNMCHAR ".-"
UCNMCHAR ".-"
NAMECASE GENERAL YES
ENTITY NO
DELIM GENERAL SGMLREF
SHORTREF SGMLREF
NAMES SGMLREF
QUANTITY SGMLREF
ATTCNT 256
GRPCNT 253
GRPGTCNT 253
LITLEN 8092
NAMELEN 128
TAGLVL 128
FEATURES
MINIMIZE
DATATAG NO
OMITTAG YES
RANK NO
SHORTTAG YES
LINK
SIMPLE NO
IMPLICIT NO
EXPLICIT NO
OTHER
CONCUR NO
SUBDOC YES 32
FORMAL YES
APPINFO
NONE
>
<!-- $XConsortium: dtinfo.decl /main/6 1996/10/16 17:39:00 cde-hal $ -->
<!--
Reference Concrete Syntax modifications for use with DtInfo Toolkit
$Revision: /main/6 $
-->

View File

@@ -0,0 +1,122 @@
<!-- $XConsortium: dtinfoBook.dtd /main/5 1996/11/07 11:56:16 drk $ -->
<!--
Formal Public Identifier (FPI):
-//Common Desktop Environment//DTD DtInfo Bookcase Description//EN
-->
<!-- DtInfo Architectural Forms -->
<!ENTITY % OLAF PUBLIC
"-//Common Desktop Environment//ENTITIES DtInfo Architectural Forms//EN"
>
%OLAF;
<!ENTITY % ISO-List PUBLIC "-//Common Desktop Environment//ENTITIES ISO Catalog//EN">
%ISO-List;
%ISOamsa;
%ISOamsb;
%ISOamsn;
%ISOamso;
%ISOamsr;
%ISOcyr1;
%ISOdia;
%ISOgrk1;
%ISOgrk3;
%ISOlat1;
%ISOlat2;
%ISOnum;
%ISOpub;
%ISOtech;
<!--
Describe the BookCase contents.
-->
<!ELEMENT BookCase - - ( BookcaseName, BookcaseDesc, StyleSheet+, Book+ ) >
<!ATTLIST BookCase
StyleSheet IDREF #REQUIRED
%DTINFO.Bookcase;
%DTINFO.Style; "attr( StyleSheet )"
>
<!ELEMENT BookcaseName - - ( #PCDATA ) >
<!ATTLIST BookcaseName
%DTINFO.BookcaseName;
>
<!ELEMENT BookcaseDesc - - ( #PCDATA ) >
<!ATTLIST BookcaseDesc
%DTINFO.BookcaseDesc;
>
<!ELEMENT Book - - ( Title, ShortTitle?, Access?, Tab*, TOCFile, File+ ) >
<!ATTLIST Book
StyleSheet IDREF #IMPLIED
%DTINFO.Book;
%DTINFO.Style; "attr( StyleSheet )"
>
<!ELEMENT Title - - ( #PCDATA ) >
<!ATTLIST Title
%DTINFO.BookTitle;
>
<!ELEMENT ShortTitle - - ( #PCDATA ) >
<!ATTLIST ShortTitle
%DTINFO.BookShortTitle;
>
<!ELEMENT Access - O EMPTY >
<!ATTLIST Access
Feature CDATA #REQUIRED
VenCode CDATA #REQUIRED
Version CDATA #REQUIRED
Grouping CDATA #REQUIRED
DefaultSection CDATA #REQUIRED
DemoTerms CDATA #IMPLIED
%DTINFO.BookAccess;
>
<!ELEMENT Tab - - ( #PCDATA ) >
<!ATTLIST Tab
TabLoc CDATA #REQUIRED
%DTINFO.BookTab;
%DTINFO.IDREF; "attr( TabLoc )"
>
<!--
Each file may override the default style sheet that its contents
will use, and any section within the file can override the style
sheet via a DTD modification.
-->
<!ELEMENT TOCFile - - ( #PCDATA ) >
<!ATTLIST TOCFile
%DTINFO.BookTOCFile;
>
<!ELEMENT File - - ( #PCDATA ) >
<!ATTLIST File
%DTINFO.BookFile;
>
<!--
Enable optional localization of stylesheet fragments.
The entity name used here is irrelevant; the FPI matches
one used in the toolkit's catalog and (optionally) in user's
local catalog.
-->
<!ENTITY % LocalFoo PUBLIC
"-//Common Desktop Environment//ENTITIES Dtinfo SS Localization//EN"
>
%LocalFoo;
<!-- Style Sheet DTD -->
<!ENTITY % StyleSheet.dtd PUBLIC
"-//Common Desktop Environment//DTD DtInfo Style Sheet//EN"
>
%StyleSheet.dtd;

View File

@@ -0,0 +1,345 @@
<!-- $XConsortium: dtinfoStyle.dtd /main/20 1996/11/07 11:56:27 drk $ -->
<!--
The known set of features for rendering online and printed
material.
-->
<!-- signed values -->
<!ENTITY % integer "CDATA" >
<!-- true or false -->
<!ENTITY % torf "NAME" >
<!ENTITY % online-only "" >
<!ENTITY % print-only "Footer | Header | Medium | PageBreak" >
<!ENTITY % feature "
Border |
Cell |
ColFormat |
Font |
Highlight |
Ignore |
Layout |
LineBreak |
Margin |
Position |
Prefix |
Row |
Suffix |
TGroup |
Table |
%print-only;
%online-only;
">
<!ENTITY % content-features "
Font |
Highlight |
Layout |
LineBreak |
Position |
Prefix |
Suffix
">
<!-- Parameter entities for CALS table col/row separators -->
<!ENTITY % cals.colsep "
Colsep %integer; #IMPLIED
">
<!ENTITY % cals.rowsep "
Rowsep %integer; #IMPLIED
">
<!ENTITY % cals.colrowsep "
%cals.colsep;
%cals.rowsep;
">
<!-- Document structure -->
<!ELEMENT StyleSheet - O ( AutoNumber*, (Path, ((Online, Print?)|(Print, Online?)) )+ ) >
<!ATTLIST StyleSheet
Name ID #REQUIRED
Version NAME #FIXED "CDE-1.1"
%DTINFO.StyleSheet;
%DTINFO.ID; "attr( Name )"
>
<!ELEMENT Path - O ( (#PCDATA | Select)+ ) >
<!ATTLIST Path
%DTINFO.Style.Path;
>
<!ELEMENT Select - - ( #PCDATA )>
<!ATTLIST Select
%DTINFO.Style.Select;
>
<!ELEMENT Online - O ( (%feature;)* ) -(%print-only;) >
<!ATTLIST Online
%DTINFO.Style.Online;
>
<!ELEMENT Print - O ( (%feature;)* ) >
<!ATTLIST Print
%DTINFO.Style.Print;
>
<!--
FEATURES
-->
<!ELEMENT AutoNumber - O EMPTY>
<!ATTLIST AutoNumber
%DTINFO.Style.AutoNum;
ID ID #REQUIRED
Type (Arabic | UCalpha | LCalpha
| UCroman | LCroman) Arabic
Initial CDATA "1"
Delta %integer; 1
Reset NAMES #REQUIRED
Counter NAMES #REQUIRED
>
<!--
FONTS
-->
<!--
deprecated per new override rules of Family:
any font family specification overrides the inheritance
of a previously specified font family
<!ELEMENT ActiveCharset - O EMPTY >
<!ATTLIST ActiveCharset
Charset CDATA #REQUIRED
%DTINFO.Style.Feature;
>
-->
<!ELEMENT Font - O ( Family* ) >
<!ATTLIST Font
Fallback (sans|serif|mono|symbol|mincho|gothic)
#IMPLIED
Position (sub|super|baseline|subscript|superscript)
#IMPLIED
Size %integer; #IMPLIED
Slant (roman|italic) #IMPLIED
Spacing (char|monospace|prop) #IMPLIED
Style CDATA #IMPLIED
Weight (medium|bold) #IMPLIED
Width (normal|narrow) #IMPLIED
%DTINFO.Style.Feature;
>
<!ELEMENT Family - O EMPTY>
<!ATTLIST Family
Name CDATA #REQUIRED
Charset CDATA #REQUIRED
Foundry CDATA #IMPLIED
%DTINFO.Style.Feature;
>
<!ELEMENT Highlight - O EMPTY >
<!ATTLIST Highlight
BGColor CDATA #IMPLIED
FGColor CDATA #IMPLIED
Overline %torf; #IMPLIED
StrikeThrough %torf; #IMPLIED
Underline %torf; #IMPLIED
%DTINFO.Style.Feature;
>
<!--
LAYOUT
-->
<!ELEMENT Layout - O EMPTY>
<!ATTLIST Layout
-- Spacing: above, below, between --
ASpace %integer; #IMPLIED
BSpace %integer; #IMPLIED
Leading %integer; #IMPLIED
-- Indentation: first line, left, right --
FIndent %integer; #IMPLIED
LIndent %integer; #IMPLIED
RIndent %integer; #IMPLIED
-- Text flow --
Flow (verbatim|filled) #IMPLIED
Justify (left|right|center) #IMPLIED
Wrap (block|join|none) #IMPLIED
%DTINFO.Style.Feature;
>
<!ELEMENT LineBreak - O EMPTY >
<!ATTLIST LineBreak
%DTINFO.Style.Choice; (after|before|both) #IMPLIED
%DTINFO.Style.Feature;
>
<!ELEMENT Margin - O EMPTY >
<!ATTLIST Margin
Bottom %integer; #IMPLIED
Left %integer; #IMPLIED
Right %integer; #IMPLIED
Top %integer; #IMPLIED
%DTINFO.Style.Feature;
>
<!ELEMENT Position - O EMPTY >
<!ATTLIST Position
Horiz
(lcorner|left|lmargin|rcorner|right|rmargin|center)
#IMPLIED
Vert (top|bottom|middle) #IMPLIED
%DTINFO.Style.Feature;
>
<!--
MISCELLANEOUS
-->
<!ELEMENT Border - O EMPTY >
<!ATTLIST Border
Display CDATA #REQUIRED
Thickness NUMBER #IMPLIED
%DTINFO.Style.Feature;
>
<!--
<!ELEMENT Graphic - O EMPTY >
<!ATTLIST Graphic
Detachable (true|false) #IMPLIED
Height NUMBER #IMPLIED
Width NUMBER #IMPLIED
%DTINFO.Style.Feature;
>
-->
<!ELEMENT Ignore - O EMPTY>
<!ATTLIST Ignore
%DTINFO.Style.Choice; (true) true
%DTINFO.Style.Feature;
>
<!ELEMENT (Prefix|Suffix) - - (Content, (%content-features;)* ) >
<!ATTLIST (Prefix|Suffix)
%DTINFO.Style.Feature;
>
<!ELEMENT Content O O (#PCDATA|Auto)+ >
<!ATTLIST Content
%DTINFO.Style.Content;
>
<!ELEMENT Auto - O EMPTY>
<!ATTLIST Auto
%DTINFO.Style.AutoRef;
ID IDREF #REQUIRED
>
<!--
PRINT
-->
<!ELEMENT (Footer|Header) - - (Content, (%content-features;)* ) >
<!ATTLIST (Footer|Header)
%DTINFO.Style.Feature;
>
<!ELEMENT Medium - O EMPTY >
<!ATTLIST Medium
Orientation (Landscape|Portrait) #IMPLIED
Size (Letter|Legal|Tabloid|Ledger
|Statement|Executive
|A3|A4|A5|B4|B5|folio|quarto)
#IMPLIED
%DTINFO.Style.Feature;
>
<!ELEMENT PageBreak - O EMPTY>
<!ATTLIST PageBreak
%DTINFO.Style.Choice; (before|after|both) #REQUIRED
%DTINFO.Style.Feature;
>
<!--
TABLES
-->
<!ELEMENT Table - O EMPTY>
<!ATTLIST Table
%cals.colrowsep;
Frame CDATA #REQUIRED
%DTINFO.Style.Feature;
>
<!ELEMENT TGroup - O EMPTY>
<!ATTLIST TGroup
CharAlign CDATA "."
Cols CDATA #IMPLIED
Justify CDATA "left"
VJustify CDATA "top"
%cals.colrowsep;
%DTINFO.Style.Feature;
>
<!ELEMENT ColFormat - O EMPTY>
<!ATTLIST ColFormat
CharAlign CDATA #IMPLIED
Justify CDATA #IMPLIED
Name CDATA #IMPLIED
Width CDATA #IMPLIED
%cals.colrowsep;
%DTINFO.Style.Feature;
>
<!ELEMENT Row - O EMPTY>
<!ATTLIST Row
VJustify CDATA #IMPLIED
%cals.rowsep;
%DTINFO.Style.Feature;
>
<!ELEMENT Cell - O EMPTY>
<!ATTLIST Cell
CharAlign CDATA #IMPLIED
ColRef CDATA #IMPLIED
ColStart CDATA #IMPLIED
ColEnd CDATA #IMPLIED
MoreRows CDATA 1
Justify CDATA #IMPLIED
VJustify CDATA #IMPLIED
%cals.colrowsep;
%DTINFO.Style.Feature;
>

View File

@@ -0,0 +1,141 @@
<!-- $XConsortium: dtinfoTOC.dtd /main/4 1996/11/07 11:56:37 drk $ -->
<!--
Formal Public Identifier (FPI):
-//Common Desktop Environment//DTD DtInfo Table of Contents//EN
-->
<!-- DtInfo Architectural Forms -->
<!ENTITY % OLAF PUBLIC
"-//Common Desktop Environment//ENTITIES DtInfo Architectural Forms//EN"
>
%OLAF;
<!ENTITY % ISO-List PUBLIC "-//Common Desktop Environment//ENTITIES ISO Catalog//EN">
%ISO-List;
%ISOamsa;
%ISOamsb;
%ISOamsn;
%ISOamso;
%ISOamsr;
%ISOcyr1;
%ISOdia;
%ISOgrk1;
%ISOgrk3;
%ISOlat1;
%ISOlat2;
%ISOnum;
%ISOpub;
%ISOtech;
<!ENTITY % userphrase.gp "" >
<!ENTITY % inlinechar.gp "#PCDATA %userphrase.gp;" >
<!ELEMENT TOC - - ( Title, TitleAbbrev?, TOCfront*, (TOCpart+ | TOCchap+),
TOCback* ) >
<!ATTLIST TOC
Id ID #REQUIRED
%DTINFO.TOC;
%DTINFO.ID; "attr( Id )"
>
<!ELEMENT Title - - ( (%inlinechar.gp;)+ ) >
<!ATTLIST Title
Id ID #IMPLIED
%DTINFO.Title; "#CONTENT"
%DTINFO.ID; "attr( Id )"
%DTINFO.Scope.Title;
>
<!ELEMENT TitleAbbrev - - ( (%inlinechar.gp;)+ ) >
<!ATTLIST TitleAbbrev
Id ID #IMPLIED
%DTINFO.ShortTitle; "#CONTENT"
%DTINFO.ID; "attr( Id )"
>
<!ELEMENT TOCfront - - ( (%inlinechar.gp;)+ ) >
<!ATTLIST TOCfront
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
>
<!ELEMENT TOCentry - - ( (%inlinechar.gp;)+ ) >
<!ATTLIST TOCentry
Id ID #IMPLIED
Linkend CDATA #REQUIRED
Pagenum CDATA #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.IDREF; "attr( Linkend )"
>
<!ELEMENT TOCpart - - ( TOCentry+, TOCchap* ) >
<!ATTLIST TOCpart
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOCchap - - ( TOCentry+, TOClevel1* ) >
<!ATTLIST TOCchap
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOClevel1 - - ( TOCentry+, TOClevel2* ) >
<!ATTLIST TOClevel1
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOClevel2 - - ( TOCentry+, TOClevel3* ) >
<!ATTLIST TOClevel2
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOClevel3 - - ( TOCentry+, TOClevel4* ) >
<!ATTLIST TOClevel3
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOClevel4 - - ( TOCentry+, TOClevel5* ) >
<!ATTLIST TOClevel4
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOClevel5 - - ( TOCentry+ ) >
<!ATTLIST TOClevel5
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
%DTINFO.TOCEntry;
>
<!ELEMENT TOCback - - ( (%inlinechar.gp;)+ ) >
<!ATTLIST TOCback
Id ID #IMPLIED
%DTINFO.ID; "attr( Id )"
>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
<!-- $XConsortium: hal.gml /main/2 1996/10/29 16:18:01 drk $ -->
<!--
Copyright (c) 1992 HaL Computer Systems, Inc. All rights reserved.
UNPUBLISHED - - rights reserved under the Copyright Laws of the United
States. Use of a copyright notice is precautionary only and does not
imply publication or disclosure.
This software contains confidential information and trade secrets of HaL
Computer Systems, Inc. Use, disclosure, or reproduction is prohibited
without the prior express written permission of HaL Computer Systems, Inc.
RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the Government is subject to
restrictions as set forth in subparagraph (c)(l)(ii) of the Rights in
Technical Data and Computer Software clause at DFARS 252.227-7013.
HaL Computer Systems, Inc.
1315 Dell Avenue, Campbell, CA 95008
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % HaL PUBLIC
"ISO 8879-1986//ENTITIES HaL Symbol Set//EN">
%HaL;
-->
<!ENTITY braceex SDATA "[braceex]" -- bracket (or brace) extender -->
<!ENTITY caretkb CDATA "^" -- ascii caret on a keyboard -->
<!ENTITY cpsans CDATA "&#169;" -- copyright sans serif -->
<!ENTITY dquot CDATA "&#34;" -- straight down double quote -->
<!ENTITY frac CDATA "/" -- fraction solidus -->
<!ENTITY hardreturn SDATA "lnfeed" -- linefeed, hard return, force line break -->
<!ENTITY harrex SDATA "[harrex ]" -- horizontal arrow extender -->
<!ENTITY intbot SDATA "[intbot ]" -- integral bottom -->
<!ENTITY intex SDATA "[intex ]" -- integral extender -->
<!ENTITY inttop SDATA "[inttop ]" -- integral top -->
<!ENTITY lasquo SDATA "[lasquo ]" -- left angle single quote, guillemot single -->
<!ENTITY lcubbot SDATA "[lcubbot]" -- left curly bracket bottom -->
<!ENTITY lcubmid SDATA "[lcubmid]" -- left curly bracket middle -->
<!ENTITY lcubtop SDATA "[lcubtop]" -- left curly bracket top -->
<!ENTITY lnfeed SDATA "lnfeed" -- linefeed, hard return, force line break -->
<!ENTITY lparbot SDATA "[lparbot]" -- left paren bottom -->
<!ENTITY lparex SDATA "[lparex ]" -- left paren extender -->
<!ENTITY lpartop SDATA "[lpartop]" -- left paren top -->
<!ENTITY lsqbbot SDATA "[lsqbbot]" -- left square bracket bottom -->
<!ENTITY lsqbex SDATA "[lsqbex ]" -- left square bracket extender -->
<!ENTITY lsqbtop SDATA "[lsqbtop]" -- left square bracket top -->
<!ENTITY nowidth CDATA "" -- nonprinting, zero-width character -->
<!ENTITY radicex SDATA "[radicex]" -- radical extender -->
<!ENTITY rasquo SDATA "[rasquo ]" -- right angle single quote, guillemot single -->
<!ENTITY rcubbot SDATA "[rcubbot]" -- right curly bracket bottom -->
<!ENTITY rcubmid SDATA "[rcubmid]" -- right curly bracket middle -->
<!ENTITY rcubtop SDATA "[rcubtop]" -- right curly bracket top -->
<!ENTITY regsans CDATA "&#174;" -- registered trademark sans serif -->
<!ENTITY return SDATA "[return ]" -- carriage return representation -->
<!ENTITY rparbot SDATA "[rparbot]" -- right paren bottom -->
<!ENTITY rparex SDATA "[rparex ]" -- right paren extender -->
<!ENTITY rpartop SDATA "[rpartop]" -- right paren top -->
<!ENTITY rsqbbot SDATA "[rsqbbot]" -- right square bracket bottom -->
<!ENTITY rsqbex SDATA "[rsqbex ]" -- right square bracket extender -->
<!ENTITY rsqbtop SDATA "[rsqbtop]" -- right square bracket top -->
<!ENTITY space CDATA " " -- the space that a spacebar produces -->
<!ENTITY tab CDATA " " -- the tab character \t, ^I -->
<!ENTITY tildekb CDATA "~" -- ascii tilde on a keyboard -->
<!ENTITY tmsans CDATA "(TM)" -- trademark sans serif -->
<!ENTITY varrex SDATA "[varrex ]" -- vertical arrow extender -->
<!ENTITY idxbsol CDATA "\\" -- Backslash in an index term -->
<!ENTITY idxcolon CDATA ":" -- Colon in an index term -->
<!ENTITY idxgt CDATA ">" -- Greater-than in an index term -->
<!ENTITY idxlsqb CDATA "[" -- Left Square Bracket in an index term -->
<!ENTITY idxlt CDATA "<" -- Less-than in an index term -->
<!ENTITY idxrsqb CDATA "]" -- Right Square Bracket in an index term -->
<!ENTITY idxsemi CDATA ";" -- Semi-colon in an index term -->

View File

@@ -0,0 +1,68 @@
<!-- $XConsortium: iso-amsa.gml /main/2 1996/10/29 16:18:20 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOamsa PUBLIC
"ISO 8879-1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
%ISOamsa;
-->
<!ENTITY cularr SDATA "[cularr]"--/curvearrowleft A: left curved arrow -->
<!ENTITY curarr SDATA "[curarr]"--/curvearrowright A: rt curved arrow -->
<!ENTITY dArr SDATA "[dArr ]"--/Downarrow A: down dbl arrow -->
<!ENTITY darr2 SDATA "[darr2 ]"--/downdownarrows A: two down arrows -->
<!ENTITY dharl SDATA "[dharl ]"--/downleftharpoon A: dn harpoon-left -->
<!ENTITY dharr SDATA "[dharr ]"--/downrightharpoon A: down harpoon-rt -->
<!ENTITY lAarr SDATA "[lAarr ]"--/Lleftarrow A: left triple arrow -->
<!ENTITY Larr SDATA "[Larr ]"--/twoheadleftarrow A:-->
<!ENTITY larr2 SDATA "[larr2 ]"--/leftleftarrows A: two left arrows -->
<!ENTITY larrhk SDATA "[larrhk]"--/hookleftarrow A: left arrow-hooked -->
<!ENTITY larrlp SDATA "[larrlp]"--/looparrowleft A: left arrow-looped -->
<!ENTITY larrtl SDATA "[larrtl]"--/leftarrowtail A: left arrow-tailed -->
<!ENTITY lhard SDATA "[lhard ]"--/leftharpoondown A: l harpoon-down -->
<!ENTITY lharu SDATA "[lharu ]"--/leftharpoonup A: left harpoon-up -->
<!ENTITY hArr SDATA "[hArr ]"--/Leftrightarrow A: l&r dbl arrow -->
<!ENTITY harr SDATA "[harr ]"--/leftrightarrow A: l&r arrow -->
<!ENTITY lrarr2 SDATA "[lrarr2]"--/leftrightarrows A: l arr over r arr -->
<!ENTITY rlarr2 SDATA "[rlarr2]"--/rightleftarrows A: r arr over l arr -->
<!ENTITY harrw SDATA "[harrw ]"--/leftrightsquigarrow A: l&r arr-wavy -->
<!ENTITY rlhar2 SDATA "[rlhar2]"--/rightleftharpoons A: r harp over l -->
<!ENTITY lrhar2 SDATA "[lrhar2]"--/leftrightharpoons A: l harp over r -->
<!ENTITY lsh SDATA "[lsh ]"--/Lsh A:-->
<!ENTITY map SDATA "[map ]"--/mapsto A:-->
<!ENTITY mumap SDATA "[mumap ]"--/multimap A:-->
<!ENTITY nearr SDATA "[nearr ]"--/nearrow A: NE pointing arrow -->
<!ENTITY nlArr SDATA "[nlArr ]"--/nLeftarrow A: not implied by -->
<!ENTITY nlarr SDATA "[nlarr ]"--/nleftarrow A: not left arrow -->
<!ENTITY nhArr SDATA "[nhArr ]"--/nLeftrightarrow A: not l&r dbl arr -->
<!ENTITY nharr SDATA "[nharr ]"--/nleftrightarrow A: not l&r arrow -->
<!ENTITY nrarr SDATA "[nrarr ]"--/nrightarrow A: not right arrow -->
<!ENTITY nrArr SDATA "[nrArr ]"--/nRightarrow A: not implies -->
<!ENTITY nwarr SDATA "[nwarr ]"--/nwarrow A: NW pointing arrow -->
<!ENTITY olarr SDATA "[olarr ]"--/circlearrowleft A: l arr in circle -->
<!ENTITY orarr SDATA "[orarr ]"--/circlearrowright A: r arr in circle -->
<!ENTITY rAarr SDATA "[rAarr ]"--/Rrightarrow A: right triple arrow -->
<!ENTITY Rarr SDATA "[Rarr ]"--/twoheadrightarrow A:-->
<!ENTITY rarr2 SDATA "[rarr2 ]"--/rightrightarrows A: two rt arrows -->
<!ENTITY rarrhk SDATA "[rarrhk]"--/hookrightarrow A: rt arrow-hooked -->
<!ENTITY rarrlp SDATA "[rarrlp]"--/looparrowright A: rt arrow-looped -->
<!ENTITY rarrtl SDATA "[rarrtl]"--/rightarrowtail A: rt arrow-tailed -->
<!ENTITY rarrw SDATA "[rarrw ]"--/squigarrowright A: rt arrow-wavy -->
<!ENTITY rhard SDATA "[rhard ]"--/rightharpoondown A: rt harpoon-down -->
<!ENTITY rharu SDATA "[rharu ]"--/rightharpoonup A: rt harpoon-up -->
<!ENTITY rsh SDATA "[rsh ]"--/Rsh A:-->
<!ENTITY drarr SDATA "[drarr ]"--/searrow A: downward rt arrow -->
<!ENTITY dlarr SDATA "[dlarr ]"--/swarrow A: downward l arrow -->
<!ENTITY uArr SDATA "[uArr ]"--/Uparrow A: up dbl arrow -->
<!ENTITY uarr2 SDATA "[uarr2 ]"--/upuparrows A: two up arrows -->
<!ENTITY vArr SDATA "[vArr ]"--/Updownarrow A: up&down dbl arrow -->
<!ENTITY varr SDATA "[varr ]"--/updownarrow A: up&down arrow -->
<!ENTITY uharl SDATA "[uharl ]"--/upleftharpoon A: up harpoon-left -->
<!ENTITY uharr SDATA "[uharr ]"--/uprightharpoon A: up harp-r-->
<!ENTITY xlArr SDATA "[xlArr ]"--/Longleftarrow A: long l dbl arrow -->
<!ENTITY xhArr SDATA "[xhArr ]"--/Longleftrightarrow A: long l&r dbl arr-->
<!ENTITY xharr SDATA "[xharr ]"--/longleftrightarrow A: long l&r arr -->
<!ENTITY xrArr SDATA "[xrArr ]"--/Longrightarrow A: long rt dbl arr -->

View File

@@ -0,0 +1,54 @@
<!-- $XConsortium: iso-amsb.gml /main/2 1996/10/29 16:18:36 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOamsb PUBLIC
"ISO 8879-1986//ENTITIES Added Math Symbols: Binary Operators//EN">
%ISOamsb;
-->
<!ENTITY amalg SDATA "[amalg ]"--/amalg B: amalgamation or coproduct-->
<!ENTITY Barwed SDATA "[Barwed]"--/doublebarwedge B: log and, dbl bar-->
<!ENTITY barwed SDATA "[barwed]"--/barwedge B: logical and, bar above-->
<!ENTITY Cap SDATA "[Cap ]"--/Cap /doublecap B: dbl intersection-->
<!ENTITY Cup SDATA "[Cup ]"--/Cup /doublecup B: dbl union-->
<!ENTITY cuvee SDATA "[cuvee ]"--/curlyvee B: curly logical or-->
<!ENTITY cuwed SDATA "[cuwed ]"--/curlywedge B: curly logical and-->
<!ENTITY diam SDATA "[diam ]"--/diamond B: open diamond-->
<!ENTITY divonx SDATA "[divonx]"--/divideontimes B: division on times-->
<!ENTITY intcal SDATA "[intcal]"--/intercal B: intercal-->
<!ENTITY lthree SDATA "[lthree]"--/leftthreetimes B:-->
<!ENTITY ltimes SDATA "[ltimes]"--/ltimes B: times sign, left closed-->
<!ENTITY minusb SDATA "[minusb]"--/boxminus B: minus sign in box-->
<!ENTITY oast SDATA "[oast ]"--/circledast B: asterisk in circle-->
<!ENTITY ocir SDATA "[ocir ]"--/circledcirc B: open dot in circle-->
<!ENTITY odash SDATA "[odash ]"--/circleddash B: hyphen in circle-->
<!ENTITY odot SDATA "[odot ]"--/odot B: middle dot in circle-->
<!ENTITY ominus SDATA "[ominus]"--/ominus B: minus sign in circle-->
<!ENTITY oplus SDATA "[oplus ]"--/oplus B: plus sign in circle-->
<!ENTITY osol SDATA "[osol ]"--/oslash B: solidus in circle-->
<!ENTITY otimes SDATA "[otimes]"--/otimes B: multiply sign in circle-->
<!ENTITY plusb SDATA "[plusb ]"--/boxplus B: plus sign in box-->
<!ENTITY plusdo SDATA "[plusdo]"--/dotplus B: plus sign, dot above-->
<!ENTITY rthree SDATA "[rthree]"--/rightthreetimes B:-->
<!ENTITY rtimes SDATA "[rtimes]"--/rtimes B: times sign, right closed-->
<!ENTITY sdot SDATA "[sdot ]"--/cdot B: small middle dot-->
<!ENTITY sdotb SDATA "[sdotb ]"--/dotsquare /boxdot B: small dot in box-->
<!ENTITY setmn SDATA "[setmn ]"--/setminus B: reverse solidus-->
<!ENTITY sqcap SDATA "[sqcap ]"--/sqcap B: square intersection-->
<!ENTITY sqcup SDATA "[sqcup ]"--/sqcup B: square union-->
<!ENTITY ssetmn SDATA "[ssetmn]"--/smallsetminus B: sm reverse solidus-->
<!ENTITY sstarf SDATA "[sstarf]"--/star B: small star, filled-->
<!ENTITY timesb SDATA "[timesb]"--/boxtimes B: multiply sign in box-->
<!ENTITY top SDATA "[top ]"--/top B: inverted perpendicular-->
<!ENTITY uplus SDATA "[uplus ]"--/uplus B: plus sign in union-->
<!ENTITY wreath SDATA "[wreath]"--/wr B: wreath product-->
<!ENTITY xcirc SDATA "[xcirc ]"--/bigcirc B: large circle-->
<!ENTITY xdtri SDATA "[xdtri ]"--/bigtriangledown B: big dn tri, open-->
<!ENTITY xutri SDATA "[xutri ]"--/bigtriangleup B: big up tri, open-->
<!ENTITY coprod SDATA "[coprod]"--/coprod L: coproduct operator-->
<!ENTITY prod SDATA "[prod ]"--/prod L: product operator-->
<!ENTITY sum SDATA "[sum ]"--/sum L: summation operator-->

View File

@@ -0,0 +1,22 @@
<!-- $XConsortium: iso-amsc.gml /main/2 1996/10/29 16:19:04 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOamsc PUBLIC
"ISO 8879-1986//ENTITIES Added Math Symbols: Delimiters//EN">
%ISOamsc;
-->
<!ENTITY rceil SDATA "[rceil ]"--/rceil C: right ceiling-->
<!ENTITY rfloor SDATA "[rfloor]"--/rfloor C: right floor-->
<!ENTITY rpargt SDATA "[rpargt]"--/rightparengtr C: right paren, gt-->
<!ENTITY urcorn SDATA "[urcorn]"--/urcorner C: upper right corner-->
<!ENTITY drcorn SDATA "[drcorn]"--/lrcorner C: downward right corner-->
<!ENTITY lceil SDATA "[lceil ]"--/lceil O: left ceiling-->
<!ENTITY lfloor SDATA "[lfloor]"--/lfloor O: left floor-->
<!ENTITY lpargt SDATA "[lpargt]"--/leftparengtr O: left parenthesis, gt-->
<!ENTITY ulcorn SDATA "[ulcorn]"--/ulcorner O: upper left corner-->
<!ENTITY dlcorn SDATA "[dlcorn]"--/llcorner O: downward left corner-->

View File

@@ -0,0 +1,72 @@
<!-- $XConsortium: iso-amsn.gml /main/2 1996/10/29 16:19:28 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOamsn PUBLIC
"ISO 8879-1986//ENTITIES
Added Math Symbols: Negated Relations//EN">
%ISOamsn;
-->
<!ENTITY gnap SDATA "[gnap ]"--/gnapprox N: greater, not approximate-->
<!ENTITY gne SDATA "[gne ]"--/gneq N: greater, not equals-->
<!ENTITY gnE SDATA "[gnE ]"--/gneqq N: greater, not dbl equals-->
<!ENTITY gnsim SDATA "[gnsim ]"--/gnsim N: greater, not similar-->
<!ENTITY gvnE SDATA "[gvnE ]"--/gvertneqq N: gt, vert, not dbl eq-->
<!ENTITY lnap SDATA "[lnap ]"--/lnapprox N: less, not approximate-->
<!ENTITY lnE SDATA "[lnE ]"--/lneqq N: less, not double equals-->
<!ENTITY lne SDATA "[lne ]"--/lneq N: less, not equals-->
<!ENTITY lnsim SDATA "[lnsim ]"--/lnsim N: less, not similar-->
<!ENTITY lvnE SDATA "[lvnE ]"--/lvertneqq N: less, vert, not dbl eq-->
<!ENTITY nap SDATA "[nap ]"--/napprox N: not approximate-->
<!ENTITY ncong SDATA "[ncong ]"--/ncong N: not congruent with-->
<!ENTITY nequiv SDATA "[nequiv]"--/nequiv N: not identical with-->
<!ENTITY ngE SDATA "[ngE ]"--/ngeqq N: not greater, dbl equals-->
<!ENTITY nge SDATA "[nge ]"--/ngeq N: not greater-than-or-equal-->
<!ENTITY nges SDATA "[nges ]"--/ngeqslant N: not gt-or-eq, slanted-->
<!ENTITY ngt SDATA "[ngt ]"--/ngtr N: not greater-than-->
<!ENTITY nle SDATA "[nle ]"--/nleq N: not less-than-or-equal-->
<!ENTITY nlE SDATA "[nlE ]"--/nleqq N: not less, dbl equals-->
<!ENTITY nles SDATA "[nles ]"--/nleqslant N: not less-or-eq, slant-->
<!ENTITY nlt SDATA "[nlt ]"--/nless N: not less-than-->
<!ENTITY nltri SDATA "[nltri ]"--/ntriangleleft N: not left triangle-->
<!ENTITY nltrie SDATA "[nltrie]"--/ntrianglelefteq N: not l tri, eq-->
<!ENTITY nmid SDATA "[nmid ]"--/nmid-->
<!ENTITY npar SDATA "[npar ]"--/nparallel N: not parallel-->
<!ENTITY npr SDATA "[npr ]"--/nprec N: not precedes-->
<!ENTITY npre SDATA "[npre ]"--/npreceq N: not precedes, equals-->
<!ENTITY nrtri SDATA "[nrtri ]"--/ntriangleright N: not rt triangle-->
<!ENTITY nrtrie SDATA "[nrtrie]"--/ntrianglerighteq N: not r tri, eq-->
<!ENTITY nsc SDATA "[nsc ]"--/nsucc N: not succeeds-->
<!ENTITY nsce SDATA "[nsce ]"--/nsucceq N: not succeeds, equals-->
<!ENTITY nsim SDATA "[nsim ]"--/nsim N: not similar-->
<!ENTITY nsime SDATA "[nsime ]"--/nsimeq N: not similar, equals-->
<!ENTITY nsmid SDATA "[nsmid ]"--/nshortmid-->
<!ENTITY nspar SDATA "[nspar ]"--/nshortparallel N: not short par-->
<!ENTITY nsub SDATA "[nsub ]"--/nsubset N: not subset-->
<!ENTITY nsube SDATA "[nsube ]"--/nsubseteq N: not subset, equals-->
<!ENTITY nsubE SDATA "[nsubE ]"--/nsubseteqq N: not subset, dbl eq-->
<!ENTITY nsup SDATA "[nsup ]"--/nsupset N: not superset-->
<!ENTITY nsupE SDATA "[nsupE ]"--/nsupseteqq N: not superset, dbl eq-->
<!ENTITY nsupe SDATA "[nsupe ]"--/nsupseteq N: not superset, equals-->
<!ENTITY nvdash SDATA "[nvdash]"--/nvdash N: not vertical, dash-->
<!ENTITY nvDash SDATA "[nvDash]"--/nvDash N: not vertical, dbl dash-->
<!ENTITY nVDash SDATA "[nVDash]"--/nVDash N: not dbl vert, dbl dash-->
<!ENTITY nVdash SDATA "[nVdash]"--/nVdash N: not dbl vertical, dash-->
<!ENTITY prnap SDATA "[prnap ]"--/precnapprox N: precedes, not approx-->
<!ENTITY prnE SDATA "[prnE ]"--/precneqq N: precedes, not dbl eq-->
<!ENTITY prnsim SDATA "[prnsim]"--/precnsim N: precedes, not similar-->
<!ENTITY scnap SDATA "[scnap ]"--/succnapprox N: succeeds, not approx-->
<!ENTITY scnE SDATA "[scnE ]"--/succneqq N: succeeds, not dbl eq-->
<!ENTITY scnsim SDATA "[scnsim]"--/succnsim N: succeeds, not similar-->
<!ENTITY subne SDATA "[subne ]"--/subsetneq N: subset, not equals-->
<!ENTITY subnE SDATA "[subnE ]"--/subsetneqq N: subset, not dbl eq-->
<!ENTITY supne SDATA "[supne ]"--/supsetneq N: superset, not equals-->
<!ENTITY supnE SDATA "[supnE ]"--/supsetneqq N: superset, not dbl eq-->
<!ENTITY vsubnE SDATA "[vsubnE]"--/subsetneqq N: subset not dbl eq, var-->
<!ENTITY vsubne SDATA "[vsubne]"--/subsetneq N: subset, not eq, var-->
<!ENTITY vsupne SDATA "[vsupne]"--/supsetneq N: superset, not eq, var-->
<!ENTITY vsupnE SDATA "[vsupnE]"--/supsetneqq N: super not dbl eq, var-->

View File

@@ -0,0 +1,31 @@
<!-- $XConsortium: iso-amso.gml /main/2 1996/10/29 16:19:54 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOamso PUBLIC
"ISO 8879-1986//ENTITIES Added Math Symbols: Ordinary//EN">
%ISOamso;
-->
<!ENTITY ang SDATA "[ang ]"--/angle - angle-->
<!ENTITY angmsd SDATA "[angmsd]"--/measuredangle - angle-measured-->
<!ENTITY beth SDATA "[beth ]"--/beth - beth, Hebrew-->
<!ENTITY bprime SDATA "[bprime]"--/backprime - reverse prime-->
<!ENTITY comp SDATA "[comp ]"--/complement - complement sign-->
<!ENTITY daleth SDATA "[daleth]"--/daleth - daleth, Hebrew-->
<!ENTITY ell SDATA "[ell ]"--/ell - cursive small l-->
<!ENTITY empty SDATA "[empty ]"--/emptyset /varnothing =small o, slash-->
<!ENTITY gimel SDATA "[gimel ]"--/gimel - gimel, Hebrew-->
<!ENTITY image SDATA "[image ]"--/Im - imaginary-->
<!ENTITY inodot SDATA "[inodot]"--/imath =small i, no dot-->
<!ENTITY jnodot SDATA "[jnodot]"--/jmath - small j, no dot-->
<!ENTITY nexist SDATA "[nexist]"--/nexists - negated exists-->
<!ENTITY oS SDATA "[oS ]"--/circledS - capital S in circle-->
<!ENTITY planck SDATA "[planck]"--/hbar /hslash - Planck's over 2pi-->
<!ENTITY real SDATA "[real ]"--/Re - real-->
<!ENTITY sbsol SDATA "[sbsol ]"--/sbs - short reverse solidus-->
<!ENTITY vprime SDATA "[vprime]"--/varprime - prime, variant-->
<!ENTITY weierp SDATA "[weierp]"--/wp - Weierstrass p-->

View File

@@ -0,0 +1,96 @@
<!-- $XConsortium: iso-amsr.gml /main/2 1996/10/29 16:20:24 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOamsr PUBLIC
"ISO 8879-1986//ENTITIES Added Math Symbols: Relations//EN">
%ISOamsr;
-->
<!ENTITY ape SDATA "[ape ]"--/approxeq R: approximate, equals-->
<!ENTITY asymp SDATA "[asymp ]"--/asymp R: asymptotically equal to-->
<!ENTITY bcong SDATA "[bcong ]"--/backcong R: reverse congruent-->
<!ENTITY bepsi SDATA "[bepsi ]"--/backepsilon R: such that-->
<!ENTITY bowtie SDATA "[bowtie]"--/bowtie R:-->
<!ENTITY bsim SDATA "[bsim ]"--/backsim R: reverse similar-->
<!ENTITY bsime SDATA "[bsime ]"--/backsimeq R: reverse similar, eq-->
<!ENTITY bump SDATA "[bump ]"--/Bumpeq R: bumpy equals-->
<!ENTITY bumpe SDATA "[bumpe ]"--/bumpeq R: bumpy equals, equals-->
<!ENTITY cire SDATA "[cire ]"--/circeq R: circle, equals-->
<!ENTITY colone SDATA "[colone]"--/coloneq R: colon, equals-->
<!ENTITY cuepr SDATA "[cuepr ]"--/curlyeqprec R: curly eq, precedes-->
<!ENTITY cuesc SDATA "[cuesc ]"--/curlyeqsucc R: curly eq, succeeds-->
<!ENTITY cupre SDATA "[cupre ]"--/curlypreceq R: curly precedes, eq-->
<!ENTITY dashv SDATA "[dashv ]"--/dashv R: dash, vertical-->
<!ENTITY ecir SDATA "[ecir ]"--/eqcirc R: circle on equals sign-->
<!ENTITY ecolon SDATA "[ecolon]"--/eqcolon R: equals, colon-->
<!ENTITY eDot SDATA "[eDot ]"--/doteqdot /Doteq R: eq, even dots-->
<!ENTITY esdot SDATA "[esdot ]"--/doteq R: equals, single dot above-->
<!ENTITY efDot SDATA "[efDot ]"--/fallingdotseq R: eq, falling dots-->
<!ENTITY egs SDATA "[egs ]"--/eqslantgtr R: equal-or-gtr, slanted-->
<!ENTITY els SDATA "[els ]"--/eqslantless R: eq-or-less, slanted-->
<!ENTITY erDot SDATA "[erDot ]"--/risingdotseq R: eq, rising dots-->
<!ENTITY fork SDATA "[fork ]"--/pitchfork R: pitchfork-->
<!ENTITY frown SDATA "[frown ]"--/frown R: down curve-->
<!ENTITY gap SDATA "[gap ]"--/gtrapprox R: greater, approximate-->
<!ENTITY gsdot SDATA "[gsdot ]"--/gtrdot R: greater than, single dot-->
<!ENTITY gE SDATA "[gE ]"--/geqq R: greater, double equals-->
<!ENTITY gel SDATA "[gel ]"--/gtreqless R: greater, equals, less-->
<!ENTITY gEl SDATA "[gEl ]"--/gtreqqless R: gt, dbl equals, less-->
<!ENTITY ges SDATA "[ges ]"--/geqslant R: gt-or-equal, slanted-->
<!ENTITY Gg SDATA "[Gg ]"--/ggg /Gg /gggtr R: triple gtr-than-->
<!ENTITY gl SDATA "[gl ]"--/gtrless R: greater, less-->
<!ENTITY gsim SDATA "[gsim ]"--/gtrsim R: greater, similar-->
<!ENTITY Gt SDATA "[Gt ]"--/gg R: dbl greater-than sign-->
<!ENTITY lap SDATA "[lap ]"--/lessapprox R: less, approximate-->
<!ENTITY ldot SDATA "[ldot ]"--/lessdot R: less than, with dot-->
<!ENTITY lE SDATA "[lE ]"--/leqq R: less, double equals-->
<!ENTITY lEg SDATA "[lEg ]"--/lesseqqgtr R: less, dbl eq, greater-->
<!ENTITY leg SDATA "[leg ]"--/lesseqgtr R: less, eq, greater-->
<!ENTITY les SDATA "[les ]"--/leqslant R: less-than-or-eq, slant-->
<!ENTITY lg SDATA "[lg ]"--/lessgtr R: less, greater-->
<!ENTITY Ll SDATA "[Ll ]"--/Ll /lll /llless R: triple less-than-->
<!ENTITY lsim SDATA "[lsim ]"--/lesssim R: less, similar-->
<!ENTITY Lt SDATA "[Lt ]"--/ll R: double less-than sign-->
<!ENTITY ltrie SDATA "[ltrie ]"--/trianglelefteq R: left triangle, eq-->
<!ENTITY mid SDATA "[mid ]"--/mid R:-->
<!ENTITY models SDATA "[models]"--/models R:-->
<!ENTITY pr SDATA "[pr ]"--/prec R: precedes-->
<!ENTITY prap SDATA "[prap ]"--/precapprox R: precedes, approximate-->
<!ENTITY pre SDATA "[pre ]"--/preceq R: precedes, equals-->
<!ENTITY prsim SDATA "[prsim ]"--/precsim R: precedes, similar-->
<!ENTITY rtrie SDATA "[rtrie ]"--/trianglerighteq R: right tri, eq-->
<!ENTITY samalg SDATA "[samalg]"--/smallamalg R: small amalg-->
<!ENTITY sc SDATA "[sc ]"--/succ R: succeeds-->
<!ENTITY scap SDATA "[scap ]"--/succapprox R: succeeds, approximate-->
<!ENTITY sccue SDATA "[sccue ]"--/succcurlyeq R: succeeds, curly eq-->
<!ENTITY sce SDATA "[sce ]"--/succeq R: succeeds, equals-->
<!ENTITY scsim SDATA "[scsim ]"--/succsim R: succeeds, similar-->
<!ENTITY sfrown SDATA "[sfrown]"--/smallfrown R: small down curve-->
<!ENTITY smid SDATA "[smid ]"--/shortmid R:-->
<!ENTITY smile SDATA "[smile ]"--/smile R: up curve-->
<!ENTITY spar SDATA "[spar ]"--/shortparallel R: short parallel-->
<!ENTITY sqsub SDATA "[sqsub ]"--/sqsubset R: square subset-->
<!ENTITY sqsube SDATA "[sqsube]"--/sqsubseteq R: square subset, equals-->
<!ENTITY sqsup SDATA "[sqsup ]"--/sqsupset R: square superset-->
<!ENTITY sqsupe SDATA "[sqsupe]"--/sqsupseteq R: square superset, eq-->
<!ENTITY ssmile SDATA "[ssmile]"--/smallsmile R: small up curve-->
<!ENTITY Sub SDATA "[Sub ]"--/Subset R: double subset-->
<!ENTITY subE SDATA "[subE ]"--/subseteqq R: subset, dbl equals-->
<!ENTITY Sup SDATA "[Sup ]"--/Supset R: dbl superset-->
<!ENTITY supE SDATA "[supE ]"--/supseteqq R: superset, dbl equals-->
<!ENTITY thkap SDATA "[thkap ]"--/thickapprox R: thick approximate-->
<!ENTITY thksim SDATA "[thksim]"--/thicksim R: thick similar-->
<!ENTITY trie SDATA "[trie ]"--/triangleq R: triangle, equals-->
<!ENTITY twixt SDATA "[twixt ]"--/between R: between-->
<!ENTITY vdash SDATA "[vdash ]"--/vdash R: vertical, dash-->
<!ENTITY Vdash SDATA "[Vdash ]"--/Vdash R: dbl vertical, dash-->
<!ENTITY vDash SDATA "[vDash ]"--/vDash R: vertical, dbl dash-->
<!ENTITY veebar SDATA "[veebar]"--/veebar R: logical or, bar below-->
<!ENTITY vltri SDATA "[vltri ]"--/vartriangleleft R: l tri, open, var-->
<!ENTITY vprop SDATA "[vprop ]"--/varpropto R: proportional, variant-->
<!ENTITY vrtri SDATA "[vrtri ]"--/vartriangleright R: r tri, open, var-->
<!ENTITY Vvdash SDATA "[Vvdash]"--/Vvdash R: triple vertical, dash-->

View File

@@ -0,0 +1,64 @@
<!-- $XConsortium: iso-box.gml /main/2 1996/10/29 16:20:44 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISObox PUBLIC
"ISO 8879-1986//ENTITIES Box and Line Drawing//EN">
%ISObox;
-->
<!-- All names are in the form: box1234, where:
box = constants that identify a box drawing entity.
1&2 = v, V, u, U, d, D, Ud, or uD, as follows:
v = vertical line for full height.
u = upper half of vertical line.
d = downward (lower) half of vertical line.
3&4 = h, H, l, L, r, R, Lr, or lR, as follows:
h = horizontal line for full width.
l = left half of horizontal line.
r = right half of horizontal line.
In all cases, an upper-case letter means a double or heavy line.
-->
<!ENTITY boxh SDATA "[boxh ]"--horizontal line -->
<!ENTITY boxv SDATA "[boxv ]"--vertical line-->
<!ENTITY boxur SDATA "[boxur ]"--upper right quadrant-->
<!ENTITY boxul SDATA "[boxul ]"--upper left quadrant-->
<!ENTITY boxdl SDATA "[boxdl ]"--lower left quadrant-->
<!ENTITY boxdr SDATA "[boxdr ]"--lower right quadrant-->
<!ENTITY boxvr SDATA "[boxvr ]"--upper and lower right quadrants-->
<!ENTITY boxhu SDATA "[boxhu ]"--upper left and right quadrants-->
<!ENTITY boxvl SDATA "[boxvl ]"--upper and lower left quadrants-->
<!ENTITY boxhd SDATA "[boxhd ]"--lower left and right quadrants-->
<!ENTITY boxvh SDATA "[boxvh ]"--all four quadrants-->
<!ENTITY boxvR SDATA "[boxvR ]"--upper and lower right quadrants-->
<!ENTITY boxhU SDATA "[boxhU ]"--upper left and right quadrants-->
<!ENTITY boxvL SDATA "[boxvL ]"--upper and lower left quadrants-->
<!ENTITY boxhD SDATA "[boxhD ]"--lower left and right quadrants-->
<!ENTITY boxvH SDATA "[boxvH ]"--all four quadrants-->
<!ENTITY boxH SDATA "[boxH ]"--horizontal line-->
<!ENTITY boxV SDATA "[boxV ]"--vertical line-->
<!ENTITY boxUR SDATA "[boxUR ]"--upper right quadrant-->
<!ENTITY boxUL SDATA "[boxUL ]"--upper left quadrant-->
<!ENTITY boxDL SDATA "[boxDL ]"--lower left quadrant-->
<!ENTITY boxDR SDATA "[boxDR ]"--lower right quadrant-->
<!ENTITY boxVR SDATA "[boxVR ]"--upper and lower right quadrants-->
<!ENTITY boxHU SDATA "[boxHU ]"--upper left and right quadrants-->
<!ENTITY boxVL SDATA "[boxVL ]"--upper and lower left quadrants-->
<!ENTITY boxHD SDATA "[boxHD ]"--lower left and right quadrants-->
<!ENTITY boxVH SDATA "[boxVH ]"--all four quadrants-->
<!ENTITY boxVr SDATA "[boxVr ]"--upper and lower right quadrants-->
<!ENTITY boxHu SDATA "[boxHu ]"--upper left and right quadrants-->
<!ENTITY boxVl SDATA "[boxVl ]"--upper and lower left quadrants-->
<!ENTITY boxHd SDATA "[boxHd ]"--lower left and right quadrants-->
<!ENTITY boxVh SDATA "[boxVh ]"--all four quadrants-->
<!ENTITY boxuR SDATA "[boxuR ]"--upper right quadrant-->
<!ENTITY boxUl SDATA "[boxUl ]"--upper left quadrant-->
<!ENTITY boxdL SDATA "[boxdL ]"--lower left quadrant-->
<!ENTITY boxDr SDATA "[boxDr ]"--lower right quadrant-->
<!ENTITY boxUr SDATA "[boxUr ]"--upper right quadrant-->
<!ENTITY boxuL SDATA "[boxuL ]"--upper left quadrant-->
<!ENTITY boxDl SDATA "[boxDl ]"--lower left quadrant-->
<!ENTITY boxdR SDATA "[boxdR ]"--lower right quadrant-->

View File

@@ -0,0 +1,87 @@
<!ENTITY % ISOamsa PUBLIC
"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"
>
<!ENTITY % ISOamsb PUBLIC
"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"
>
<!ENTITY % ISOamsc PUBLIC
"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"
>
<!ENTITY % ISOamsn PUBLIC
"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"
>
<!ENTITY % ISOamso PUBLIC
"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"
>
<!ENTITY % ISOamsr PUBLIC
"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"
>
<!ENTITY % ISObox PUBLIC
"ISO 8879:1986//ENTITIES Box and Line Drawing//EN"
>
<!ENTITY % ISOcyr1 PUBLIC
"ISO 8879:1986//ENTITIES Russian Cyrillic//EN"
>
<!ENTITY % ISOcyr2 PUBLIC
"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"
>
<!ENTITY % ISOdia PUBLIC
"ISO 8879:1986//ENTITIES Diacritical Marks//EN"
>
<!ENTITY % ISOgrk1 PUBLIC
"ISO 8879:1986//ENTITIES Greek Letters//EN"
>
<!ENTITY % ISOgrk2 PUBLIC
"ISO 8879:1986//ENTITIES Monotoniko Greek//EN"
>
<!ENTITY % ISOgrk3 PUBLIC
"ISO 8879:1986//ENTITIES Greek Symbols//EN"
>
<!ENTITY % ISOgrk4 PUBLIC
"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"
>
<!ENTITY % ISOlat1 PUBLIC
"ISO 8879:1986//ENTITIES Added Latin 1//EN"
>
<!ENTITY % ISOlat2 PUBLIC
"ISO 8879:1986//ENTITIES Added Latin 2//EN"
>
<!ENTITY % ISOmfrk PUBLIC
"ISO 9573-13:1991//ENTITIES Math Alphabets: Fraktur //EN"
>
<!ENTITY % ISOmopf PUBLIC
"ISO 9573-13:1991//ENTITIES Math Alphabets: Open Face //EN"
>
<!ENTITY % ISOmscr PUBLIC
"ISO 9573-13:1991//ENTITIES Math Alphabets: Script //EN"
>
<!ENTITY % ISOnum PUBLIC
"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"
>
<!ENTITY % ISOpub PUBLIC
"ISO 8879:1986//ENTITIES Publishing//EN"
>
<!ENTITY % ISOtech PUBLIC
"ISO 8879:1986//ENTITIES General Technical//EN"
>

View File

@@ -0,0 +1,79 @@
<!-- $XConsortium: iso-cyr1.gml /main/2 1996/10/29 16:21:00 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOcyr1 PUBLIC
"ISO 8879-1986//ENTITIES Russian Cyrillic//EN">
%ISOcyr1;
-->
<!ENTITY acy SDATA "[acy ]"--=small a, Cyrillic-->
<!ENTITY Acy SDATA "[Acy ]"--=capital A, Cyrillic-->
<!ENTITY bcy SDATA "[bcy ]"--=small be, Cyrillic-->
<!ENTITY Bcy SDATA "[Bcy ]"--=capital BE, Cyrillic-->
<!ENTITY vcy SDATA "[vcy ]"--=small ve, Cyrillic-->
<!ENTITY Vcy SDATA "[Vcy ]"--=capital VE, Cyrillic-->
<!ENTITY gcy SDATA "[gcy ]"--=small ghe, Cyrillic-->
<!ENTITY Gcy SDATA "[Gcy ]"--=capital GHE, Cyrillic-->
<!ENTITY dcy SDATA "[dcy ]"--=small de, Cyrillic-->
<!ENTITY Dcy SDATA "[Dcy ]"--=capital DE, Cyrillic-->
<!ENTITY iecy SDATA "[iecy ]"--=small ie, Cyrillic-->
<!ENTITY IEcy SDATA "[IEcy ]"--=capital IE, Cyrillic-->
<!ENTITY iocy SDATA "[iocy ]"--=small io, Russian-->
<!ENTITY IOcy SDATA "[IOcy ]"--=capital IO, Russian-->
<!ENTITY zhcy SDATA "[zhcy ]"--=small zhe, Cyrillic-->
<!ENTITY ZHcy SDATA "[ZHcy ]"--=capital ZHE, Cyrillic-->
<!ENTITY zcy SDATA "[zcy ]"--=small ze, Cyrillic-->
<!ENTITY Zcy SDATA "[Zcy ]"--=capital ZE, Cyrillic-->
<!ENTITY icy SDATA "[icy ]"--=small i, Cyrillic-->
<!ENTITY Icy SDATA "[Icy ]"--=capital I, Cyrillic-->
<!ENTITY jcy SDATA "[jcy ]"--=small short i, Cyrillic-->
<!ENTITY Jcy SDATA "[Jcy ]"--=capital short I, Cyrillic-->
<!ENTITY kcy SDATA "[kcy ]"--=small ka, Cyrillic-->
<!ENTITY Kcy SDATA "[Kcy ]"--=capital KA, Cyrillic-->
<!ENTITY lcy SDATA "[lcy ]"--=small el, Cyrillic-->
<!ENTITY Lcy SDATA "[Lcy ]"--=capital EL, Cyrillic-->
<!ENTITY mcy SDATA "[mcy ]"--=small em, Cyrillic-->
<!ENTITY Mcy SDATA "[Mcy ]"--=capital EM, Cyrillic-->
<!ENTITY ncy SDATA "[ncy ]"--=small en, Cyrillic-->
<!ENTITY Ncy SDATA "[Ncy ]"--=capital EN, Cyrillic-->
<!ENTITY ocy SDATA "[ocy ]"--=small o, Cyrillic-->
<!ENTITY Ocy SDATA "[Ocy ]"--=capital O, Cyrillic-->
<!ENTITY pcy SDATA "[pcy ]"--=small pe, Cyrillic-->
<!ENTITY Pcy SDATA "[Pcy ]"--=capital PE, Cyrillic-->
<!ENTITY rcy SDATA "[rcy ]"--=small er, Cyrillic-->
<!ENTITY Rcy SDATA "[Rcy ]"--=capital ER, Cyrillic-->
<!ENTITY scy SDATA "[scy ]"--=small es, Cyrillic-->
<!ENTITY Scy SDATA "[Scy ]"--=capital ES, Cyrillic-->
<!ENTITY tcy SDATA "[tcy ]"--=small te, Cyrillic-->
<!ENTITY Tcy SDATA "[Tcy ]"--=capital TE, Cyrillic-->
<!ENTITY ucy SDATA "[ucy ]"--=small u, Cyrillic-->
<!ENTITY Ucy SDATA "[Ucy ]"--=capital U, Cyrillic-->
<!ENTITY fcy SDATA "[fcy ]"--=small ef, Cyrillic-->
<!ENTITY Fcy SDATA "[Fcy ]"--=capital EF, Cyrillic-->
<!ENTITY khcy SDATA "[khcy ]"--=small ha, Cyrillic-->
<!ENTITY KHcy SDATA "[KHcy ]"--=capital HA, Cyrillic-->
<!ENTITY tscy SDATA "[tscy ]"--=small tse, Cyrillic-->
<!ENTITY TScy SDATA "[TScy ]"--=capital TSE, Cyrillic-->
<!ENTITY chcy SDATA "[chcy ]"--=small che, Cyrillic-->
<!ENTITY CHcy SDATA "[CHcy ]"--=capital CHE, Cyrillic-->
<!ENTITY shcy SDATA "[shcy ]"--=small sha, Cyrillic-->
<!ENTITY SHcy SDATA "[SHcy ]"--=capital SHA, Cyrillic-->
<!ENTITY shchcy SDATA "[shchcy]"--=small shcha, Cyrillic-->
<!ENTITY SHCHcy SDATA "[SHCHcy]"--=capital SHCHA, Cyrillic-->
<!ENTITY hardcy SDATA "[hardcy]"--=small hard sign, Cyrillic-->
<!ENTITY HARDcy SDATA "[HARDcy]"--=capital HARD sign, Cyrillic-->
<!ENTITY ycy SDATA "[ycy ]"--=small yeru, Cyrillic-->
<!ENTITY Ycy SDATA "[Ycy ]"--=capital YERU, Cyrillic-->
<!ENTITY softcy SDATA "[softcy]"--=small soft sign, Cyrillic-->
<!ENTITY SOFTcy SDATA "[SOFTcy]"--=capital SOFT sign, Cyrillic-->
<!ENTITY ecy SDATA "[ecy ]"--=small e, Cyrillic-->
<!ENTITY Ecy SDATA "[Ecy ]"--=capital E, Cyrillic-->
<!ENTITY yucy SDATA "[yucy ]"--=small yu, Cyrillic-->
<!ENTITY YUcy SDATA "[YUcy ]"--=capital YU, Cyrillic-->
<!ENTITY yacy SDATA "[yacy ]"--=small ya, Cyrillic-->
<!ENTITY YAcy SDATA "[YAcy ]"--=capital YA, Cyrillic-->
<!ENTITY numero SDATA "[numero]"--=numero sign-->

View File

@@ -0,0 +1,38 @@
<!-- $XConsortium: iso-cyr2.gml /main/2 1996/10/29 16:21:14 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOcyr2 PUBLIC
"ISO 8879-1986//ENTITIES Non-Russian Cyrillic//EN">
%ISOcyr2;
-->
<!ENTITY djcy SDATA "[djcy ]"--=small dje, Serbian-->
<!ENTITY DJcy SDATA "[DJcy ]"--=capital DJE, Serbian-->
<!ENTITY gjcy SDATA "[gjcy ]"--=small gje, Macedonian-->
<!ENTITY GJcy SDATA "[GJcy ]"--=capital GJE Macedonian-->
<!ENTITY jukcy SDATA "[jukcy ]"--=small je, Ukrainian-->
<!ENTITY Jukcy SDATA "[Jukcy ]"--=capital JE, Ukrainian-->
<!ENTITY dscy SDATA "[dscy ]"--=small dse, Macedonian-->
<!ENTITY DScy SDATA "[DScy ]"--=capital DSE, Macedonian-->
<!ENTITY iukcy SDATA "[iukcy ]"--=small i, Ukrainian-->
<!ENTITY Iukcy SDATA "[Iukcy ]"--=capital I, Ukrainian-->
<!ENTITY yicy SDATA "[yicy ]"--=small yi, Ukrainian-->
<!ENTITY YIcy SDATA "[YIcy ]"--=capital YI, Ukrainian-->
<!ENTITY jsercy SDATA "[jsercy]"--=small je, Serbian-->
<!ENTITY Jsercy SDATA "[Jsercy]"--=capital JE, Serbian-->
<!ENTITY ljcy SDATA "[ljcy ]"--=small lje, Serbian-->
<!ENTITY LJcy SDATA "[LJcy ]"--=capital LJE, Serbian-->
<!ENTITY njcy SDATA "[njcy ]"--=small nje, Serbian-->
<!ENTITY NJcy SDATA "[NJcy ]"--=capital NJE, Serbian-->
<!ENTITY tshcy SDATA "[tshcy ]"--=small tshe, Serbian-->
<!ENTITY TSHcy SDATA "[TSHcy ]"--=capital TSHE, Serbian-->
<!ENTITY kjcy SDATA "[kjcy ]"--=small kje Macedonian-->
<!ENTITY KJcy SDATA "[KJcy ]"--=capital KJE, Macedonian-->
<!ENTITY ubrcy SDATA "[ubrcy ]"--=small u, Byelorussian-->
<!ENTITY Ubrcy SDATA "[Ubrcy ]"--=capital U, Byelorussian-->
<!ENTITY dzcy SDATA "[dzcy ]"--=small dze, Serbian-->
<!ENTITY DZcy SDATA "[DZcy ]"--=capital dze, Serbian-->

View File

@@ -0,0 +1,25 @@
<!-- $XConsortium: iso-dia.gml /main/2 1996/10/29 16:21:27 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOdia PUBLIC
"ISO 8879-1986//ENTITIES Diacritical Marks//EN">
%ISOdia;
-->
<!ENTITY acute SDATA "[acute ]"--=acute accent-->
<!ENTITY breve SDATA "[breve ]"--=breve-->
<!ENTITY caron SDATA "[caron ]"--=caron-->
<!ENTITY cedil SDATA "[cedil ]"--=cedilla-->
<!ENTITY circ SDATA "[circ ]"--=circumflex accent-->
<!ENTITY dblac SDATA "[dblac ]"--=double acute accent-->
<!ENTITY die SDATA "[die ]"--=dieresis-->
<!ENTITY dot SDATA "[dot ]"--=dot above-->
<!ENTITY grave SDATA "[grave ]"--=grave accent-->
<!ENTITY macr SDATA "[macr ]"--=macron-->
<!ENTITY ogon SDATA "[ogon ]"--=ogonek-->
<!ENTITY ring SDATA "[ring ]"--=ring-->
<!ENTITY tilde SDATA "[tilde ]"--=tilde-->
<!ENTITY uml SDATA "[uml ]"--=umlaut mark-->

View File

@@ -0,0 +1,61 @@
<!-- $XConsortium: iso-grk1.gml /main/2 1996/10/29 16:21:48 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOgrk1 PUBLIC
"ISO 8879-1986//ENTITIES Greek Letters//EN">
%ISOgrk1;
-->
<!ENTITY agr SDATA "[agr ]"--=small alpha, Greek-->
<!ENTITY Agr SDATA "[Agr ]"--=capital Alpha, Greek-->
<!ENTITY bgr SDATA "[bgr ]"--=small beta, Greek-->
<!ENTITY Bgr SDATA "[Bgr ]"--=capital Beta, Greek-->
<!ENTITY ggr SDATA "[ggr ]"--=small gamma, Greek-->
<!ENTITY Ggr SDATA "[Ggr ]"--=capital Gamma, Greek-->
<!ENTITY dgr SDATA "[dgr ]"--=small delta, Greek-->
<!ENTITY Dgr SDATA "[Dgr ]"--=capital Delta, Greek-->
<!ENTITY egr SDATA "[egr ]"--=small epsilon, Greek-->
<!ENTITY Egr SDATA "[Egr ]"--=capital Epsilon, Greek-->
<!ENTITY zgr SDATA "[zgr ]"--=small zeta, Greek-->
<!ENTITY Zgr SDATA "[Zgr ]"--=capital Zeta, Greek-->
<!ENTITY eegr SDATA "[eegr ]"--=small eta, Greek-->
<!ENTITY EEgr SDATA "[EEgr ]"--=capital Eta, Greek-->
<!ENTITY thgr SDATA "[thgr ]"--=small theta, Greek-->
<!ENTITY THgr SDATA "[THgr ]"--=capital Theta, Greek-->
<!ENTITY igr SDATA "[igr ]"--=small iota, Greek-->
<!ENTITY Igr SDATA "[Igr ]"--=capital Iota, Greek-->
<!ENTITY kgr SDATA "[kgr ]"--=small kappa, Greek-->
<!ENTITY Kgr SDATA "[Kgr ]"--=capital Kappa, Greek-->
<!ENTITY lgr SDATA "[lgr ]"--=small lambda, Greek-->
<!ENTITY Lgr SDATA "[Lgr ]"--=capital Lambda, Greek-->
<!ENTITY mgr SDATA "[mgr ]"--=small mu, Greek-->
<!ENTITY Mgr SDATA "[Mgr ]"--=capital Mu, Greek-->
<!ENTITY ngr SDATA "[ngr ]"--=small nu, Greek-->
<!ENTITY Ngr SDATA "[Ngr ]"--=capital Nu, Greek-->
<!ENTITY xgr SDATA "[xgr ]"--=small xi, Greek-->
<!ENTITY Xgr SDATA "[Xgr ]"--=capital Xi, Greek-->
<!ENTITY ogr SDATA "[ogr ]"--=small omicron, Greek-->
<!ENTITY Ogr SDATA "[Ogr ]"--=capital Omicron, Greek-->
<!ENTITY pgr SDATA "[pgr ]"--=small pi, Greek-->
<!ENTITY Pgr SDATA "[Pgr ]"--=capital Pi, Greek-->
<!ENTITY rgr SDATA "[rgr ]"--=small rho, Greek-->
<!ENTITY Rgr SDATA "[Rgr ]"--=capital Rho, Greek-->
<!ENTITY sgr SDATA "[sgr ]"--=small sigma, Greek-->
<!ENTITY Sgr SDATA "[Sgr ]"--=capital Sigma, Greek-->
<!ENTITY sfgr SDATA "[sfgr ]"--=final small sigma, Greek-->
<!ENTITY tgr SDATA "[tgr ]"--=small tau, Greek-->
<!ENTITY Tgr SDATA "[Tgr ]"--=capital Tau, Greek-->
<!ENTITY ugr SDATA "[ugr ]"--=small upsilon, Greek-->
<!ENTITY Ugr SDATA "[Ugr ]"--=capital Upsilon, Greek-->
<!ENTITY phgr SDATA "[phgr ]"--=small phi, Greek-->
<!ENTITY PHgr SDATA "[PHgr ]"--=capital Phi, Greek-->
<!ENTITY khgr SDATA "[khgr ]"--=small chi, Greek-->
<!ENTITY KHgr SDATA "[KHgr ]"--=capital Chi, Greek-->
<!ENTITY psgr SDATA "[psgr ]"--=small psi, Greek-->
<!ENTITY PSgr SDATA "[PSgr ]"--=capital Psi, Greek-->
<!ENTITY ohgr SDATA "[ohgr ]"--=small omega, Greek-->
<!ENTITY OHgr SDATA "[OHgr ]"--=capital Omega, Greek-->

View File

@@ -0,0 +1,32 @@
<!-- $XConsortium: iso-grk2.gml /main/2 1996/10/29 16:22:03 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOgrk2 PUBLIC
"ISO 8879-1986//ENTITIES Monotoniko Greek//EN">
%ISOgrk2;
-->
<!ENTITY aacgr SDATA "[aacgr ]"--=small alpha, accent, Greek-->
<!ENTITY Aacgr SDATA "[Aacgr ]"--=capital Alpha, accent, Greek-->
<!ENTITY eacgr SDATA "[eacgr ]"--=small epsilon, accent, Greek-->
<!ENTITY Eacgr SDATA "[Eacgr ]"--=capital Epsilon, accent, Greek-->
<!ENTITY eeacgr SDATA "[eeacgr]"--=small eta, accent, Greek-->
<!ENTITY EEacgr SDATA "[EEacgr]"--=capital Eta, accent, Greek-->
<!ENTITY idigr SDATA "[idigr ]"--=small iota, dieresis, Greek-->
<!ENTITY Idigr SDATA "[Idigr ]"--=capital Iota, dieresis, Greek-->
<!ENTITY iacgr SDATA "[iacgr ]"--=small iota, accent, Greek-->
<!ENTITY Iacgr SDATA "[Iacgr ]"--=capital Iota, accent, Greek-->
<!ENTITY idiagr SDATA "[idiagr]"--=small iota, dieresis, accent, Greek-->
<!ENTITY oacgr SDATA "[oacgr ]"--=small omicron, accent, Greek-->
<!ENTITY Oacgr SDATA "[Oacgr ]"--=capital Omicron, accent, Greek-->
<!ENTITY udigr SDATA "[udigr ]"--=small upsilon, dieresis, Greek-->
<!ENTITY Udigr SDATA "[Udigr ]"--=capital Upsilon, dieresis, Greek-->
<!ENTITY uacgr SDATA "[uacgr ]"--=small upsilon, accent, Greek-->
<!ENTITY Uacgr SDATA "[Uacgr ]"--=capital Upsilon, accent, Greek-->
<!ENTITY udiagr SDATA "[udiagr]"--=small upsilon, dieresis, accent, Greek-->
<!ENTITY ohacgr SDATA "[ohacgr]"--=small omega, accent, Greek-->
<!ENTITY OHacgr SDATA "[OHacgr]"--=capital Omega, accent, Greek-->

View File

@@ -0,0 +1,55 @@
<!-- $XConsortium: iso-grk3.gml /main/2 1996/10/29 16:22:14 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOgrk3 PUBLIC
"ISO 8879-1986//ENTITIES Greek Symbols//EN">
%ISOgrk3;
-->
<!ENTITY alpha SDATA "[alpha ]"--=small alpha, Greek-->
<!ENTITY beta SDATA "[beta ]"--=small beta, Greek-->
<!ENTITY gamma SDATA "[gamma ]"--=small gamma, Greek-->
<!ENTITY Gamma SDATA "[Gamma ]"--=capital Gamma, Greek-->
<!ENTITY gammad SDATA "[gammad]"--/digamma-->
<!ENTITY delta SDATA "[delta ]"--=small delta, Greek-->
<!ENTITY Delta SDATA "[Delta ]"--=capital Delta, Greek-->
<!ENTITY epsi SDATA "[epsi ]"--=small epsilon, Greek-->
<!ENTITY epsiv SDATA "[epsiv ]"--/varepsilon-->
<!ENTITY epsis SDATA "[epsis ]"--/straightepsilon-->
<!ENTITY zeta SDATA "[zeta ]"--=small zeta, Greek-->
<!ENTITY eta SDATA "[eta ]"--=small eta, Greek-->
<!ENTITY thetas SDATA "[thetas]"--straight theta-->
<!ENTITY Theta SDATA "[Theta ]"--=capital Theta, Greek-->
<!ENTITY thetav SDATA "[thetav]"--/vartheta - curly or open theta-->
<!ENTITY iota SDATA "[iota ]"--=small iota, Greek-->
<!ENTITY kappa SDATA "[kappa ]"--=small kappa, Greek-->
<!ENTITY kappav SDATA "[kappav]"--/varkappa-->
<!ENTITY lambda SDATA "[lambda]"--=small lambda, Greek-->
<!ENTITY Lambda SDATA "[Lambda]"--=capital Lambda, Greek-->
<!ENTITY mu SDATA "[mu ]"--=small mu, Greek-->
<!ENTITY nu SDATA "[nu ]"--=small nu, Greek-->
<!ENTITY xi SDATA "[xi ]"--=small xi, Greek-->
<!ENTITY Xi SDATA "[Xi ]"--=capital Xi, Greek-->
<!ENTITY pi SDATA "[pi ]"--=small pi, Greek-->
<!ENTITY piv SDATA "[piv ]"--/varpi-->
<!ENTITY Pi SDATA "[Pi ]"--=capital Pi, Greek-->
<!ENTITY rho SDATA "[rho ]"--=small rho, Greek-->
<!ENTITY rhov SDATA "[rhov ]"--/varrho-->
<!ENTITY sigma SDATA "[sigma ]"--=small sigma, Greek-->
<!ENTITY Sigma SDATA "[Sigma ]"--=capital Sigma, Greek-->
<!ENTITY sigmav SDATA "[sigmav]"--/varsigma-->
<!ENTITY tau SDATA "[tau ]"--=small tau, Greek-->
<!ENTITY upsi SDATA "[upsi ]"--=small upsilon, Greek-->
<!ENTITY Upsi SDATA "[Upsi ]"--=capital Upsilon, Greek-->
<!ENTITY phis SDATA "[phis ]"--/straightphi - straight phi-->
<!ENTITY Phi SDATA "[Phi ]"--=capital Phi, Greek-->
<!ENTITY phiv SDATA "[phiv ]"--/varphi - curly or open phi-->
<!ENTITY chi SDATA "[chi ]"--=small chi, Greek-->
<!ENTITY psi SDATA "[psi ]"--=small psi, Greek-->
<!ENTITY Psi SDATA "[Psi ]"--=capital Psi, Greek-->
<!ENTITY omega SDATA "[omega ]"--=small omega, Greek-->
<!ENTITY Omega SDATA "[Omega ]"--=capital Omega, Greek-->

View File

@@ -0,0 +1,54 @@
<!-- $XConsortium: iso-grk4.gml /main/2 1996/10/29 16:22:24 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOgrk4 PUBLIC
"ISO 8879-1986//ENTITIES Alternative Greek Symbols//EN">
%ISOgrk4;
-->
<!ENTITY b.alpha SDATA "[b.alpha ]"--=small alpha, Greek-->
<!ENTITY b.beta SDATA "[b.beta ]"--=small beta, Greek-->
<!ENTITY b.gamma SDATA "[b.gamma ]"--=small gamma, Greek-->
<!ENTITY b.Gamma SDATA "[b.Gamma ]"--=capital Gamma, Greek-->
<!ENTITY b.gammad SDATA "[b.gammad]"--/digamma-->
<!ENTITY b.delta SDATA "[b.delta ]"--=small delta, Greek-->
<!ENTITY b.Delta SDATA "[b.Delta ]"--=capital Delta, Greek-->
<!ENTITY b.epsi SDATA "[b.epsi ]"--=small epsilon, Greek-->
<!ENTITY b.epsiv SDATA "[b.epsiv ]"--/varepsilon-->
<!ENTITY b.epsis SDATA "[b.epsis ]"--/straightepsilon-->
<!ENTITY b.zeta SDATA "[b.zeta ]"--=small zeta, Greek-->
<!ENTITY b.eta SDATA "[b.eta ]"--=small eta, Greek-->
<!ENTITY b.thetas SDATA "[b.thetas]"--straight theta-->
<!ENTITY b.Theta SDATA "[b.Theta ]"--=capital Theta, Greek-->
<!ENTITY b.thetav SDATA "[b.thetav]"--/vartheta - curly or open theta-->
<!ENTITY b.iota SDATA "[b.iota ]"--=small iota, Greek-->
<!ENTITY b.kappa SDATA "[b.kappa ]"--=small kappa, Greek-->
<!ENTITY b.kappav SDATA "[b.kappav]"--/varkappa-->
<!ENTITY b.lambda SDATA "[b.lambda]"--=small lambda, Greek-->
<!ENTITY b.Lambda SDATA "[b.Lambda]"--=capital Lambda, Greek-->
<!ENTITY b.mu SDATA "[b.mu ]"--=small mu, Greek-->
<!ENTITY b.nu SDATA "[b.nu ]"--=small nu, Greek-->
<!ENTITY b.xi SDATA "[b.xi ]"--=small xi, Greek-->
<!ENTITY b.Xi SDATA "[b.Xi ]"--=capital Xi, Greek-->
<!ENTITY b.pi SDATA "[b.pi ]"--=small pi, Greek-->
<!ENTITY b.Pi SDATA "[b.Pi ]"--=capital Pi, Greek-->
<!ENTITY b.piv SDATA "[b.piv ]"--/varpi-->
<!ENTITY b.rho SDATA "[b.rho ]"--=small rho, Greek-->
<!ENTITY b.rhov SDATA "[b.rhov ]"--/varrho-->
<!ENTITY b.sigma SDATA "[b.sigma ]"--=small sigma, Greek-->
<!ENTITY b.Sigma SDATA "[b.Sigma ]"--=capital Sigma, Greek-->
<!ENTITY b.sigmav SDATA "[b.sigmav]"--/varsigma-->
<!ENTITY b.tau SDATA "[b.tau ]"--=small tau, Greek-->
<!ENTITY b.upsi SDATA "[b.upsi ]"--=small upsilon, Greek-->
<!ENTITY b.Upsi SDATA "[b.Upsi ]"--=capital Upsilon, Greek-->
<!ENTITY b.phis SDATA "[b.phis ]"--/straightphi - straight phi-->
<!ENTITY b.Phi SDATA "[b.Phi ]"--=capital Phi, Greek-->
<!ENTITY b.phiv SDATA "[b.phiv ]"--/varphi - curly or open phi-->
<!ENTITY b.chi SDATA "[b.chi ]"--=small chi, Greek-->
<!ENTITY b.psi SDATA "[b.psi ]"--=small psi, Greek-->
<!ENTITY b.Psi SDATA "[b.Psi ]"--=capital Psi, Greek-->
<!ENTITY b.omega SDATA "[b.omega ]"--=small omega, Greek-->
<!ENTITY b.Omega SDATA "[b.Omega ]"--=capital Omega, Greek-->

View File

@@ -0,0 +1,74 @@
<!-- $XConsortium: iso-lat1.gml /main/2 1996/10/29 16:22:35 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOlat1 PUBLIC
"ISO 8879-1986//ENTITIES Added Latin 1//EN">
%ISOlat1;
-->
<!ENTITY Aacute CDATA "&#193;"--=capital A, acute accent-->
<!ENTITY aacute CDATA "&#225;"--=small a, acute accent-->
<!ENTITY Acirc CDATA "&#194;"--=capital A, circumflex accent-->
<!ENTITY acirc CDATA "&#226;"--=small a, circumflex accent-->
<!ENTITY AElig CDATA "&#198;"--=capital AE diphthong (ligature)-->
<!ENTITY aelig CDATA "&#230;"--=small ae diphthong (ligature)-->
<!ENTITY Agrave CDATA "&#192;"--=capital A, grave accent-->
<!ENTITY agrave CDATA "&#224;"--=small a, grave accent-->
<!ENTITY Aring CDATA "&#197;"--=capital A, ring-->
<!ENTITY aring CDATA "&#229;"--=small a, ring-->
<!ENTITY Atilde CDATA "&#195;"--=capital A, tilde-->
<!ENTITY atilde CDATA "&#227;"--=small a, tilde-->
<!ENTITY Auml CDATA "&#196;"--=capital A, dieresis or umlaut mark-->
<!ENTITY auml CDATA "&#228;"--=small a, dieresis or umlaut mark-->
<!ENTITY Ccedil CDATA "&#199;"--=capital C, cedilla-->
<!ENTITY ccedil CDATA "&#231;"--=small c, cedilla-->
<!ENTITY Eacute CDATA "&#201;"--=capital E, acute accent-->
<!ENTITY eacute CDATA "&#233;"--=small e, acute accent-->
<!ENTITY Ecirc CDATA "&#202;"--=capital E, circumflex accent-->
<!ENTITY ecirc CDATA "&#234;"--=small e, circumflex accent-->
<!ENTITY Egrave CDATA "&#200;"--=capital E, grave accent-->
<!ENTITY egrave CDATA "&#232;"--=small e, grave accent-->
<!ENTITY ETH CDATA "&#208;"--=capital Eth, Icelandic-->
<!ENTITY eth CDATA "&#240;"--=small eth, Icelandic-->
<!ENTITY Euml CDATA "&#203;"--=capital E, dieresis or umlaut mark-->
<!ENTITY euml CDATA "&#235;"--=small e, dieresis or umlaut mark-->
<!ENTITY Iacute CDATA "&#205;"--=capital I, acute accent-->
<!ENTITY iacute CDATA "&#237;"--=small i, acute accent-->
<!ENTITY Icirc CDATA "&#206;"--=capital I, circumflex accent-->
<!ENTITY icirc CDATA "&#238;"--=small i, circumflex accent-->
<!ENTITY Igrave CDATA "&#204;"--=capital I, grave accent-->
<!ENTITY igrave CDATA "&#236;"--=small i, grave accent-->
<!ENTITY Iuml CDATA "&#207;"--=capital I, dieresis or umlaut mark-->
<!ENTITY iuml CDATA "&#239;"--=small i, dieresis or umlaut mark-->
<!ENTITY Ntilde CDATA "&#209;"--=capital N, tilde-->
<!ENTITY ntilde CDATA "&#241;"--=small n, tilde-->
<!ENTITY Oacute CDATA "&#211;"--=capital O, acute accent-->
<!ENTITY oacute CDATA "&#243;"--=small o, acute accent-->
<!ENTITY Ocirc CDATA "&#212;"--=capital O, circumflex accent-->
<!ENTITY ocirc CDATA "&#244;"--=small o, circumflex accent-->
<!ENTITY Ograve CDATA "&#210;"--=capital O, grave accent-->
<!ENTITY ograve CDATA "&#242;"--=small o, grave accent-->
<!ENTITY Oslash CDATA "&#216;"--=capital O, slash-->
<!ENTITY oslash CDATA "&#248;"--=small o, slash-->
<!ENTITY Otilde CDATA "&#213;"--=capital O, tilde-->
<!ENTITY otilde CDATA "&#245;"--=small o, tilde-->
<!ENTITY Ouml CDATA "&#214;"--=capital O, dieresis or umlaut mark-->
<!ENTITY ouml CDATA "&#246;"--=small o, dieresis or umlaut mark-->
<!ENTITY szlig CDATA "&#223;"--=small sharp s, German (sz ligature)-->
<!ENTITY THORN CDATA "&#222;"--=capital THORN, Icelandic-->
<!ENTITY thorn CDATA "&#254;"--=small thorn, Icelandic-->
<!ENTITY Uacute CDATA "&#218;"--=capital U, acute accent-->
<!ENTITY uacute CDATA "&#250;"--=small u, acute accent-->
<!ENTITY Ucirc CDATA "&#219;"--=capital U, circumflex accent-->
<!ENTITY ucirc CDATA "&#251;"--=small u, circumflex accent-->
<!ENTITY Ugrave CDATA "&#217;"--=capital U, grave accent-->
<!ENTITY ugrave CDATA "&#249;"--=small u, grave accent-->
<!ENTITY Uuml CDATA "&#220;"--=capital U, dieresis or umlaut mark-->
<!ENTITY uuml CDATA "&#252;"--=small u, dieresis or umlaut mark-->
<!ENTITY Yacute CDATA "&#221;"--=capital Y, acute accent-->
<!ENTITY yacute CDATA "&#253;"--=small y, acute accent-->
<!ENTITY yuml CDATA "&#255;"--=small y, dieresis or umlaut mark-->

View File

@@ -0,0 +1,133 @@
<!-- $XConsortium: iso-lat2.gml /main/2 1996/10/29 16:22:45 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOlat2 PUBLIC
"ISO 8879-1986//ENTITIES Added Latin 2//EN">
%ISOlat2;
-->
<!ENTITY abreve SDATA "[abreve]"--=small a, breve-->
<!ENTITY Abreve SDATA "[Abreve]"--=capital A, breve-->
<!ENTITY amacr SDATA "[amacr ]"--=small a, macron-->
<!ENTITY Amacr SDATA "[Amacr ]"--=capital A, macron-->
<!ENTITY aogon SDATA "[aogon ]"--=small a, ogonek-->
<!ENTITY Aogon SDATA "[Aogon ]"--=capital A, ogonek-->
<!ENTITY cacute SDATA "[cacute]"--=small c, acute accent-->
<!ENTITY Cacute SDATA "[Cacute]"--=capital C, acute accent-->
<!ENTITY ccaron SDATA "[ccaron]"--=small c, caron-->
<!ENTITY Ccaron SDATA "[Ccaron]"--=capital C, caron-->
<!ENTITY ccirc SDATA "[ccirc ]"--=small c, circumflex accent-->
<!ENTITY Ccirc SDATA "[Ccirc ]"--=capital C, circumflex accent-->
<!ENTITY cdot SDATA "[cdot ]"--=small c, dot above-->
<!ENTITY Cdot SDATA "[Cdot ]"--=capital C, dot above-->
<!ENTITY dcaron SDATA "[dcaron]"--=small d, caron-->
<!ENTITY Dcaron SDATA "[Dcaron]"--=capital D, caron-->
<!ENTITY dstrok SDATA "[dstrok]"--=small d, stroke-->
<!ENTITY Dstrok SDATA "[Dstrok]"--=capital D, stroke-->
<!ENTITY ecaron SDATA "[ecaron]"--=small e, caron-->
<!ENTITY Ecaron SDATA "[Ecaron]"--=capital E, caron-->
<!ENTITY edot SDATA "[edot ]"--=small e, dot above-->
<!ENTITY Edot SDATA "[Edot ]"--=capital E, dot above-->
<!ENTITY emacr SDATA "[emacr ]"--=small e, macron-->
<!ENTITY Emacr SDATA "[Emacr ]"--=capital E, macron-->
<!ENTITY eogon SDATA "[eogon ]"--=small e, ogonek-->
<!ENTITY Eogon SDATA "[Eogon ]"--=capital E, ogonek-->
<!ENTITY gacute SDATA "[gacute]"--=small g, acute accent-->
<!ENTITY gbreve SDATA "[gbreve]"--=small g, breve-->
<!ENTITY Gbreve SDATA "[Gbreve]"--=capital G, breve-->
<!ENTITY Gcedil SDATA "[Gcedil]"--=capital G, cedilla-->
<!ENTITY gcirc SDATA "[gcirc ]"--=small g, circumflex accent-->
<!ENTITY Gcirc SDATA "[Gcirc ]"--=capital G, circumflex accent-->
<!ENTITY gdot SDATA "[gdot ]"--=small g, dot above-->
<!ENTITY Gdot SDATA "[Gdot ]"--=capital G, dot above-->
<!ENTITY hcirc SDATA "[hcirc ]"--=small h, circumflex accent-->
<!ENTITY Hcirc SDATA "[Hcirc ]"--=capital H, circumflex accent-->
<!ENTITY hstrok SDATA "[hstrok]"--=small h, stroke-->
<!ENTITY Hstrok SDATA "[Hstrok]"--=capital H, stroke-->
<!ENTITY Idot SDATA "[Idot ]"--=capital I, dot above-->
<!ENTITY Imacr SDATA "[Imacr ]"--=capital I, macron-->
<!ENTITY imacr SDATA "[imacr ]"--=small i, macron-->
<!ENTITY ijlig SDATA "[ijlig ]"--=small ij ligature-->
<!ENTITY IJlig SDATA "[IJlig ]"--=capital IJ ligature-->
<!ENTITY inodot SDATA "[inodot]"--=small i without dot-->
<!ENTITY iogon SDATA "[iogon ]"--=small i, ogonek-->
<!ENTITY Iogon SDATA "[Iogon ]"--=capital I, ogonek-->
<!ENTITY itilde SDATA "[itilde]"--=small i, tilde-->
<!ENTITY Itilde SDATA "[Itilde]"--=capital I, tilde-->
<!ENTITY jcirc SDATA "[jcirc ]"--=small j, circumflex accent-->
<!ENTITY Jcirc SDATA "[Jcirc ]"--=capital J, circumflex accent-->
<!ENTITY kcedil SDATA "[kcedil]"--=small k, cedilla-->
<!ENTITY Kcedil SDATA "[Kcedil]"--=capital K, cedilla-->
<!ENTITY kgreen SDATA "[kgreen]"--=small k, Greenlandic-->
<!ENTITY lacute SDATA "[lacute]"--=small l, acute accent-->
<!ENTITY Lacute SDATA "[Lacute]"--=capital L, acute accent-->
<!ENTITY lcaron SDATA "[lcaron]"--=small l, caron-->
<!ENTITY Lcaron SDATA "[Lcaron]"--=capital L, caron-->
<!ENTITY lcedil SDATA "[lcedil]"--=small l, cedilla-->
<!ENTITY Lcedil SDATA "[Lcedil]"--=capital L, cedilla-->
<!ENTITY lmidot SDATA "[lmidot]"--=small l, middle dot-->
<!ENTITY Lmidot SDATA "[Lmidot]"--=capital L, middle dot-->
<!ENTITY lstrok SDATA "[lstrok]"--=small l, stroke-->
<!ENTITY Lstrok SDATA "[Lstrok]"--=capital L, stroke-->
<!ENTITY nacute SDATA "[nacute]"--=small n, acute accent-->
<!ENTITY Nacute SDATA "[Nacute]"--=capital N, acute accent-->
<!ENTITY eng SDATA "[eng ]"--=small eng, Lapp-->
<!ENTITY ENG SDATA "[ENG ]"--=capital ENG, Lapp-->
<!ENTITY napos SDATA "[napos ]"--=small n, apostrophe-->
<!ENTITY ncaron SDATA "[ncaron]"--=small n, caron-->
<!ENTITY Ncaron SDATA "[Ncaron]"--=capital N, caron-->
<!ENTITY ncedil SDATA "[ncedil]"--=small n, cedilla-->
<!ENTITY Ncedil SDATA "[Ncedil]"--=capital N, cedilla-->
<!ENTITY odblac SDATA "[odblac]"--=small o, double acute accent-->
<!ENTITY Odblac SDATA "[Odblac]"--=capital O, double acute accent-->
<!ENTITY Omacr SDATA "[Omacr ]"--=capital O, macron-->
<!ENTITY omacr SDATA "[omacr ]"--=small o, macron-->
<!ENTITY oelig SDATA "[oelig ]"--=small oe ligature-->
<!ENTITY OElig SDATA "[OElig ]"--=capital OE ligature-->
<!ENTITY racute SDATA "[racute]"--=small r, acute accent-->
<!ENTITY Racute SDATA "[Racute]"--=capital R, acute accent-->
<!ENTITY rcaron SDATA "[rcaron]"--=small r, caron-->
<!ENTITY Rcaron SDATA "[Rcaron]"--=capital R, caron-->
<!ENTITY rcedil SDATA "[rcedil]"--=small r, cedilla-->
<!ENTITY Rcedil SDATA "[Rcedil]"--=capital R, cedilla-->
<!ENTITY sacute SDATA "[sacute]"--=small s, acute accent-->
<!ENTITY Sacute SDATA "[Sacute]"--=capital S, acute accent-->
<!ENTITY scaron SDATA "[scaron]"--=small s, caron-->
<!ENTITY Scaron SDATA "[Scaron]"--=capital S, caron-->
<!ENTITY scedil SDATA "[scedil]"--=small s, cedilla-->
<!ENTITY Scedil SDATA "[Scedil]"--=capital S, cedilla-->
<!ENTITY scirc SDATA "[scirc ]"--=small s, circumflex accent-->
<!ENTITY Scirc SDATA "[Scirc ]"--=capital S, circumflex accent-->
<!ENTITY tcaron SDATA "[tcaron]"--=small t, caron-->
<!ENTITY Tcaron SDATA "[Tcaron]"--=capital T, caron-->
<!ENTITY tcedil SDATA "[tcedil]"--=small t, cedilla-->
<!ENTITY Tcedil SDATA "[Tcedil]"--=capital T, cedilla-->
<!ENTITY tstrok SDATA "[tstrok]"--=small t, stroke-->
<!ENTITY Tstrok SDATA "[Tstrok]"--=capital T, stroke-->
<!ENTITY ubreve SDATA "[ubreve]"--=small u, breve-->
<!ENTITY Ubreve SDATA "[Ubreve]"--=capital U, breve-->
<!ENTITY udblac SDATA "[udblac]"--=small u, double acute accent-->
<!ENTITY Udblac SDATA "[Udblac]"--=capital U, double acute accent-->
<!ENTITY umacr SDATA "[umacr ]"--=small u, macron-->
<!ENTITY Umacr SDATA "[Umacr ]"--=capital U, macron-->
<!ENTITY uogon SDATA "[uogon ]"--=small u, ogonek-->
<!ENTITY Uogon SDATA "[Uogon ]"--=capital U, ogonek-->
<!ENTITY uring SDATA "[uring ]"--=small u, ring-->
<!ENTITY Uring SDATA "[Uring ]"--=capital U, ring-->
<!ENTITY utilde SDATA "[utilde]"--=small u, tilde-->
<!ENTITY Utilde SDATA "[Utilde]"--=capital U, tilde-->
<!ENTITY wcirc SDATA "[wcirc ]"--=small w, circumflex accent-->
<!ENTITY Wcirc SDATA "[Wcirc ]"--=capital W, circumflex accent-->
<!ENTITY ycirc SDATA "[ycirc ]"--=small y, circumflex accent-->
<!ENTITY Ycirc SDATA "[Ycirc ]"--=capital Y, circumflex accent-->
<!ENTITY Yuml CDATA "&#221;"--=capital Y, dieresis or umlaut mark-->
<!ENTITY zacute SDATA "[zacute]"--=small z, acute accent-->
<!ENTITY Zacute SDATA "[Zacute]"--=capital Z, acute accent-->
<!ENTITY zcaron SDATA "[zcaron]"--=small z, caron-->
<!ENTITY Zcaron SDATA "[Zcaron]"--=capital Z, caron-->
<!ENTITY zdot SDATA "[zdot ]"--=small z, dot above-->
<!ENTITY Zdot SDATA "[Zdot ]"--=capital Z, dot above-->

View File

@@ -0,0 +1,63 @@
<!-- $XConsortium: iso-mfrk.gml /main/2 1996/10/29 16:22:56 drk $ -->
<!-- (C) International Organization for Standardization 1991
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOMFRK PUBLIC
"ISO 9573-13:1991//ENTITIES Math Alphabets: Fraktur //EN">
%ISOMFRK;
-->
<!ENTITY afr SDATA "[afr ]" --/frak a, lower case a-->
<!ENTITY Afr SDATA "[Afr ]" --/frak A, upper case a-->
<!ENTITY bfr SDATA "[bfr ]" --/frak b, lower case b-->
<!ENTITY Bfr SDATA "[Bfr ]" --/frak B, upper case b-->
<!ENTITY cfr SDATA "[cfr ]" --/frak c, lower case c-->
<!ENTITY Cfr SDATA "[Cfr ]" --/frak C, upper case c-->
<!ENTITY dfr SDATA "[dfr ]" --/frak d, lower case d-->
<!ENTITY Dfr SDATA "[Dfr ]" --/frak D, upper case d-->
<!ENTITY efr SDATA "[efr ]" --/frak e, lower case e-->
<!ENTITY Efr SDATA "[Efr ]" --/frak E, upper case e-->
<!ENTITY ffr SDATA "[ffr ]" --/frak f, lower case f-->
<!ENTITY Ffr SDATA "[Ffr ]" --/frak F, upper case f-->
<!ENTITY gfr SDATA "[gfr ]" --/frak g, lower case g-->
<!ENTITY Gfr SDATA "[Gfr ]" --/frak G, upper case g-->
<!ENTITY hfr SDATA "[hfr ]" --/frak h, lower case h-->
<!ENTITY Hfr SDATA "[Hfr ]" --/frak H, upper case h-->
<!ENTITY ifr SDATA "[ifr ]" --/frak i, lower case i-->
<!ENTITY Ifr SDATA "[Ifr ]" --/frak I, upper case i-->
<!ENTITY jfr SDATA "[jfr ]" --/frak j, lower case j-->
<!ENTITY Jfr SDATA "[Jfr ]" --/frak J, upper case j-->
<!ENTITY kfr SDATA "[kfr ]" --/frak k, lower case k-->
<!ENTITY Kfr SDATA "[Kfr ]" --/frak K, upper case k-->
<!ENTITY lfr SDATA "[lfr ]" --/frak l, lower case l-->
<!ENTITY Lfr SDATA "[Lfr ]" --/frak L, upper case l-->
<!ENTITY mfr SDATA "[mfr ]" --/frak m, lower case m-->
<!ENTITY Mfr SDATA "[Mfr ]" --/frak M, upper case m-->
<!ENTITY nfr SDATA "[nfr ]" --/frak n, lower case n-->
<!ENTITY Nfr SDATA "[Nfr ]" --/frak N, upper case n-->
<!ENTITY ofr SDATA "[ofr ]" --/frak o, lower case o-->
<!ENTITY Ofr SDATA "[Ofr ]" --/frak O, upper case o-->
<!ENTITY pfr SDATA "[pfr ]" --/frak p, lower case p-->
<!ENTITY Pfr SDATA "[Pfr ]" --/frak P, upper case p-->
<!ENTITY qfr SDATA "[qfr ]" --/frak q, lower case q-->
<!ENTITY Qfr SDATA "[Qfr ]" --/frak Q, upper case q-->
<!ENTITY rfr SDATA "[rfr ]" --/frak r, lower case r-->
<!ENTITY Rfr SDATA "[Rfr ]" --/frak R, upper case r-->
<!ENTITY sfr SDATA "[sfr ]" --/frak s, lower case s-->
<!ENTITY Sfr SDATA "[Sfr ]" --/frak S, upper case s-->
<!ENTITY tfr SDATA "[tfr ]" --/frak t, lower case t-->
<!ENTITY Tfr SDATA "[Tfr ]" --/frak T, upper case t-->
<!ENTITY ufr SDATA "[ufr ]" --/frak u, lower case u-->
<!ENTITY Ufr SDATA "[Ufr ]" --/frak U, upper case u-->
<!ENTITY vfr SDATA "[vfr ]" --/frak v, lower case v-->
<!ENTITY Vfr SDATA "[Vfr ]" --/frak V, upper case v-->
<!ENTITY wfr SDATA "[wfr ]" --/frak w, lower case w-->
<!ENTITY Wfr SDATA "[Wfr ]" --/frak W, upper case w-->
<!ENTITY xfr SDATA "[xfr ]" --/frak x, lower case x-->
<!ENTITY Xfr SDATA "[Xfr ]" --/frak X, upper case x-->
<!ENTITY yfr SDATA "[yfr ]" --/frak y, lower case y-->
<!ENTITY Yfr SDATA "[Yfr ]" --/frak Y, upper case y-->
<!ENTITY zfr SDATA "[zfr ]" --/frak z, lower case z-->
<!ENTITY Zfr SDATA "[Zfr ]" --/frak Z, upper case z-->

View File

@@ -0,0 +1,37 @@
<!-- $XConsortium: iso-mopf.gml /main/2 1996/10/29 16:23:08 drk $ -->
<!-- (C) International Organization for Standardization 1991
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOMOPF PUBLIC
"ISO 9573-13:1991//ENTITIES Math Alphabets: Open Face //EN">
%ISOMOPF;
-->
<!ENTITY Aopf SDATA "[Aopf ]" --/Bbb A, open face A-->
<!ENTITY Bopf SDATA "[Bopf ]" --/Bbb B, open face B-->
<!ENTITY Copf SDATA "[Copf ]" --/Bbb C, open face C-->
<!ENTITY Dopf SDATA "[Dopf ]" --/Bbb D, open face D-->
<!ENTITY Eopf SDATA "[Eopf ]" --/Bbb E, open face E-->
<!ENTITY Fopf SDATA "[Fopf ]" --/Bbb F, open face F-->
<!ENTITY Gopf SDATA "[Gopf ]" --/Bbb G, open face G-->
<!ENTITY Hopf SDATA "[Hopf ]" --/Bbb H, open face H-->
<!ENTITY Iopf SDATA "[Iopf ]" --/Bbb I, open face I-->
<!ENTITY Jopf SDATA "[Jopf ]" --/Bbb J, open face J-->
<!ENTITY Kopf SDATA "[Kopf ]" --/Bbb K, open face K-->
<!ENTITY Lopf SDATA "[Lopf ]" --/Bbb L, open face L-->
<!ENTITY Mopf SDATA "[Mopf ]" --/Bbb M, open face M-->
<!ENTITY Nopf SDATA "[Nopf ]" --/Bbb N, open face N-->
<!ENTITY Oopf SDATA "[Oopf ]" --/Bbb O, open face O-->
<!ENTITY Popf SDATA "[Popf ]" --/Bbb P, open face P-->
<!ENTITY Qopf SDATA "[Qopf ]" --/Bbb Q, open face Q-->
<!ENTITY Ropf SDATA "[Ropf ]" --/Bbb R, open face R-->
<!ENTITY Sopf SDATA "[Sopf ]" --/Bbb S, open face S-->
<!ENTITY Topf SDATA "[Topf ]" --/Bbb T, open face T-->
<!ENTITY Uopf SDATA "[Uopf ]" --/Bbb U, open face U-->
<!ENTITY Vopf SDATA "[Vopf ]" --/Bbb V, open face V-->
<!ENTITY Wopf SDATA "[Wopf ]" --/Bbb W, open face W-->
<!ENTITY Xopf SDATA "[Xopf ]" --/Bbb X, open face X-->
<!ENTITY Yopf SDATA "[Yopf ]" --/Bbb Y, open face Y-->
<!ENTITY Zopf SDATA "[Zopf ]" --/Bbb Z, open face Z-->

View File

@@ -0,0 +1,63 @@
<!-- $XConsortium: iso-mscr.gml /main/2 1996/10/29 16:23:25 drk $ -->
<!-- (C) International Organization for Standardization 1991
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOMSCR PUBLIC
"ISO 9573-13:1991//ENTITIES Math Alphabets: Script //EN">
%ISOMSCR;
-->
<!ENTITY ascr SDATA "[ascr ]" --/scr a, script letter a-->
<!ENTITY Ascr SDATA "[Ascr ]" --/scr A, script letter A-->
<!ENTITY bscr SDATA "[bscr ]" --/scr b, script letter b-->
<!ENTITY Bscr SDATA "[Bscr ]" --/scr B, script letter B-->
<!ENTITY cscr SDATA "[cscr ]" --/scr c, script letter c-->
<!ENTITY Cscr SDATA "[Cscr ]" --/scr C, script letter C-->
<!ENTITY dscr SDATA "[dscr ]" --/scr d, script letter d-->
<!ENTITY Dscr SDATA "[Dscr ]" --/scr D, script letter D-->
<!ENTITY escr SDATA "[escr ]" --/scr e, script letter e-->
<!ENTITY Escr SDATA "[Escr ]" --/scr E, script letter E-->
<!ENTITY fscr SDATA "[fscr ]" --/scr f, script letter f-->
<!ENTITY Fscr SDATA "[Fscr ]" --/scr F, script letter F-->
<!ENTITY gscr SDATA "[gscr ]" --/scr g, script letter g-->
<!ENTITY Gscr SDATA "[Gscr ]" --/scr G, script letter G-->
<!ENTITY hscr SDATA "[hscr ]" --/scr h, script letter h-->
<!ENTITY Hscr SDATA "[Hscr ]" --/scr H, script letter H-->
<!ENTITY iscr SDATA "[iscr ]" --/scr i, script letter i-->
<!ENTITY Iscr SDATA "[Iscr ]" --/scr I, script letter I-->
<!ENTITY jscr SDATA "[jscr ]" --/scr j, script letter j-->
<!ENTITY Jscr SDATA "[Jscr ]" --/scr J, script letter J-->
<!ENTITY kscr SDATA "[kscr ]" --/scr k, script letter k-->
<!ENTITY Kscr SDATA "[Kscr ]" --/scr K, script letter K-->
<!ENTITY lscr SDATA "[lscr ]" --/scr l, script letter l-->
<!ENTITY Lscr SDATA "[Lscr ]" --/scr L, script letter L-->
<!ENTITY mscr SDATA "[mscr ]" --/scr m, script letter m-->
<!ENTITY Mscr SDATA "[Mscr ]" --/scr M, script letter M-->
<!ENTITY nscr SDATA "[nscr ]" --/scr n, script letter n-->
<!ENTITY Nscr SDATA "[Nscr ]" --/scr N, script letter N-->
<!ENTITY oscr SDATA "[oscr ]" --/scr o, script letter o-->
<!ENTITY Oscr SDATA "[Oscr ]" --/scr O, script letter O-->
<!ENTITY pscr SDATA "[pscr ]" --/scr p, script letter p-->
<!ENTITY Pscr SDATA "[Pscr ]" --/scr P, script letter P-->
<!ENTITY qscr SDATA "[qscr ]" --/scr q, script letter q-->
<!ENTITY Qscr SDATA "[Qscr ]" --/scr Q, script letter Q-->
<!ENTITY rscr SDATA "[rscr ]" --/scr r, script letter r-->
<!ENTITY Rscr SDATA "[Rscr ]" --/scr R, script letter R-->
<!ENTITY sscr SDATA "[sscr ]" --/scr s, script letter s-->
<!ENTITY Sscr SDATA "[Sscr ]" --/scr S, script letter S-->
<!ENTITY tscr SDATA "[tscr ]" --/scr t, script letter t-->
<!ENTITY Tscr SDATA "[Tscr ]" --/scr T, script letter T-->
<!ENTITY uscr SDATA "[uscr ]" --/scr u, script letter u-->
<!ENTITY Uscr SDATA "[Uscr ]" --/scr U, script letter U-->
<!ENTITY vscr SDATA "[vscr ]" --/scr v, script letter v-->
<!ENTITY Vscr SDATA "[Vscr ]" --/scr V, script letter V-->
<!ENTITY wscr SDATA "[wscr ]" --/scr w, script letter w-->
<!ENTITY Wscr SDATA "[Wscr ]" --/scr W, script letter W-->
<!ENTITY xscr SDATA "[xscr ]" --/scr x, script letter x-->
<!ENTITY Xscr SDATA "[Xscr ]" --/scr X, script letter X-->
<!ENTITY yscr SDATA "[yscr ]" --/scr y, script letter y-->
<!ENTITY Yscr SDATA "[Yscr ]" --/scr Y, script letter Y-->
<!ENTITY zscr SDATA "[zscr ]" --/scr z, script letter z-->
<!ENTITY Zscr SDATA "[Zscr ]" --/scr Z, script letter Z-->

View File

@@ -0,0 +1,88 @@
<!-- $XConsortium: iso-num.gml /main/2 1996/10/29 16:23:40 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOnum PUBLIC
"ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN">
%ISOnum;
-->
<!ENTITY amp CDATA "&"--=ampersand-->
<!ENTITY apos CDATA "'"--=apostrophe-->
<!ENTITY ast CDATA "*"--/ast B: =asterisk-->
<!ENTITY brvbar CDATA "|"--=broken (vertical) bar-->
<!ENTITY bsol CDATA "&#92;"--/backslash =reverse solidus-->
<!ENTITY cent CDATA "&#162;"--=cent sign-->
<!ENTITY colon CDATA ":"--/colon P:-->
<!ENTITY comma CDATA ","--P: =comma-->
<!ENTITY commat CDATA "@"--=commercial at-->
<!ENTITY copy CDATA "&#169;"--=copyright sign-->
<!ENTITY curren CDATA "&#164;"--=general currency sign-->
<!ENTITY darr SDATA "[darr ]"--/downarrow A: =downward arrow-->
<!ENTITY deg CDATA "&#176;"--=degree sign-->
<!ENTITY divide CDATA "&#247;"--/div B: =divide sign-->
<!ENTITY dollar CDATA "$"--=dollar sign-->
<!ENTITY equals CDATA "="--=equals sign R:-->
<!ENTITY excl CDATA "!"--=exclamation mark-->
<!ENTITY frac12 CDATA "&#189;"--=fraction one-half-->
<!ENTITY frac14 CDATA "&#188;"--=fraction one-quarter-->
<!ENTITY frac18 SDATA "[frac18]"--=fraction one-eighth-->
<!ENTITY frac34 CDATA "&#190;"--=fraction three-quarters-->
<!ENTITY frac38 SDATA "[frac38]"--=fraction three-eighths-->
<!ENTITY frac58 SDATA "[frac58]"--=fraction five-eighths-->
<!ENTITY frac78 SDATA "[frac78]"--=fraction seven-eighths-->
<!ENTITY gt CDATA ">"--=greater-than sign R:-->
<!ENTITY half CDATA "&#189;"--=fraction one-half-->
<!ENTITY horbar SDATA "[horbar]"--=horizontal bar-->
<!ENTITY hyphen CDATA "-"--=hyphen-->
<!ENTITY iexcl CDATA "&#161;"--=inverted exclamation mark-->
<!ENTITY iquest CDATA "&#191;"--=inverted question mark-->
<!ENTITY laquo CDATA "&#171;"--=angle quotation mark, left-->
<!ENTITY larr SDATA "[larr ]"--/leftarrow /gets A: =leftward arrow-->
<!ENTITY lcub CDATA "{"--/lbrace O: =left curly bracket-->
<!ENTITY ldquo CDATA "&#34;"--=double quotation mark, left-->
<!ENTITY lowbar SDATA "[lowbar]"--=low line-->
<!ENTITY lpar CDATA "("--O: =left parenthesis-->
<!ENTITY lsqb CDATA "["--/lbrack O: =left square bracket-->
<!ENTITY lsquo CDATA "`"--=single quotation mark, left-->
<!ENTITY lt CDATA "<"--=less-than sign R:-->
<!ENTITY micro CDATA "&#181;"--=micro sign-->
<!ENTITY middot CDATA "&#183;"--/centerdot B: =middle dot-->
<!ENTITY nbsp CDATA "&#160;" --=no break (required) space-->
<!ENTITY not CDATA "&#172;"--/neg /lnot =not sign-->
<!ENTITY num CDATA "#"--=number sign-->
<!ENTITY ohm SDATA "[ohm ]"--=ohm sign-->
<!ENTITY ordf CDATA "&#170;"--=ordinal indicator, feminine-->
<!ENTITY ordm CDATA "&#186;"--=ordinal indicator, masculine-->
<!ENTITY para CDATA "&#182;"--=pilcrow (paragraph sign)-->
<!ENTITY percnt CDATA "%"--=percent sign-->
<!ENTITY period CDATA "."--=full stop, period-->
<!ENTITY plus CDATA "+"--=plus sign B:-- >
<!ENTITY plusmn CDATA "&#177;"--/pm B: =plus-or-minus sign-->
<!ENTITY pound CDATA "&#163;"--=pound sign-->
<!ENTITY quest CDATA "?"--=question mark-->
<!ENTITY quot CDATA "'"--=quotation mark-->
<!ENTITY raquo CDATA "&#187;"--=angle quotation mark, right-->
<!ENTITY rarr SDATA "[rarr ]"--/rightarrow /to A: =rightward arrow-->
<!ENTITY rcub CDATA "}"--/rbrace C: =right curly bracket-->
<!ENTITY rdquo CDATA "&#34;"--=double quotation mark, right-->
<!ENTITY reg CDATA "&#174;"--/circledR =registered sign-->
<!ENTITY rpar CDATA ")"--C: =right parenthesis-->
<!ENTITY rsqb CDATA "]"--/rbrack C: =right square bracket-->
<!ENTITY rsquo CDATA "'"--=single quotation mark, right-->
<!ENTITY sect CDATA "&#167;"--=section sign-->
<!ENTITY semi CDATA ";"--=semicolon P:-->
<!ENTITY shy SDATA "[shy ]"--=soft hyphen-->
<!ENTITY sol CDATA "/"--=solidus-->
<!ENTITY sung SDATA "[sung ]"--=music note (sung text sign)-->
<!ENTITY sup1 CDATA "&#185;"--=superscript one-->
<!ENTITY sup2 CDATA "&#178;"--=superscript two-->
<!ENTITY sup3 CDATA "&#179;"--=superscript three-->
<!ENTITY times CDATA "&#215;"--/times B: =multiply sign-->
<!ENTITY trade CDATA "(TM)"--=trade mark sign-->
<!ENTITY uarr SDATA "[uarr ]"--/uparrow A: =upward arrow-->
<!ENTITY verbar CDATA "|"--/vert =vertical bar-->
<!ENTITY yen CDATA "&#165;"--/yen =yen sign-->

View File

@@ -0,0 +1,96 @@
<!-- $XConsortium: iso-pub.gml /main/2 1996/10/29 16:23:55 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOpub PUBLIC
"ISO 8879-1986//ENTITIES Publishing//EN">
%ISOpub;
-->
<!ENTITY Dagger CDATA "[Dagger]"--/ddagger B: =double dagger-->
<!ENTITY blank CDATA "&#160;"--=significant blank symbol-->
<!ENTITY blk12 SDATA "[blk12 ]"--=50% shaded block-->
<!ENTITY blk14 SDATA "[blk14 ]"--=25% shaded block-->
<!ENTITY blk34 SDATA "[blk34 ]"--=75% shaded block-->
<!ENTITY block SDATA "[block ]"--=full block-->
<!ENTITY bull CDATA "&#183;"--/bullet B: =round bullet, filled-->
<!ENTITY caret SDATA "[caret ]"--=caret (insertion mark)-->
<!ENTITY check SDATA "[check ]"--/checkmark =tick, check mark-->
<!ENTITY cir SDATA "[cir ]"--/circ B: =circle, open-->
<!ENTITY clubs SDATA "[clubs ]"--/clubsuit =club suit symbol-->
<!ENTITY copysr SDATA "[copysr]"--=sound recording copyright sign-->
<!ENTITY cross SDATA "[ballot]"--=ballot cross-->
<!ENTITY dagger SDATA "[dagger]"--/dagger B: =dagger-->
<!ENTITY dash CDATA "-"--=hyphen (true graphic)-->
<!ENTITY diams SDATA "[diams ]"--/diamondsuit =diamond suit symbol-->
<!ENTITY dlcrop SDATA "[dlcrop]"--downward left crop mark -->
<!ENTITY drcrop SDATA "[drcrop]"--downward right crop mark -->
<!ENTITY dtri SDATA "[dtri ]"--/triangledown =down triangle, open-->
<!ENTITY dtrif SDATA "[dtrif ]"--/blacktriangledown =dn tri, filled-->
<!ENTITY emsp CDATA " "--=em space-->
<!ENTITY emsp13 CDATA " "--=1/3-em space-->
<!ENTITY emsp14 CDATA " "--=1/4-em space-->
<!ENTITY ensp CDATA " "--=en space (1/2-em)-->
<!ENTITY female SDATA "[female]"--=female symbol-->
<!ENTITY ffilig SDATA "[ffilig]"--small ffi ligature-->
<!ENTITY fflig SDATA "[fflig ]"--small ff ligature-->
<!ENTITY ffllig SDATA "[ffllig]"--small ffl ligature-->
<!ENTITY filig SDATA "[filig ]"--small fi ligature-->
<!ENTITY fjlig SDATA "[fjlig ]"--small fj ligature-->
<!ENTITY flat SDATA "[flat ]"--/flat =musical flat-->
<!ENTITY fllig SDATA "[fllig ]"--small fl ligature-->
<!ENTITY frac13 SDATA "[frac13]"--=fraction one-third-->
<!ENTITY frac15 SDATA "[frac15]"--=fraction one-fifth-->
<!ENTITY frac16 SDATA "[frac16]"--=fraction one-sixth-->
<!ENTITY frac23 SDATA "[frac23]"--=fraction two-thirds-->
<!ENTITY frac25 SDATA "[frac25]"--=fraction two-fifths-->
<!ENTITY frac35 SDATA "[frac35]"--=fraction three-fifths-->
<!ENTITY frac45 SDATA "[frac45]"--=fraction four-fifths-->
<!ENTITY frac56 SDATA "[frac56]"--=fraction five-sixths-->
<!ENTITY hairsp CDATA ""--=hair space-->
<!ENTITY hearts SDATA "[hearts]"--/heartsuit =heart suit symbol-->
<!ENTITY hellip CDATA "..."--=ellipsis (horizontal)-->
<!ENTITY hybull SDATA "[hybull]"--rectangle, filled (hyphen bullet)-->
<!ENTITY incare SDATA "[incare]"--=in-care-of symbol-->
<!ENTITY ldquor SDATA "[ldquor]"--=rising dbl quote, left (low)-->
<!ENTITY lhblk SDATA "[lhblk ]"--=lower half block-->
<!ENTITY loz SDATA "[loz ]"--/lozenge - lozenge or total mark-->
<!ENTITY lozf SDATA "[lozf ]"--/blacklozenge - lozenge, filled-->
<!ENTITY lsquor CDATA ","--=rising single quote, left (low)-->
<!ENTITY ltri SDATA "[ltri ]"--/triangleleft B: l triangle, open-->
<!ENTITY ltrif SDATA "[ltrif ]"--/blacktriangleleft R: =l tri, filled-->
<!ENTITY male SDATA "[male ]"--=male symbol-->
<!ENTITY malt SDATA "[malt ]"--/maltese =maltese cross-->
<!ENTITY marker SDATA "[marker]"--=histogram marker-->
<!ENTITY mdash CDATA "--"--=em dash-->
<!ENTITY mldr SDATA "[mldr ]"--em leader-->
<!ENTITY natur SDATA "[natur ]"--/natural - music natural-->
<!ENTITY ndash CDATA "-"--=en dash-->
<!ENTITY nldr SDATA "[nldr ]"--=double baseline dot (en leader)-->
<!ENTITY numsp CDATA " "--=digit space (width of a number)-->
<!ENTITY phone SDATA "[phone ]"--=telephone symbol-->
<!ENTITY puncsp CDATA " "--=punctuation space (width of comma)-->
<!ENTITY rdquor SDATA "[rdquor]"--rising dbl quote, right (high)-->
<!ENTITY rect SDATA "[rect ]"--=rectangle, open-->
<!ENTITY rsquor SDATA "[rsquor]"--rising single quote, right (high)-->
<!ENTITY rtri SDATA "[rtri ]"--/triangleright B: r triangle, open-->
<!ENTITY rtrif SDATA "[rtrif ]"--/blacktriangleright R: =r tri, filled-->
<!ENTITY rx SDATA "[rx ]"--pharmaceutical prescription (Rx)-->
<!ENTITY sext SDATA "[sext ]"--sextile (6-pointed star)-->
<!ENTITY sharp SDATA "[sharp ]"--/sharp =musical sharp-->
<!ENTITY spades SDATA "[spades]"--/spadesuit =spades suit symbol-->
<!ENTITY squ SDATA "[squ ]"--=square, open-->
<!ENTITY squf SDATA "[squf ]"--/blacksquare =sq bullet, filled-->
<!ENTITY star SDATA "[star ]"--=star, open-->
<!ENTITY starf SDATA "[starf ]"--/bigstar - star, filled-->
<!ENTITY target SDATA "[target]"--register mark or target-->
<!ENTITY telrec SDATA "[telrec]"--=telephone recorder symbol-->
<!ENTITY thinsp CDATA ""--=thin space (1/6-em)-->
<!ENTITY uhblk SDATA "[uhblk ]"--=upper half block-->
<!ENTITY ulcrop SDATA "[ulcrop]"--upward left crop mark -->
<!ENTITY urcrop SDATA "[urcrop]"--upward right crop mark -->
<!ENTITY utri SDATA "[utri ]"--/triangle =up triangle, open-->
<!ENTITY utrif SDATA "[utrif ]"--/blacktriangle =up tri, filled-->
<!ENTITY vellip SDATA "[vellip]"--vertical ellipsis-->

View File

@@ -0,0 +1,74 @@
<!-- $XConsortium: iso-tech.gml /main/2 1996/10/29 16:24:09 drk $ -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOtech PUBLIC
"ISO 8879-1986//ENTITIES General Technical//EN">
%ISOtech;
-->
<!ENTITY Dot SDATA "[Dot ]"--=dieresis or umlaut mark-->
<!ENTITY DotDot SDATA "[DotDot]"--four dots above-->
<!ENTITY Prime SDATA "[Prime ]"--=double prime or second-->
<!ENTITY Verbar SDATA "[Verbar]"--/Vert =dbl vertical bar-->
<!ENTITY aleph SDATA "[aleph ]"--/aleph =aleph, Hebrew-->
<!ENTITY and SDATA "[and ]"--/wedge /land B: =logical and-->
<!ENTITY ang90 SDATA "[ang90 ]"--=right (90 degree) angle-->
<!ENTITY angsph SDATA "[angsph]"--/sphericalangle =angle-spherical-->
<!ENTITY angst SDATA "[angst ]"--Angstrom =capital A, ring-->
<!ENTITY ap CDATA "&#126;"--/approx R: =approximate-->
<!ENTITY becaus SDATA "[becaus]"--/because R: =because-->
<!ENTITY bernou SDATA "[bernou]"--Bernoulli function (script capital B)-->
<!ENTITY bottom SDATA "[bottom]"--/bot B: =perpendicular-->
<!ENTITY cap SDATA "[cap ]"--/cap B: =intersection-->
<!ENTITY compfn SDATA "[compfn]"--B: composite function (small circle)-->
<!ENTITY cong SDATA "[cong ]"--/cong R: =congruent with-->
<!ENTITY conint SDATA "[conint]"--/oint L: =contour integral operator-->
<!ENTITY cup SDATA "[cup ]"--/cup B: =union or logical sum-->
<!ENTITY equiv SDATA "[equiv ]"--/equiv R: =identical with-->
<!ENTITY exist SDATA "[exist ]"--/exists =at least one exists-->
<!ENTITY fnof SDATA "[fnof ]"--=function of (italic small f)-->
<!ENTITY forall SDATA "[forall]"--/forall =for all-->
<!ENTITY ge SDATA "[ge ]"--/geq /ge R: =greater-than-or-equal-->
<!ENTITY hamilt SDATA "[hamilt]"--Hamiltonian (script capital H)-->
<!ENTITY iff SDATA "[iff ]"--/iff =if and only if-->
<!ENTITY infin SDATA "[infin ]"--/infty =infinity-->
<!ENTITY int SDATA "[int ]"--/int L: =integral operator-->
<!ENTITY isin SDATA "[isin ]"--/in R: =set membership-->
<!ENTITY lArr SDATA "[lArr ]"--/Leftarrow A: =is implied by-->
<!ENTITY lagran SDATA "[lagran]"--Lagrangian (script capital L)-->
<!ENTITY lang SDATA "[lang ]"--/langle O: =left angle bracket-->
<!ENTITY le SDATA "[le ]"--/leq /le R: =less-than-or-equal-->
<!ENTITY lowast SDATA "[lowast]"--low asterisk-->
<!ENTITY minus CDATA "&#173;"--B: =minus sign-->
<!ENTITY mnplus SDATA "[mnplus]"--/mp B: =minus-or-plus sign-->
<!ENTITY nabla SDATA "[nabla ]"--/nabla =del, Hamilton operator-->
<!ENTITY ne SDATA "[ne ]"--/ne /neq R: =not equal-->
<!ENTITY ni SDATA "[ni ]"--/ni /owns R: =contains-->
<!ENTITY notin SDATA "[notin ]"--N: negated set membership-->
<!ENTITY or SDATA "[or ]"--/vee /lor B: =logical or-->
<!ENTITY order SDATA "[order ]"--order of (script small o)-->
<!ENTITY par SDATA "[par ]"--/parallel R: =parallel-->
<!ENTITY part SDATA "[part ]"--/partial =partial differential-->
<!ENTITY permil SDATA "[permil]"--=per thousand-->
<!ENTITY perp SDATA "[perp ]"--/perp R: =perpendicular-->
<!ENTITY phmmat SDATA "[phmmat]"--physics M-matrix (script capital M)-->
<!ENTITY prime CDATA "&#180;"--/prime =prime or minute-->
<!ENTITY prop SDATA "[prop ]"--/propto R: =is proportional to-->
<!ENTITY rArr SDATA "[rArr ]"--/Rightarrow A: =implies-->
<!ENTITY radic SDATA "[radic ]"--/surd =radical-->
<!ENTITY rang SDATA "[rang ]"--/rangle C: =right angle bracket-->
<!ENTITY sim SDATA "[sim ]"--/sim R: =similar-->
<!ENTITY sime SDATA "[sime ]"--/simeq R: =similar, equals-->
<!ENTITY square SDATA "[square]"--/square B: =square-->
<!ENTITY sub SDATA "[sub ]"--/subset R: =subset or is implied by-->
<!ENTITY sube SDATA "[sube ]"--/subseteq R: =subset, equals-->
<!ENTITY sup SDATA "[sup ]"--/supset R: =superset or implies-->
<!ENTITY supe SDATA "[supe ]"--/supseteq R: =superset, equals-->
<!ENTITY tdot SDATA "[tdot ]"--three dots above-->
<!ENTITY there4 SDATA "[there4]"--/therefore R: =therefore-->
<!ENTITY tprime SDATA "[tprime]"--triple prime-->
<!ENTITY wedgeq SDATA "[wedgeq]"--R: corresponds to (wedge, equals)-->

View File

@@ -0,0 +1,13 @@
<!--
Do not remove this file.
This file is a placeholder, referenced by an entry in the
toolkit's catalog. This file should not be removed or modified
by users of the toolkit. Instead, users can place corresponding
lines in optional local catalog(s) to point to a local stylesheet
fragment. That might be done, for example, to pull different
sets of language-specific entities into the stylesheet,
-->

View File

@@ -0,0 +1,23 @@
<!DOCTYPE StyleSheet PUBLIC
"-//Common Desktop Environment//DTD DtInfo Bookcase Description//EN" [
<!ENTITY % ISO-List PUBLIC
"-//Common Desktop Environment//ENTITIES ISO Catalog//EN">
%ISO-List;
%ISOamsa;
%ISOamsb;
%ISOamsn;
%ISOamso;
%ISOamsr;
%ISOcyr1;
%ISOdia;
%ISOgrk1;
%ISOgrk3;
%ISOlat1;
%ISOlat2;
%ISOnum;
%ISOpub;
%ISOtech;
]>

View File

@@ -0,0 +1,70 @@
<!-- $XConsortium: tei-arb.gml /main/2 1996/10/29 16:24:24 drk $ -->
TEI has already done a set, filenamed TEIARB.ENTITIES, which
I append. We can just add this to the set.
<!-- TEI entity set for Arabic -->
<!-- Character entity set. Typical invocation:
<!ENTITY % TEIarb PUBLIC
"-//TEI TR1 W4:1992//ENTITIES Basic Arabic Letters//EN">
%TEIarb;
-->
<!ENTITY hamzar SDATA "[hamzar ]" --Arabic letter Hamza-->
<!ENTITY amadar SDATA "[amadar ]" --Arabic letter Alef with Madda above-->
<!ENTITY ahmuar SDATA "[ahmuar ]" --Arabic letter Alef with Hamza above-->
<!ENTITY whmuar SDATA "[whmuar ]" --Arabic letter Waw with Hamza above-->
<!ENTITY ahmlar SDATA "[ahmlar ]" --Arabic letter Alef with Hamza below-->
<!ENTITY yhmlar SDATA "[yhmlar ]" --Arabic letter Yeh with Hamza below-->
<!ENTITY aar SDATA "[aar ]" --Arabic letter Alef-->
<!ENTITY bar SDATA "[bar ]" --Arabic letter Beh-->
<!ENTITY tmrbar SDATA "[tmrbar ]" --Arabic letter Teh Marbuta-->
<!ENTITY tar SDATA "[tar ]" --Arabic letter Teh-->
<!ENTITY thhar SDATA "[thhar ]" --Arabic letter Theh-->
<!ENTITY jar SDATA "[jar ]" --Arabic letter Jeem-->
<!ENTITY har SDATA "[har ]" --Arabic letter Hah-->
<!ENTITY khar SDATA "[khar ]" --Arabic letter Khah-->
<!ENTITY dar SDATA "[dar ]" --Arabic letter Dal-->
<!ENTITY thlar SDATA "[thlar ]" --Arabic letter Thal-->
<!ENTITY rar SDATA "[rar ]" --Arabic letter Reh-->
<!ENTITY zar SDATA "[zar ]" --Arabic letter Zain-->
<!ENTITY sar SDATA "[sar ]" --Arabic letter Seen-->
<!ENTITY shar SDATA "[shar ]" --Arabic letter Sheen-->
<!ENTITY sdar SDATA "[sdar ]" --Arabic letter Sad-->
<!ENTITY ddar SDATA "[ddar ]" --Arabic letter Dad-->
<!ENTITY taar SDATA "[taar ]" --Arabic letter Tah-->
<!ENTITY zaar SDATA "[zaar ]" --Arabic letter Zah-->
<!ENTITY ainar SDATA "[ainar ]" --Arabic letter Ain-->
<!ENTITY ghnar SDATA "[ghnar ]" --Arabic letter Ghain-->
<!ENTITY twlar SDATA "[twlar ]" --Arabic letter Tatweel-->
<!ENTITY far SDATA "[far ]" --Arabic letter Feh-->
<!ENTITY qar SDATA "[qar ]" --Arabic letter Qaf-->
<!ENTITY kar SDATA "[kar ]" --Arabic letter Kaf-->
<!ENTITY lar SDATA "[lar ]" --Arabic letter Lam-->
<!ENTITY mar SDATA "[mar ]" --Arabic letter Meem-->
<!ENTITY nar SDATA "[nar ]" --Arabic letter Noon-->
<!ENTITY har SDATA "[har ]" --Arabic letter Heh-->
<!ENTITY war SDATA "[war ]" --Arabic letter Waw-->
<!ENTITY amksar SDATA "[amksar ]" --Arabic letter Alef Maksura-->
<!ENTITY yar SDATA "[yar ]" --Arabic letter Yeh-->
<!ENTITY fthnar SDATA "[fthnar ]" --Arabic letter Fathatan-->
<!ENTITY dmtnar SDATA "[dmtnar ]" --Arabic letter Dammatan-->
<!ENTITY kstnar SDATA "[kstnar ]" --Arabic letter Kasratan-->
<!ENTITY fthaar SDATA "[fthaar ]" --Arabic letter Fatha-->
<!ENTITY dmmaar SDATA "[dmmaar ]" --Arabic letter Damma-->
<!ENTITY ksraar SDATA "[ksraar ]" --Arabic letter Kasra-->
<!ENTITY shdaar SDATA "[shdaar ]" --Arabic letter Shadda-->
<!ENTITY skunar SDATA "[skunar ]" --Arabic letter Sukun-->
<!ENTITY zeroar SDATA "[zeroar ]" --Arabic-Indic digit Zero-->
<!ENTITY onear SDATA "[onear ]" --Arabic-Indic digit One-->
<!ENTITY twoar SDATA "[twoar ]" --Arabic-Indic digit Two-->
<!ENTITY threar SDATA "[threar ]" --Arabic-Indic digit Three-->
<!ENTITY fourar SDATA "[fourar ]" --Arabic-Indic digit Four-->
<!ENTITY fivear SDATA "[fivear ]" --Arabic-Indic digit Five-->
<!ENTITY sixar SDATA "[sixar ]" --Arabic-Indic digit Six-->
<!ENTITY svenar SDATA "[svenar ]" --Arabic-Indic digit Seven-->
<!ENTITY eitar SDATA "[eitar ]" --Arabic-Indic digit Eight-->
<!ENTITY ninear SDATA "[ninear ]" --Arabic-Indic digit Nine-->
--
Regards, Terry

View File

@@ -0,0 +1,375 @@
<!-- $XConsortium: tei-ipa.gml /main/2 1996/10/29 16:24:40 drk $ -->
Here's TEI's set; these might be useful in a glossary (or not!).
For consideration only.
<!-- IPA entity setdrawn up by Harry Gaylord with assistance from John Esling
and Alexandra Gaylord
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % TEIipa PUBLIC
"-//TEI TR1 W4:1992//ENTITIES IPA symbols for interchange//EN">
%TEIipa;
-->
<!ENTITY IPA101 SDATA "[IPA101 ]"
--IPA lower-case p, voiceless bilabial plosive-->
<!ENTITY IPA102 SDATA "[IPA102 ]"
--IPA lower-case b, voiced bilabial plosive-->
<!ENTITY IPA103 SDATA "[IPA103 ]"
--IPA lower-case t, voiceless dental or alveolar plosive-->
<!ENTITY IPA104 SDATA "[IPA104 ]"
--IPA lower-case d, voiced dental or alveolar plosive.-->
<!ENTITY IPA105 SDATA "[IPA105 ]"
--IPA Right-tail l.c. t, voiceless retroflex plosive-->
<!ENTITY IPA106 SDATA "[IPA106 ]"
--IPA Right-tail l.c. d, voiced retroflex plosive-->
<!ENTITY IPA107 SDATA "[IPA107 ]"
--IPA lower-case c, voiceless palatal plosive-->
<!ENTITY IPA108 SDATA "[IPA108 ]"
--IPA Barred Dotless l.c. j, voiced palatal plosive-->
<!ENTITY IPA109 SDATA "[IPA109 ]"
--IPA lower-case k, voiceless velar plosive-->
<!ENTITY IPA110 SDATA "[IPA110 ]"
--IPA lower-case g, voiced velar plosive-->
<!ENTITY IPA111 SDATA "[IPA111 ]"
--IPA lower-case q, voiceless uvular plosive-->
<!ENTITY IPA112 SDATA "[IPA112 ]"
--IPA Small Capital G, voiced uvular plosive-->
<!ENTITY IPA113 SDATA "[IPA113 ]"
--IPA Glottal Stop, glottal plosive-->
<!ENTITY IPA114 SDATA "[IPA114 ]"
--IPA lower-case m, voiced bilabial nasal-->
<!ENTITY IPA115 SDATA "[IPA115 ]"
--IPA Left-tail l.c. m (at right), voiced labiodental nasal-->
<!ENTITY IPA116 SDATA "[IPA116 ]"
--IPA lower-case n, voiced dental or alveolar nasal-->
<!ENTITY IPA117 SDATA "[IPA117 ]"
--IPA Right-tail l.c. n, voiced retroflex nasal-->
<!ENTITY IPA118 SDATA "[IPA118 ]"
--IPA Left-tail l.c. n (at left), voiced palatal nasal-->
<!ENTITY IPA119 SDATA "[IPA119 ]"
--IPA eng, voiced velar nasal-->
<!ENTITY IPA120 SDATA "[IPA120 ]"
--IPA Small Capital N, voiced uvular nasal-->
<!ENTITY IPA121 SDATA "[IPA121 ]"
--IPA Small Capital B, voiced bilabial trill-->
<!ENTITY IPA122 SDATA "[IPA122 ]"
--IPA lower-case r, voiced dental or alveolar trill-->
<!ENTITY IPA123 SDATA "[IPA123 ]"
--IPA Small Capital R, voiced uvular trill-->
<!ENTITY IPA124 SDATA "[IPA124 ]"
--IPA fish-hook l.c. r, voiced dental or alveolar tap-->
<!ENTITY IPA125 SDATA "[IPA125 ]"
--IPA Right-tail l.c. r, voiced retroflex flap-->
<!ENTITY IPA126 SDATA "[IPA126 ]"
--IPA phi, voiceless bilabial fricative-->
<!ENTITY IPA127 SDATA "[IPA127 ]"
--IPA beta, voiced bilabial fricative-->
<!ENTITY IPA128 SDATA "[IPA128 ]"
--IPA lower-case f, voiceless labiodental fricative-->
<!ENTITY IPA129 SDATA "[IPA129 ]"
--IPA lower-case v, voiced labiodental fricative-->
<!ENTITY IPA130 SDATA "[IPA130 ]"
--IPA theta, voiceless dental fricative-->
<!ENTITY IPA131 SDATA "[IPA131 ]"
--IPA eth, voiced dental fricative-->
<!ENTITY IPA132 SDATA "[IPA132 ]"
--IPA lower-case s, voiceless alveolar fricative-->
<!ENTITY IPA133 SDATA "[IPA133 ]"
--IPA lower-case z, voiced alveolar fricative-->
<!ENTITY IPA134 SDATA "[IPA134 ]"
--IPA esh, voiceless postalveolar fricative-->
<!ENTITY IPA135 SDATA "[IPA135 ]"
--IPA yogh, voiced postalveolar fricative-->
<!ENTITY IPA136 SDATA "[IPA136 ]"
--IPA Right-tail l.c. s (at left), voiceless retroflex fricative-->
<!ENTITY IPA137 SDATA "[IPA137 ]"
--IPA right-tail l.c. z, voiced retroflex fricative-->
<!ENTITY IPA138 SDATA "[IPA138 ]"
--IPA l.c. c cedilla, voiceless palatal fricative-->
<!ENTITY IPA139 SDATA "[IPA139 ]"
--IPA curly-tail l.c. j, voiced palatal fricative-->
<!ENTITY IPA140 SDATA "[IPA140 ]"
--IPA lower-case x, voiceless velar fricative-->
<!ENTITY IPA141 SDATA "[IPA141 ]"
--IPA gamma, voiced velar fricative-->
<!ENTITY IPA142 SDATA "[IPA142 ]"
--IPA chi, voiceless uvular fricative-->
<!ENTITY IPA143 SDATA "[IPA143 ]"
--IPA Inverted Small Capital R, voiced uvular fricative-->
<!ENTITY IPA144 SDATA "[IPA144 ]"
--IPA crossed l.c. h, voiceless pharyngeal fricative-->
<!ENTITY IPA145 SDATA "[IPA145 ]"
--IPA Reversed Glottal Stop, voiced pharyngeal fricative-->
<!ENTITY IPA146 SDATA "[IPA146 ]"
--IPA lower-case h, voiceless glottal fricative-->
<!ENTITY IPA147 SDATA "[IPA147 ]"
--IPA hooktop l.c. h, voiced glottal fricative-->
<!ENTITY IPA148 SDATA "[IPA148 ]"
--IPA belted l.c. l, voiceless dental or alveolar lateral fricative-->
<!ENTITY IPA149 SDATA "[IPA149 ]"
--IPA l.c. l-yogh Digraph, voiced dental or alveolar lateral fricative-->
<!ENTITY IPA150 SDATA "[IPA150 ]"
--IPA cursive l.c. v, voiced labiodental approximant-->
<!ENTITY IPA151 SDATA "[IPA151 ]"
--IPA turned l.c. r, voiced dental or alveolar approximant-->
<!ENTITY IPA152 SDATA "[IPA152 ]"
--IPA turned l.c. r, Right Tail, voiced retroflex approximant-->
<!ENTITY IPA153 SDATA "[IPA153 ]"
--IPA lower-case j, voiced palatal approximant-->
<!ENTITY IPA154 SDATA "[IPA154 ]"
--IPA turned l.c. m, Right Leg, voiced velar approximant-->
<!ENTITY IPA155 SDATA "[IPA155 ]"
--IPA lower-case l, voiced dental or alveolar lateral approximant-->
<!ENTITY IPA156 SDATA "[IPA156 ]"
--IPA right-tail l.c. l, voiced retroflex lateral approximant-->
<!ENTITY IPA157 SDATA "[IPA157 ]"
--IPA turned l.c. y, voiced palatal lateral approximant-->
<!ENTITY IPA158 SDATA "[IPA158 ]"
--IPA Small Capital L, voiced velar lateral approximant-->
<!ENTITY IPA159 SDATA "[IPA159 ]"
--IPA hooktop l.c. p, voiceless bilabial implosive-->
<!ENTITY IPA160 SDATA "[IPA160 ]"
--IPA hooktop l.c. b, voiced bilabial implosive-->
<!ENTITY IPA161 SDATA "[IPA161 ]"
--IPA hooktop l.c. t, voiceless dental or alveolar implosive-->
<!ENTITY IPA162 SDATA "[IPA162 ]"
--IPA hooktop l.c. d, voiced dental or alveolar implosive-->
<!ENTITY IPA163 SDATA "[IPA163 ]"
--IPA hooktop l.c. c, voiceless palatal implosive-->
<!ENTITY IPA164 SDATA "[IPA164 ]"
--IPA hooktop barred dotless l.c. j, voiced palatal implosive-->
<!ENTITY IPA165 SDATA "[IPA165 ]"
--IPA hooktop l.c. k, voiceless velar implosive-->
<!ENTITY IPA166 SDATA "[IPA166 ]"
--IPA hooktop l.c. g, voiced velar implosive-->
<!ENTITY IPA167 SDATA "[IPA167 ]"
--IPA hooktop l.c. q, voiceless uvular implosive-->
<!ENTITY IPA168 SDATA "[IPA168 ]"
--IPA Hooktop Small Capital G, voiced uvular implosive-->
<!ENTITY IPA169 SDATA "[IPA169 ]"
--IPA turned l.c. w, voiceless labial-velar fricative-->
<!ENTITY IPA170 SDATA "[IPA170 ]"
--IPA lower-case w, voiced labial-velar approximant-->
<!ENTITY IPA171 SDATA "[IPA171 ]"
--IPA turned l.c. h, voiced labial-palatal approximant-->
<!ENTITY IPA172 SDATA "[IPA172 ]"
--IPA Small Capital H, voiceless epiglottal fricative-->
<!ENTITY IPA173 SDATA "[IPA173 ]"
--IPA Barred Glottal Stop, voiced epiglottal plosive-->
<!ENTITY IPA174 SDATA "[IPA174 ]"
--IPA Barred Reversed Glottal Stop, voiced epiglottal fricative-->
<!ENTITY IPA175 SDATA "[IPA175 ]"
--IPA hooktop heng, simultaneous voiceless postalveolar and velar fricative -->
<!ENTITY IPA176 SDATA "[IPA176 ]"
--IPA Bulls Eye, bilabial click-->
<!ENTITY IPA177 SDATA "[IPA177 ]"
--IPA Pipe, dental click-->
<!ENTITY IPA178 SDATA "[IPA178 ]"
--IPA Exclamation Point, (post)alveolar click-->
<!ENTITY IPA179 SDATA "[IPA179 ]"
--IPA Double-barred Pipe, palatal click-->
<!ENTITY IPA180 SDATA "[IPA180 ]"
--IPA Double Pipe, alveolar lateral click-->
<!ENTITY IPA181 SDATA "[IPA181 ]"
--IPA turned long-leg l.c. r, voiced alveolar lateral flap-->
<!ENTITY IPA182 SDATA "[IPA182 ]"
--IPA curly-tail l.c. c, voiceless alveolo-palatal fricative-->
<!ENTITY IPA183 SDATA "[IPA183 ]"
--IPA curly-tail l.c. z, voiced alveolo-palatal fricative-->
<!ENTITY IPA204 SDATA "[IPA204 ]"
--IPA curly-tail esh, palatalized voiceless palato-alveolar central fricative
-->
<!ENTITY IPA205 SDATA "[IPA205 ]"
--IPA curly-tail yogh, palatalized voiced palato-alveolar central fricative -->
<!ENTITY IPA207 SDATA "[IPA207 ]"
--IPA superscript s, (brief, faint, minor) voiceless alveolar fricative-->
<!ENTITY IPA208 SDATA "[IPA208 ]"
--IPA left-hook l.c. t, palatalized voiceless dental or alveolar plosive -->
<!ENTITY IPA209 SDATA "[IPA209 ]"
--IPA l.c. l with tilde, velarized voiced alveolar lateral approximant -->
<!ENTITY IPA211 SDATA "[IPA211 ]"
--IPA t-s digraph, voiceless alveolar affricate-->
<!ENTITY IPA212 SDATA "[IPA212 ]"
--IPA d-z digraph, voiced alveolar affricate-->
<!ENTITY IPA213 SDATA "[IPA213 ]"
--IPA t-esh digraph, voiceless postalveolar affricate -->
<!ENTITY IPA214 SDATA "[IPA214 ]"
--IPA d-yogh digraph, voiced postalveolar affricate-->
<!ENTITY IPA215 SDATA "[IPA215 ]"
--IPA t-curly-tail-c digraph, voiceless alveolo-palatal affricate-->
<!ENTITY IPA216 SDATA "[IPA216 ]"
--IPA d-curly-tail-z digraph, voiced alveolo-palatal affricate-->
<!ENTITY IPA301 SDATA "[IPA301 ]"
--IPA lower-case i, close front unrounded vowel-->
<!ENTITY IPA302 SDATA "[IPA302 ]"
--IPA lower-case e, close-mid front unrounded vowel-->
<!ENTITY IPA303 SDATA "[IPA303 ]"
--IPA epsilon, open-mid front unrounded vowel-->
<!ENTITY IPA304 SDATA "[IPA304 ]"
--IPA lower-case a, open front unrounded vowel-->
<!ENTITY IPA305 SDATA "[IPA305 ]"
--IPA cursive l.c. a, open back unrounded vowel-->
<!ENTITY IPA306 SDATA "[IPA306 ]"
--IPA open o, open-mid back rounded vowel-->
<!ENTITY IPA307 SDATA "[IPA307 ]"
--IPA lower-case o, close-mid back rounded vowel-->
<!ENTITY IPA308 SDATA "[IPA308 ]"
--IPA lower-case u, close back rounded vowel-->
<!ENTITY IPA309 SDATA "[IPA309 ]"
--IPA lower-case y, close front rounded vowel-->
<!ENTITY IPA310 SDATA "[IPA310 ]"
--IPA slashed l.c. o, close-mid front rounded vowel-->
<!ENTITY IPA311 SDATA "[IPA311 ]"
--IPA o-e digraph, open-mid front rounded vowel-->
<!ENTITY IPA312 SDATA "[IPA312 ]"
--IPA Small Capital O-E Digraph, open front rounded vowel-->
<!ENTITY IPA313 SDATA "[IPA313 ]"
--IPA turned cursive l.c. a, open back rounded vowel-->
<!ENTITY IPA314 SDATA "[IPA314 ]"
--IPA turned v, open-mid back unrounded vowel-->
<!ENTITY IPA315 SDATA "[IPA315 ]"
--IPA rams horns, close-mid back unrounded vowel-->
<!ENTITY IPA316 SDATA "[IPA316 ]"
--IPA turned l.c. m, close back unrounded vowel-->
<!ENTITY IPA317 SDATA "[IPA317 ]"
--IPA barred l.c. i, close central unrounded vowel-->
<!ENTITY IPA318 SDATA "[IPA318 ]"
--IPA barred l.c. u, close central rounded vowel-->
<!ENTITY IPA319 SDATA "[IPA319 ]"
--IPA Small Capital I, near-close near-front unrounded vowel-->
<!ENTITY IPA320 SDATA "[IPA320 ]"
--IPA Small Capital Y, near-close near-front rounded vowel-->
<!ENTITY IPA321 SDATA "[IPA321 ]"
--IPA upsilon, near-close near-back rounded vowel-->
<!ENTITY IPA322 SDATA "[IPA322 ]"
--IPA schwa, mid central unrounded vowel-->
<!ENTITY IPA323 SDATA "[IPA323 ]"
--IPA barred l.c. o, mid central rounded vowel-->
<!ENTITY IPA324 SDATA "[IPA324 ]"
--IPA turned l.c. a, near-open central unrounded vowel-->
<!ENTITY IPA325 SDATA "[IPA325 ]"
--IPA ash digraph, near-open front unrounded vowel-->
<!ENTITY IPA326 SDATA "[IPA326 ]"
--IPA reversed epsilon, additional mid central vowel-->
<!ENTITY IPA327 SDATA "[IPA327 ]"
--IPA right-hook schwa, r-coloured mid central vowel-->
<!ENTITY IPA401 SDATA "[IPA401 ]"
--IPA apostrophe, ejective stop-->
<!ENTITY IPA402a SDATA "[IPA402a ]"
--IPA under ring, voiceless-->
<!ENTITY IPA402b SDATA "[IPA402b ]"
--IPA over ring, voiceless-->
<!ENTITY IPA403 SDATA "[IPA403 ]"
--IPA subscript wedge, voiced-->
<!ENTITY IPA404 SDATA "[IPA404 ]"
--IPA superscript h, aspirated-->
<!ENTITY IPA405 SDATA "[IPA405 ]"
--IPA subscript umlaut, breathy voiced-->
<!ENTITY IPA406 SDATA "[IPA406 ]"
--IPA subscript tilde, creaky voiced-->
<!ENTITY IPA407 SDATA "[IPA407 ]"
--IPA subscript seagull, linguolabial-->
<!ENTITY IPA408 SDATA "[IPA408 ]"
--IPA subscript bridge, dental-->
<!ENTITY IPA409 SDATA "[IPA409 ]"
--IPA inverted subscript bridge, apical-->
<!ENTITY IPA410 SDATA "[IPA410 ]"
--IPA subscript square, laminal-->
<!ENTITY IPA411 SDATA "[IPA411 ]"
--IPA subscript right half-ring, more rounded-->
<!ENTITY IPA412 SDATA "[IPA412 ]"
--IPA subscript left half-ring, less rounded-->
<!ENTITY IPA413 SDATA "[IPA413 ]"
--IPA subscript plus, advanced-->
<!ENTITY IPA414 SDATA "[IPA414 ]"
--IPA under-bar, retracted-->
<!ENTITY IPA415 SDATA "[IPA415 ]"
--IPA umlaut, centralized-->
<!ENTITY IPA416 SDATA "[IPA416 ]"
--IPA over-cross, mid centralized-->
<!ENTITY IPA417 SDATA "[IPA417 ]"
--IPA advancing sign, advanced tongue root-->
<!ENTITY IPA418 SDATA "[IPA418 ]"
--IPA retracting sign, retracted tongue root-->
<!ENTITY IPA419 SDATA "[IPA419 ]"
--IPA right hook, rhoticity-->
<!ENTITY IPA420 SDATA "[IPA420 ]"
--IPA superscript w, labialized-->
<!ENTITY IPA421 SDATA "[IPA421 ]"
--IPA superscript j, palatalized-->
<!ENTITY IPA422 SDATA "[IPA422 ]"
--IPA superscript gamma, velarized-->
<!ENTITY IPA423 SDATA "[IPA423 ]"
--IPA superscript reversed glottal stop, pharyngealized-->
<!ENTITY IPA424 SDATA "[IPA424 ]"
--IPA superscript tilde, nasalized-->
<!ENTITY IPA425 SDATA "[IPA425 ]"
--IPA superscript n, nasal release-->
<!ENTITY IPA426 SDATA "[IPA426 ]"
--IPA superscript l, lateral release-->
<!ENTITY IPA427 SDATA "[IPA427 ]"
--IPA corner, no audible release-->
<!ENTITY IPA428 SDATA "[IPA428 ]"
--IPA superimposed tilde, velarized or pharyngealized-->
<!ENTITY IPA429 SDATA "[IPA429 ]"
--IPA raising sign, raised-->
<!ENTITY IPA430 SDATA "[IPA430 ]"
--IPA lowering sign, lowered-->
<!ENTITY IPA431 SDATA "[IPA431 ]"
--IPA syllabicity mark, syllabic-->
<!ENTITY IPA432 SDATA "[IPA432 ]"
--IPA subscript arch, non-syllabic-->
<!ENTITY IPA433 SDATA "[IPA433 ]"
--IPA top tie bar, joining tie bar-->
<!ENTITY IPA501 SDATA "[IPA501 ]"
--IPA vertical stroke (superior), primary stress-->
<!ENTITY IPA502 SDATA "[IPA502 ]"
--IPA vertical stroke (inferior), secondary stress-->
<!ENTITY IPA503 SDATA "[IPA503 ]"
--IPA length mark, long-->
<!ENTITY IPA504 SDATA "[IPA504 ]"
--IPA half-length mark, half-long-->
<!ENTITY IPA505 SDATA "[IPA505 ]"
--IPA breve, extra-short-->
<!ENTITY IPA506 SDATA "[IPA506 ]"
--IPA period, syllable break-->
<!ENTITY IPA507 SDATA "[IPA507 ]"
--IPA vertical line, minor (foot) group-->
<!ENTITY IPA508 SDATA "[IPA508 ]"
--IPA double vertical line, major (intonation) group-->
<!ENTITY IPA509 SDATA "[IPA509 ]"
--IPA bottom tie bar, linking (absence of a break)-->
<!ENTITY IPA510 SDATA "[IPA510 ]"
--IPA upward diagonal arrow, global rise-->
<!ENTITY IPA511 SDATA "[IPA511 ]"
--IPA downward diagonal arrow, global fall-->
<!ENTITY IPA512 SDATA "[IPA512 ]"
--IPA double acute accent (over), extra-high tone-->
<!ENTITY IPA513 SDATA "[IPA513 ]"
--IPA acute accent (over), high tone-->
<!ENTITY IPA514 SDATA "[IPA514 ]"
--IPA macron, mid tone-->
<!ENTITY IPA515 SDATA "[IPA515 ]"
--IPA grave accent (over), low tone-->
<!ENTITY IPA516 SDATA "[IPA516 ]"
--IPA double grave accent (over), extra-low tone-->
<!ENTITY IPA517 SDATA "[IPA517 ]"
--IPA down arrow, downstep tone-->
<!ENTITY IPA518 SDATA "[IPA518 ]"
--IPA up arrow, upstep tone-->
<!ENTITY IPA524 SDATA "[IPA524 ]"
--IPA Fall-rise Contour Tone -->
<!ENTITY IPA525 SDATA "[IPA525 ]"
--IPA Rise-fall Contour Tone -->
<!ENTITY IPA526 SDATA "[IPA526 ]"
--IPA Level-rise Contour Tone -->
<!ENTITY IPA527 SDATA "[IPA527 ]"
--IPA Fall-level Contour Tone -->
<!ENTITY IPA528 SDATA "[IPA528 ]"
--IPA Fall-rise-fall Contour Tone -->
--
Regards, Terry

View File

@@ -0,0 +1,13 @@
XCOMM $TOG: Imakefile /main/8 1998/08/10 15:55:36 mgreess $
#define IHaveSubdirs
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CXXDEBUGFLAGS=$(CXXDEBUGFLAGS)'
SUBDIRS=etc C.ISO-8859-1 ja_JP.EUC-JP
LinkFile(C,C.ISO-8859-1)
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
NamedTargetSubdirs(install_buildtools,$(SUBDIRS),\
install_buildtools,,install_buildtools)

View File

@@ -0,0 +1,56 @@
/* $XConsortium: AttributeData.cc /main/2 1996/07/18 16:07:35 drk $ */
/* exported interfaces */
#include "AttributeData.h"
/* imported interfaces */
#include "SGMLName.h"
#include "Token.h"
#include "Dispatch.h"
//-------------------------------------------------------------------------
AttributeData::AttributeData( const Token &t,
int attr_name,
ActionType mode ):BaseData(t, mode)
{
const char *str;
if ( str = attribute_value( t, attr_name ) ) {
data_complete = 1;
ValueBuffer.writeStr( str );
}
else {
data_avail = 0;
}
}
//-------------------------------------------------------------------------
const char *
AttributeData::attribute_value( const Token &t, int attributeName )
{
const AttributeRec *tmp;
int att_type;
tmp = t.LookupAttr( attributeName );
if ( !tmp ) {
return 0;
}
att_type = tmp->getAttrType();
if ( att_type == SGMLName::ENTITY ) {
SGMLDefn *sgml_defn = Dispatch::entity_ref( tmp->getAttrValueString() );
if ( !sgml_defn ) {
throw(Unexpected("no entity declaration for this entity"));
}
/*
* Use the file name
*/
return ( sgml_defn->getFileName() );
}
else if ( att_type == SGMLName::CDATA ||
att_type == SGMLName::TOKEN ){
return ( tmp->getAttrValueString() );
}
}

View File

@@ -0,0 +1,23 @@
/* $XConsortium: AttributeData.h /main/2 1996/07/18 16:36:49 drk $ */
#ifndef __attr_Data__
#define __attr_Data__
#include "BaseDataCollect.h"
class Token;
class AttributeData : public BaseData {
friend class FirstOf;
friend class OL_Data;
friend class Concat;
private:
const char *attribute_value( const Token &t, int attr_name );
protected:
AttributeData( const Token &t, int attr_name, ActionType mode );
};
#endif

View File

@@ -0,0 +1,115 @@
/* $XConsortium: AttributeList.C /main/3 1996/08/21 15:45:57 drk $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <assert.h>
#include "AttributeRec.h"
#include "AttributeList.h"
// Debugging macro
#ifdef DEBUG
#define DBG(level) if ( dbgLevel >= level)
#else
#define DBG(level) if (0)
#endif
static int dbgLevel;
//---------------------------------------------------------
// ValList : Constructor
OL_AttributeList::OL_AttributeList()
{
DBG(10) cerr << "(DEBUG) Invoking OL_AttributeList::OL_AttributeList()\n";
dbgLevel=-1;
char *dbgStr;
head = NULL;
tail = NULL;
dbgStr = getenv("OL_DEBUG");
dbgLevel = ( dbgStr ? atoi(dbgStr):0);
}
//---------------------------------------------------------
// OL_AttributeList::OL_AttributeList
OL_AttributeList::~OL_AttributeList()
{
AttributeRec *pt = head;
while ( pt ) {
AttributeRec *tmp = pt;
pt = pt->next;
delete tmp;
}
}
//---------------------------------------------------------
// OL_AttributeList:lookup
AttributeRec *OL_AttributeList::lookup( int attName ) const
{
DBG(10) cerr << "(DEBUG) Invoking OL_AttributeList::lookup()\n";
DBG(10) cerr << " with attName = " << attName << endl;
AttributeRec *pt = head;
while ( pt ) {
if ( pt->attName == attName ) {
return ( pt );
}
pt = pt->next;
}
return ( NULL );
}
//---------------------------------------------------------
// OL_AttributeList::add
void OL_AttributeList::insert ( AttributeRec *entry )
{
if ( !tail ) {
head = tail = entry;
}
else {
tail->next = entry;
tail = entry;
}
}
//---------------------------------------------------------
const AttributeRec *OL_AttributeList::GetFirstAttr() const
{
return( head );
}
//---------------------------------------------------------
const AttributeRec *
OL_AttributeList::GetNextAttr( const AttributeRec *attRec) const
{
assert( attRec != NULL );
return( attRec->next );
}

View File

@@ -0,0 +1,32 @@
/* $XConsortium: AttributeList.h /main/3 1996/08/21 15:46:01 drk $ */
//---------------------------------------------------------
// AttributeList.h
#ifndef ATT_LIST_HDR
#define ATT_LIST_HDR
#include <stdio.h>
#include "AttributeRec.h"
class OL_AttributeList {
friend class Token;
protected:
AttributeRec *head;
AttributeRec *tail;
AttributeRec *lookup ( int ) const;
void insert(AttributeRec * );
const AttributeRec *GetFirstAttr() const;
const AttributeRec *GetNextAttr( const AttributeRec *) const;
OL_AttributeList();
~OL_AttributeList();
};
#endif

View File

@@ -0,0 +1,65 @@
/* $XConsortium: AttributeRec.cc /main/4 1996/07/18 16:08:22 drk $ */
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <assert.h>
#include "SGMLDefn.h"
#include "SGMLName.h"
#include "AttributeRec.h"
#ifdef FISH_DEBUG
#include <dbug.h>
#endif
//---------------------------------------------------------------------
AttributeRec::AttributeRec( const char *name,
const char *value,
int type )
{
#ifdef FISH_DEBUG
DBUG_PRINT("AttributeRec", ("name = %s\n"
"value = %s\n"
"type = %d", name, value, type));
#endif
next=NULL;
attName = SGMLName::intern( name );
switch(attType = type){
case SGMLName::TOKEN:
case SGMLName::NOTATION:
case SGMLName::ENTITY:
attValue = SGMLName::intern( value );
attValueString = SGMLName::lookup(attValue);
copy = NULL;
#ifdef FISH_DEBUG
DBUG_PRINT("AttributeRec", ("attValue after the intern: %d", attValue));
#endif
break;
case SGMLName::CDATA:
attValue = -1;
attValueString = copy = new char[ strlen(value) + 1 ];
strcpy( copy, value );
break;
default:
abort();
}
}
//---------------------------------------------------------------------
AttributeRec::~AttributeRec()
{
delete copy;
}
//---------------------------------------------------------------------
int
AttributeRec::getAttrName() const
{
return(attName);
}

View File

@@ -0,0 +1,48 @@
/* $XConsortium: AttributeRec.h /main/3 1996/08/21 15:46:05 drk $ */
//----------------------------------------------
// AttributeRec.h
#ifndef ATT_REC_HDR
#define ATT_REC_HDR
#include "SGMLName.h"
class SGMLDefn;
class AttributeRec {
friend class OL_AttributeList;
friend class Token;
private:
int attName;
int attType;
const char *attValueString;
char *copy;
int attValue;
AttributeRec *next;
protected:
AttributeRec( const char * name, const char *value,
int type );
~AttributeRec();
public:
int getAttrName() const;
/* use this for CDATA attributes */
const char *getAttrValueString() const { return(attValueString); }
/* use this for NAME, NOTATION, ENTITY attributes */
int getAttValue() const { return(attValue); }
int getAttrType() const { return(attType); }
int operator== ( AttributeRec & s ) {
return ( attName == s.attName );
}
};
#endif

View File

@@ -0,0 +1,111 @@
/* $XConsortium: AttributeStore.C /main/3 1996/08/21 15:46:08 drk $ */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include "List.h"
#include "AttributeRec.h"
#include "AttributeStore.h"
#include "HashBucketEntry.h"
// Debugging macro
#ifdef DEBUG
#define DBG(level) if ( dbgLevel >= level)
#else
#define DBG(level) if (0)
#endif
//---------------------------------------------------------
// AttributeStore : Constructor
AttributeStore::AttributeStore( int sz ):NumBuckets(sz)
{
char *dbgStr;
dbgStr = getenv("OL_DEBUG");
dbgLevel = ( dbgStr ? atoi(dbgStr):0);
HashTable = new HashBucketEntry * [ NumBuckets ];
if ( !HashTable ) {
cerr << "(ERROR) Unable to allocate memory for HashTable\n";
exit(1);
}
for ( int i=0; i < sz; i++) {
HashTable[i] = NULL;
}
}
//---------------------------------------------------------
// AttributeStore : Destructor
AttributeStore::~AttributeStore()
{
for ( int i=0; i < NumBuckets; i++ ) {
delete HashTable[i];
}
}
//---------------------------------------------------------
// AttributeStore::hash()
int AttributeStore::hash( char *HashKeyStr )
{
DBG(10) cerr << "(DEBUG) Invoking hash function with HashKeyStr = "
<< HashKeyStr << endl;
int sum=0;
// This is a simple hash function
for ( char *ptr=HashKeyStr; *ptr; ptr++ ) {
sum += *ptr;
}
sum = sum % NumBuckets;
DBG(10) cerr << "(DEBUG) returning value for hash function = "
<< sum << endl;
return ( sum );
}
//---------------------------------------------------------
// AttributeStore::lookup
char *AttributeStore::lookup( Token *ThisToken, char *aName )
{
int HashValue;
AttributeRec *aRecPtr;
HashValue=hash( aName );
aRecPtr = HashTable[ HashValue ]->lookup( aName );
return ( aRecPtr->GetAttributeValue( ThisToken ) );
}
//---------------------------------------------------------
// AttributeStore::add
int AttributeStore::insert ( AttributeRec *att )
{
int HashValue;
HashBucketEntry *BucketEntry;
HashValue = hash ( att->name );
BucketEntry = HashTable [ HashValue ];
if ( BucketEntry->lookup ( att->name ) ) {
return(0);
}
else {
BucketEntry->insert( att );
return(1);
}
}

View File

@@ -0,0 +1,34 @@
/* $XConsortium: AttributeStore.h /main/2 1996/07/18 16:38:25 drk $ */
//---------------------------------------------------------
// AttributeSore.h
#ifndef ATT_STORE
#define ATT_STORE
#include "AttributeRec.h"
class AttributeStore {
private:
AttributeRec *head;
AttributeRec *current;
public:
char *lookup ( char * );
int add ( AttributeRec * );
AttributeRec *getNext() {
AttributeRec *ptr;
if ( current ) {
ptr = current;
current = current->next;
return (ptr );
}
else {
return ( NULL );
}
}
AttributeStore();
~AttributeStore();
};
#endif

View File

@@ -0,0 +1,242 @@
/* $XConsortium: AusText.C /main/3 1996/09/10 16:04:23 cde-hal $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
/* imported interfaces */
#include "OL-Data.h"
#include "Task.h"
#include "FlexBuffer.h"
#include "Token.h"
#include "OLAF.h"
#include "BookCaseDB.h"
#include "BookTasks.h"
#include "NodeData.h"
#include "NodeTask.h"
#include "GraphicsTask.h"
#include "BookTasks.h"
#include "Dispatch.h"
#include "SGMLName.h"
#include "DataRepository.h"
#include "AusTextStorage.h"
/* exported interfaces */
#include "AusText.h"
const unsigned char WORD_SEP = ' ';
// charater strings
const int OLIAS_SCOPE_TITLE = OLAF::Title;
const int OLIAS_SCOPE_EXAMPLE = OLAF::Example;
const int OLIAS_SCOPE_INDEX = OLAF::Index;
const int OLIAS_SCOPE_TABLE = OLAF::Table;
const int OLIAS_SCOPE_GRAPHIC = OLAF::Graphic;
//-----------------------------------------------------------------------
AusText::AusText(NodeData *f_node, const Token &t):SearchEngine(f_node, t)
{
store = new DataRepository;
f_search_store = NULL;
// NOTE: We need to activate default zone here because AusText::markup
// is not being called for the top element in the section.
// Do not forget to deactivate it on the other end!
store->ActivateZone ( DataRepository::Default, t.level() );
}
//-----------------------------------------------------------------------
AusText::~AusText()
{
store->deActivateZone ( f_base );
if ( store ) { delete store; }
if ( f_search_store ) { delete f_search_store; }
}
//-----------------------------------------------------------------------
void
AusText::write_start_tag ( const Token &t)
{
const AttributeRec *a;
int level = t.level();
if ( a = t.LookupAttr( OLAF::OL_scope ) ) {
switch ( a->getAttValue() ) {
case OLIAS_SCOPE_EXAMPLE :
store->ActivateZone( DataRepository::Example, level );
break;
case OLIAS_SCOPE_GRAPHIC :
store->ActivateZone( DataRepository::Graphic, level );
break;
case OLIAS_SCOPE_INDEX :
store->ActivateZone( DataRepository::Index, level );
break;
case OLIAS_SCOPE_TABLE :
store->ActivateZone( DataRepository::Table, level );
break;
case OLIAS_SCOPE_TITLE :
store->ActivateZone( DataRepository::Head, level );
break;
default : throw(Unexpected("Not a valid zone"));
}
}
#if 0
else {
store->ActivateZone ( DataRepository::Default, level );
}
#endif
store->put( WORD_SEP );
}
//------------------------------------------------------------------------
void
AusText::write_end_tag( const Token & t)
{
store->deActivateZone( t.level() );
store->put( WORD_SEP );
}
//------------------------------------------------------------------------
void
AusText::write_terms( FlexBuffer *termsbuf )
{
int bufsize = termsbuf->GetSize();
const char *buffer = termsbuf->GetBuffer();
store->write( buffer, bufsize );
termsBuffer = termsbuf;
}
//------------------------------------------------------------------------
void
AusText::write_buffer()
{
BookCaseTask *f_bc = f_parent->node()->book()->bookcase();
const char *BookCaseName = f_bc->bookcasename();
const char *pathname = f_bc->database()->path();
f_search_store = new AusTextStore( pathname, BookCaseName );
assert(f_search_store != NULL);
const char *book_short_title = f_parent->node()->book()->book_short_title();
const char *book_id = f_parent->node()->book()->locator();
const char *nodelocator = f_parent->node()->locator();
const char *node_title = f_parent->node()->title();
f_search_store->insert(book_short_title,
book_id,
nodelocator,
node_title,
store
);
}
//------------------------------------------------------------------------
void
AusText::markup( const Token & t )
{
if ( f_base > 0 ) {
ComplexTask::markup(t);
if ( t.type() == START ) {
if ( Dispatch::OutsideIgnoreScope() ) {
if ( t.LookupAttr( OLAF::OL_Graphic ) ) {
CollectObject = t.level();
f_graphics = new GraphicsTask ( this, t );
assert ( f_graphics != NULL );
addSubTask( f_graphics );
}
#if TABLES
else if( t.LookupAttr( OLAF::OL_Table ) ) {
CollectObject = t.level();
addSubTask(new SearchableTableTask(this, t));
}
#endif
write_start_tag ( t );
}
}
else if ( t.type() == END ) {
if ( Dispatch::OutsideIgnoreScope() ) {
if ( CollectObject >= 0 ) {
if ( CollectObject == t.level() ) {
CollectObject = -1;
if ( f_graphics ) {
if ( f_graphics->HasSearchTerms() ) {
hasTerms = 1;
FlexBuffer *buf = (FlexBuffer *)f_graphics->GetTerms();
write_terms ( buf );
}
KILLSUBTASK( f_graphics );
}
}
}
write_end_tag( t );
if ( f_base == t.level() ) {
f_base = -1;
write_buffer();
}
} /* OutsideIgnoreScope */
} /* if ( t.type() == END ) */
} /* if ( f_base > 0 ) */
}
//---------------------------------------------------------------------
void
AusText::data ( const char *str, size_t sz )
{
if ( f_base > 0 ) {
ComplexTask::data( str, sz );
if ( Dispatch::OutsideIgnoreScope() ) {
/* @@ for tables, this isn't quite right... */
if ( CollectObject < 0 ) {
if ( sz == 0 ) { return; }
store->write( str, sz );
}
}
}
}

View File

@@ -0,0 +1,36 @@
/* $XConsortium: AusText.h /main/2 1996/07/18 16:38:54 drk $ */
// AusText.h - Specific implementation for AusText search engine
#ifndef AUSTEXT_HEADER
#define AUSTEXT_HEADER
#include "SearchEng.h"
class Token;
class AusTextStore;
class NodeData;
class DataRepository;
class AusText : public SearchEngine {
private:
DataRepository *store;
AusTextStore *f_search_store;
protected:
void write_start_tag ( const Token &);
void write_end_tag ( const Token & );
void write_terms ( FlexBuffer *termsbuf );
void write_buffer();
public:
void markup( const Token & );
void data( const char *, size_t );
public:
AusText(NodeData *, const Token &);
~AusText();
};
#endif

View File

@@ -0,0 +1,343 @@
/* $XConsortium: AusTextStorage.cc /main/5 1996/07/23 18:08:29 cde-hal $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
#include <stdio.h>
#include <stddef.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <assert.h>
#include <stream.h>
/* imported interfaces */
#include <misc/unique_id.h>
#include "FlexBuffer.h"
#include "Task.h"
#include "DataBase.h"
#include "DataRepository.h"
/* exported interfaces */
#include "AusTextStorage.h"
#ifdef DTSR_USE_CNTR_L
const char CNTR_L = '\014'; /* This is for ascii system only */
#endif
// If NodeParser ever gets setup to run on all bookcases at one time, we
// will need a reset() function for this member.
unsigned long AusTextStore::f_recordcount = 0;
#ifdef DTSR_LIKES_FGETS
const int LINE_SIZE = 80; /* this is the line size allowed for data in
* the *.fzk file
*/
/* Most of the non-alphanumeric character in ascii code set */
const char *DELIMITER_SET = "\t\n !@#$%^&*()_-=+\\|~[]{};:,.<>/?";
enum EucCodeSet {
CodeSetInv = -1,
CodeSet0 = 0,
CodeSet1 = 1,
CodeSet2 = 2,
CodeSet3 = 3
};
/*
* charcspn determines if ch is found in the set
* returns 1 if so, 0 if otherwise
*/
/*
* @@ charset is expensive, alternative approach is to use a
* static array
* static char char_tab[] = { 0, 0, 0, 1,...... }
* where 1 indicates the character is in the delimiter character set
* however, this might not be portable for character set other than
* ascii , so this has to be done carefully
* If the format of the fzk is changed, all this will no longer be
* required. So, I am not going to do anything at this point
*/
//-----------------------------------------------------------------
static int charset ( const char ch, const char *set)
{
for ( const char *ptr = set;
*ptr != '\0';
ptr++ ) {
if ( ch == *ptr ) return 1;
}
return 0;
}
/*
* getline returns the no. of bytes that should be read as a line.
* Normally it should read line_size, but if there is a token that
* spans 2 lines, getline need to determine the line size such that
* at the end of the line, no token should be spanning the next line.
*/
/*
* start_ptr is the start of the buffer and end_ptr is the end of the buffer
* it is similar to fread except that end_ptr is supplied as the bounding
* condition as opposed to the EOF in fread. Besides, no actual character
* is read , only the number of characters that should be read as a line.
*/
//--------------------------------------------------------------------------
static unsigned int DefaultGetLine ( const char *start_ptr,
const char *end_ptr,
int line_size )
{
if ( start_ptr > end_ptr ) { return 0; }
if ( start_ptr + line_size - 1 <= end_ptr ) { // not @ the end yet
/*
* FIrst see if there is a token that spans multiple lines
*/
const char *ptr = start_ptr + line_size - 1;
if ( ptr == end_ptr ) { return line_size; }
if ( charset( *(ptr+1), DELIMITER_SET ) || charset ( *ptr, DELIMITER_SET ) ) {
return ( line_size );
}
/* That means found a token that spans 2 lines */
/* So now loop back until *ptr is not in DELIMITER_SET */
const char *new_end_ptr;
for ( new_end_ptr = ptr;
new_end_ptr > start_ptr && !charset( *new_end_ptr , DELIMITER_SET );
new_end_ptr-- );
return( new_end_ptr - start_ptr + 1 );
}
else {
// last chunk of line
return ( end_ptr - start_ptr + 1 );
}
}
inline EucCodeSet JpEucCodeSet(const unsigned char* text)
{
EucCodeSet codeset;
if (text == NULL)
codeset = CodeSetInv;
else if (*text < 0x80)
codeset = CodeSet0;
else if (*text == 0x8E)
codeset = CodeSet2;
else if (*text == 0x8F)
codeset = CodeSet3;
else {
assert( *text > 0xA0 && *text < 0xFF);
codeset = CodeSet1;
}
return codeset;
}
static unsigned int JpGetLine ( const char *start_ptr,
const char *end_ptr,
int line_size )
{
if (start_ptr > end_ptr)
return 0;
if (end_ptr - start_ptr + 1 <= line_size)
return (end_ptr - start_ptr + 1);
// reference limit
const char* limit = start_ptr + line_size;
EucCodeSet codeset = JpEucCodeSet((const unsigned char*)start_ptr);
int len;
const char* p;
for (p = start_ptr; p < limit; p += len) {
if (JpEucCodeSet((const unsigned char*)p) != codeset)
break;
if (codeset == CodeSet0)
len = 1;
else if ((codeset == CodeSet1) || (codeset == CodeSet2))
len = 2;
else if (codeset == CodeSet3)
len = 3;
else
len = 0;
if ((len == 0) || (p + len - 1 > end_ptr))
break;
}
return (p - start_ptr);
}
#endif // DTSR_LIKES_FGETS
//-----------------------------------------------------------------------
static int isdir(const char* filename)
{
int ret = 0;
struct stat sb;
if(stat(filename, &sb) == 0){
if(S_ISDIR(sb.st_mode)){
ret = 1;
}
}
return ret;
}
//-----------------------------------------------------------------------
static void makedir(const char *path) /* throw(PosixError) */
{
if(mkdir((char*)path, 0775) != 0){
throw(PosixError(errno, path));
}
}
//-----------------------------------------------------------------------
AusTextStore::AusTextStore( const char *path, const char *name )
{
if ( !isdir(path) ) {
makedir(path);
}
austext_path = new char [ strlen(path) + 1 + strlen("dtsearch") + 1 ];
/*
* throw(ResourceExhausted)
*
*/
assert ( austext_path != NULL );
sprintf( austext_path, "%s/dtsearch", path );
if ( !isdir(austext_path) ) {
makedir(austext_path);
}
char *fzk = form("%s/%s.fzk", austext_path, name );
/* Use append instead because this fzk file is going to be appended
* all the time
*/
afp = fopen ( fzk, "a" );
if ( !afp ) {
throw(PosixError(errno, form("unable to open fzk file %s\n", fzk) ) );
}
}
//-----------------------------------------------------------------------
void
AusTextStore::insert( const char *BookShortTitle,
const char *BookID,
const char *SectionID,
const char *SectionTitle,
DataRepository *store
)
{
/* write the abstract and record stuff in the fzk file */
if ( afp ) {
f_recordcount++;
/* Record type ie for all the zone content */
FlexBuffer **table = store->tabbuf();
for ( int pos=store->Default;
pos < store->Total;
pos++ ) {
if ( table[pos] ) {
if ( table[pos]->GetSize() > 0 ) {
fprintf(afp, " 0,2\n");
/* abstract includes SectionID\tBookShortTitle\tSectionTitle */
fprintf(afp, "ABSTRACT: %s\t%s\t%s\n", SectionID,
BookShortTitle,
SectionTitle );
// first the record type
// The following was unique, but there is a limit to the size of
// the key, so let's just use a simple counter.
// fprintf(afp, "%s%s%s\n", store->get_zone_name(pos), BookID, SectionID);
fprintf(afp, "%s%d\n", store->get_zone_name(pos), f_recordcount);
fprintf(afp, "0/0/0~0:0\n"); // null date
// Now the actual buffer
const char *start_ptr = table[pos]->GetBuffer();
const char *end_ptr = start_ptr + table[pos]->GetSize() - 1;
#ifdef DTSR_LIKES_FGETS
unsigned int (*getline)(const char *, const char *, int);
const char* lang = getenv("LANG");
if (lang && !strncmp(lang, "ja", strlen("ja")))
getline = JpGetLine;
else
getline = DefaultGetLine;
int num_byte;
while ( num_byte = getline(start_ptr, end_ptr, LINE_SIZE) ) {
if ( !fwrite(start_ptr, num_byte, 1, afp ) )
{
throw(PosixError(errno, "unable to write to fzk file\n" ) );
}
fputc('\n', afp );
start_ptr += num_byte;
}
// for current section and book level scopes, place the book and
// section ids into the indexed data.
fprintf(afp, "\n%s\n%s\n", BookID, SectionID);
#else
char *ptr = (char*)start_ptr;
for (; ptr <= end_ptr; ptr++) {
if (*ptr == '\n')
*ptr = ' ';
}
if (fwrite(start_ptr, table[pos]->GetSize(), 1, afp) == 0)
throw(PosixError(errno, "unable to write to fzk file\n"));
// for current section and book level scopes, place the book and
// section ids into the indexed data.
fprintf(afp, "\t%s\t%s", BookID, SectionID);
#endif
#ifdef DTSR_USE_CNTR_L
// Then the ^L character at the end
fprintf(afp, "\n%c\n", CNTR_L );
#else
fprintf(afp, "\n");
#endif
}
}
}
}
}
//-----------------------------------------------------------------------
AusTextStore::~AusTextStore()
{
if ( afp ) { fclose(afp); }
if ( austext_path ) { delete [] austext_path; }
}

View File

@@ -0,0 +1,37 @@
/* $XConsortium: AusTextStorage.h /main/3 1996/07/18 16:39:21 drk $ */
#ifndef AUSTEXT_STOR_HDR
#define AUSTEXT_STOR_HDR
class DataRepository;
class AusTextStore {
private:
FILE *afp;
char *austext_path;
static unsigned long f_recordcount;
public:
AusTextStore( const char *BookCasePath, const char *BookCaseName );
/*
* insert ( "This Book Case Name", 2,
* "XmyLcfhalklkoop",
* "This is the text that the indexing machine will see",
* 51 );
*
*/
void insert( const char *BookShortTitle,
const char *BookID,
const char *SectionID,
const char *SectionTitle,
DataRepository *store
);
~AusTextStore();
};
#endif

View File

@@ -0,0 +1,28 @@
/* $XConsortium: BTCollectable.cc /main/2 1996/07/18 16:09:37 drk $ */
#include <string.h>
// exported interfaces
#include "BTCollectable.h"
//--------------------------------------------------------------------
BTCollectable::BTCollectable():f_name(0), line_num(0), value(0)
{
}
//--------------------------------------------------------------------
BTCollectable::BTCollectable(
const char *filename, int line_no, const char *val
)
{
f_name = strdup( filename );
line_num = line_no;
value = strdup( val );
}
//--------------------------------------------------------------------
BTCollectable::~BTCollectable()
{
delete f_name;
delete value;
}

View File

@@ -0,0 +1,26 @@
/* $XConsortium: BTCollectable.h /main/2 1996/07/18 16:39:46 drk $ */
#ifndef BT_COLLECT
#define BT_COLLECT
class BTCollectable
{
public:
BTCollectable();
BTCollectable( const char *filename, int line_no, const char *val=NULL );
~BTCollectable();
char *filename() { return(f_name); }
int linenum() { return(line_num); }
char *get_value() { return( value ); }
private:
char *f_name;
int line_num;
char *value;
};
#endif

View File

@@ -0,0 +1,42 @@
/* $XConsortium: BaseDataCollect.h /main/2 1996/07/18 16:40:12 drk $ */
#ifndef __BaseDataCollect_h
#define __BaseDataCollect_h
#include "Task.h"
#include "Token.h"
#include "FlexBuffer.h"
enum ActionType {
DEFAULT_ACTION=0,
IGNORE_ON=1,
REMOVE_SPACES=2,
GENERATE_ID=4
};
class BaseData : public ComplexTask {
protected:
int f_base;
FlexBuffer ValueBuffer;
int data_avail;
int data_complete;
int ignore_status;
protected:
BaseData( const Token &t, ActionType istat) {
f_base = t.level();
data_avail = 1;
data_complete = 0;
ignore_status = istat & IGNORE_ON;
}
public:
int ContentIsEmpty() { return ( ValueBuffer.GetSize() == 0 ); }
const char *content() { return( ValueBuffer.GetBuffer() ); }
int content_size() { return( ValueBuffer.GetSize() ); }
int DataWillBeAvailable() { return( data_avail ); }
int DataIsComplete() { return( data_complete ); }
};
#endif

View File

@@ -0,0 +1,81 @@
/* $XConsortium: BookCaseDB.C /main/4 1996/10/26 18:17:13 cde-hal $ */
#include "BookCaseDB.h"
#include <assert.h>
/*--------------------------------------------------------------------
*
* The BookCase is represented as a database (a directory) containing
* several tables (files).
*
* As the tables are shared by many tasks within the bookcase task,
* they are accessed through the bookcase, and created here...
*
*--------------------------------------------------------------------*/
/* This will be placed in a global .h file eventually */
#define LINK_CODE 1333
BookCaseDB::BookCaseDB(const char *dir)
: DB(dir)
{
for(int i = 0; i < TableQty; i++){
f_tables[i] = NULL;
}
}
//--------------------------------------------------------------------
struct Schema{
int id;
const char *name;
int code;
int cols;
};
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
//--------------------------------------------------------------------
DBTable*
BookCaseDB::table(int tid, int a)
{
static Schema schema[] = {
{ BookMeta, "BookMeta", DOC_CODE, 6 },
{ NodeMeta, "NodeMeta", NODE_CODE, 8 },
{ NodeSGML, "NodeSGML", SGML_CONTENT_CODE, 3 },
{ Link, "Link", LINK_CODE, 3 },
{ Locator, "Locator", LOCATOR_CODE, 5 },
{ TOCTree, "ContentsTree", TOC_CODE, 5 },
{ TOCPath, "ContentsPath", DLP_CODE, 4 },
{ Graphics, "Graphics", GRAPHIC_CODE, 7 },
{ StyleSheet, "StyleSheet", NODE_CODE, 3 },
{ XRef, "XRef", XREF_CODE, 4 },
};
assert(tid >= 0 && tid < TableQty);
assert(schema[tid].id == tid); /* just be sure the code doesn't get out
* of sync.
*/
if(!f_tables[tid]){
f_tables[tid] = DB::table(schema[tid].name,
schema[tid].code,
schema[tid].cols,
a);
}
return f_tables[tid];
}
BookCaseDB::~BookCaseDB()
{
for( int i = 0; i < TableQty; i++ ) {
if ( f_tables[i] ) {
delete f_tables[i]; f_tables[i] = 0;
}
}
}

View File

@@ -0,0 +1,32 @@
/* $XConsortium: BookCaseDB.h /main/3 1996/09/23 22:23:30 cde-hal $ -*- c++ -*- */
#ifndef __BookCaseDB_h
#define __BookCaseDB_h
#include "DataBase.h"
class BookCaseDB : public DB{
public:
BookCaseDB(const char *dir);
~BookCaseDB();
/*
* Enumeration of tables...
*/
typedef enum {
BookMeta,
NodeMeta, NodeSGML, Link, Locator,
TOCTree, TOCPath,
Graphics,
StyleSheet,
XRef,
TableQty
}TableID;
DBTable *table(int, int access = DB::CREATE);
DBTable *f_tables[TableQty];
};
#endif /* __BookCaseDB_h */

View File

@@ -0,0 +1,652 @@
/* $XConsortium: BookTasks.cc /main/5 1996/05/29 12:36:58 rcs $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
#include <stream.h>
/* import... */
#include <assert.h>
#include <string.h>
#include "Dispatch.h"
#include "Token.h"
#include "OLAF.h"
#include "NodeTask.h"
#include "TOCTask.h"
#include "BookCaseDB.h"
#include "OL-Data.h"
#include "StringList.h"
#include "StyleTask.h"
/* export... */
#include "BookTasks.h"
#ifdef LICENSE_MANAGEMENT
#include "cryptlib/lterms.h"
#endif
#ifdef FISH_DEBUG
#include "dbug.h" /* ala Fred Fish's dbug package from uunet */
#endif
const int A_FEATURE = OLAF::Feature;
const int A_VEN_CODE = OLAF::VenCode;
const int A_VERSION = OLAF::Version;
const int A_GROUPING = OLAF::Grouping;
const int A_DEMO_TERMS = OLAF::DemoTerms;
const int A_DEFAULT_SECTION = OLAF::DefaultSection;
/***********************************
*
* BookCaseTask
*
***********************************/
BookCaseTask::BookCaseTask(const char *infolib)
{
library = new char[strlen(infolib)+1];
strcpy(library, infolib);
f_base = -1;
bookCaseName = NULL;
bookCaseDesc = NULL;
f_db = NULL;
if ( !Dispatch::RunTocGenOnly() ) {
style = new StyleTaskDB(this);
addSubTask(style);
}
book = new BookTask(this);
addSubTask(book);
f_style = NULL;
}
//--------------------------------------------------------------------
BookCaseDB*
BookCaseTask::database()
{
if(!f_db){
f_db = new BookCaseDB(library);
}
return f_db;
}
//--------------------------------------------------------------------
DBTable *
BookCaseTask::table(int tid)
{
return database()->table(tid);
}
//--------------------------------------------------------------------
const char *
BookCaseTask::bookcasename()
{
if ( !bookCaseName ) {
throw(Unexpected("BookCase name not available yet."));
}
return ( bookCaseName->content() );
}
/*
//--------------------------------------------------------------------
void
BookCaseTask::write_full_text_record( const char *str,
int sz,
const char *nodelocator,
const char *node_title
)
{
const char *BookCaseName = bookcasename();
if ( !f_search_storage ) {
const char *pathname = database()->path();
f_search_storage = new FulcrumStore( pathname , BookCaseName);
assert ( f_search_storage );
}
const int BookNum = book->sequencenum();
const char *BookShortTitle = book->book_short_title();
f_search_storage->insert( BookCaseName,
BookNum,
BookShortTitle,
nodelocator,
node_title,
str,
sz );
}
*/
/*
//--------------------------------------------------------------------
void
BookCaseTask::write_full_text_record(DataRepository *store,
const char *nodelocator,
const char *node_title
)
{
const char *BookCaseName = bookcasename();
if ( !f_search_storage ) {
const char *pathname = database()->path();
f_search_storage = new AusTextStore( pathname, BookCaseName );
assert( f_search_storage );
}
const char *BookShortTitle = book->book_short_title();
f_search_storage->insert( BookShortTitle,
nodelocator,
node_title,
store
);
}
*/
//--------------------------------------------------------------------
void BookCaseTask::markup(const Token &t)
{
ComplexTask::markup(t);
if (t.type() == START){
if(t.olaf() == OLAF::Bookcase){
if(f_base >= 0){
throw(Unexpected("second (illegal) BookCase element found"));
}
f_base = t.level();
}
if(f_base >= 0){
switch(t.olaf()){
case OLAF::BcName:
if(bookCaseName){
throw(Unexpected("second (illegal) bookcase name element found"));
}
bookCaseName = new OL_Data(t, OLAF::OL_data);
addSubTask(bookCaseName);
break;
case OLAF::BcDesc:
if(bookCaseDesc){
throw(Unexpected("second (illegal) bookcase description element found"));
}
bookCaseDesc = new OL_Data(t, OLAF::OL_data);
addSubTask(bookCaseDesc);
break;
}
if(!f_style && t.LookupAttr(OLAF::OL_style)){
OL_Data *tmp_style = new OL_Data(t, OLAF::OL_style);
if ( tmp_style->DataWillBeAvailable() ) {
f_style = tmp_style;
addSubTask(f_style);
}
else {
delete tmp_style;
}
}
}
}
else if(t.type() == END){
if(t.level() == f_base){
const char *name;
const char *desc;
if(bookCaseName){
name = bookCaseName->content();
}else{
throw(Unexpected("No bookcase name element in Bookcase element."));
}
if(bookCaseDesc){
desc = bookCaseDesc->content();
}else{
desc = "";
}
printf("BookCase name: `%s' desc: `%s'\n", name, desc);
}
/* @# warn if no bookcase ever found? */
}
}
const char *
BookCaseTask::styleName()
{
const char *ret;
if ( Dispatch::RunTocGenOnly() ) {
return("");
}
if(!f_style) {
throw(Unexpected ("No style architectural form defined for bookcase."));
}
ret = f_style->content();
#ifdef FISH_DEBUG
DBUG_PRINT("Style", ("bookcase style is: %s", ret));
#endif
if(!style->exist(ret)){
#ifdef FISH_DEBUG
DBUG_PRINT("Error", ("style `%s' not found", ret));
#endif
Token::signalError(Token::User, Token::Fatal, NULL, 0,
"An undeclared style sheet name `%s' was found in the bookcase specification.\n", ret);
}
return ret;
}
/*****************
*
* BookTask
*
*****************/
BookTask::BookTask(BookCaseTask *bc)
{
f_base = 0;
f_seq_no = 1;
f_toc = NULL;
f_bookcase = bc;
tocLocator = NULL;
shortTitle = NULL;
title = NULL;
tabName = NULL;
tabLocator = NULL;
tabNames = new StringList();
tabLocators = new StringList();
tabLines = new StringList();
tabFiles = new StringList();
f_node = new NodeTask(this, NULL);
addSubTask(f_node);
f_style = NULL;
e_string = NULL;
e_len = 0;
}
BookTask::~BookTask()
{
KILLSUBTASK(f_node);
delete tabLocators;
KILLSUBTASK(title);
KILLSUBTASK(shortTitle);
KILLSUBTASK(tabName);
KILLSUBTASK(tabLocator);
}
//------------------------------------------------------------------
void
BookTask::encrypt( const Token &t )
{
/*
* Grab all the strings that are required by the encryption API
*/
char buf[ 256 ];
#ifdef LICENSE_MANAGEMENT
LTerms lt;
char *a_val;
for ( const AttributeRec *arec = t.GetFirstAttr();
arec;
arec = t.GetNextAttr( arec ) ) {
a_val = ( char * )arec->getAttrValueString();
#ifdef FISH_DEBUG
DBUG_PRINT("BookTasks", ("access attribute value %s", a_val) );
#endif
switch ( arec->getAttrName() ) {
case A_FEATURE :
if ( lt.add_feature( a_val ) != 0 ) {
throw(Unexpected("invalid access feature syntax"));
}
break;
case A_VEN_CODE :
if ( lt.add_ven_code( a_val ) != 0 ) {
throw(Unexpected("invalid access ven_code syntax") );
}
break;
case A_VERSION :
if ( lt.add_version( a_val ) != 0 ) {
throw(Unexpected("invalid access version syntax"));
}
break;
case A_GROUPING :
if ( lt.add_grouping( a_val ) != 0 ) {
throw(Unexpected("invalid access grouping syntax"));
}
break;
case A_DEMO_TERMS :
if ( lt.add_demo_terms( a_val ) != 0 ) {
throw(Unexpected("invalid access demo_terms syntax"));
}
break;
case A_DEFAULT_SECTION :
if ( lt.add_noaccess_locator( a_val ) != 0 ) {
throw(Unexpected("invalid default section ID syntax"));
}
break;
}
}
if ( lt.pack( buf, 256 ) ) {
throw(Unexpected("Unable to pack the string for encryption"));
}
int len = 256;
if ( e_terms( &lt, buf, len ) ) {
throw(Unexpected("Unable to encrypt string for access control"));
}
#else
int len = 256;
(void) memset(buf, '\0', len);
#endif
e_string = (char *)malloc(len);
(void)memcpy(e_string, buf, len); // Cannot use strdup - embedded NULs
e_len = len;
}
//----------------------------------------------------------------------
void BookTask::markup(const Token &t)
{
ComplexTask::markup(t);
if(t.type() == START){
if(t.olaf() == OLAF::Book){
if(f_base > 0){
throw(Unexpected("illegal nested BOOK architectural form"));
}
f_base = t.level();
}
if(f_base >= 0){
switch(t.olaf()){
case OLAF::BkSTitle:
if(shortTitle){
throw(Unexpected("BkSTitle already found"));
}
shortTitle = new OL_Data(t, OLAF::OL_data);
addSubTask(shortTitle);
break;
case OLAF::BkTitle:
if(title){
throw(Unexpected("BkTitle already found"));
}
title = new OL_Data(t, OLAF::OL_data);
addSubTask(title);
break;
case OLAF::Tab:
if(tabName){
tabNames->append(tabName->content());
tabLocators->append(tabLocator->content());
tabLines->append( form("%d", tabLocator->line_no()) );
tabFiles->append( tabLocator->filename() );
KILLSUBTASK(tabName);
KILLSUBTASK(tabLocator);
}
tabName = new OL_Data(t, OLAF::OL_data);
tabLocator = new OL_Data(t, OLAF::OL_idref, REMOVE_SPACES);
addSubTask(tabName);
addSubTask(tabLocator);
break;
case OLAF::BookAccess:
encrypt( t );
break;
}
if ( t.LookupAttr( OLAF::OL_ToC ) ) {
if ( f_toc ) {
throw(Unexpected("An illegal TOC was found.\n"));
}
f_toc = new TOCTask(t, this);
addSubTask(f_toc);
}
if(f_base >= 0 && !f_style && t.LookupAttr(OLAF::OL_style)){
OL_Data *tmp_style = new OL_Data(t, OLAF::OL_style);
if ( tmp_style->DataWillBeAvailable() ) {
f_style = tmp_style;
addSubTask(f_style);
}
else {
delete tmp_style;
}
}
}
}
else if(t.type() == END){
if(t.level() == f_base){ /* found end of book... write out CCF data */
if ( !Dispatch::RunTocGenOnly() ) {
write_record();
}
reset();
}
}
}
//----------------------------------------------------------------------
void BookTask::write_record(void)
{
StringList tablines;
/* finish any pending tab */
if(tabName){
tabNames->append(tabName->content());
tabLocators->append(tabLocator->content());
tabLines->append( form("%d", tabLocator->line_no()) );
tabFiles->append(tabLocator->filename());
}
for(int i = 0; i < tabNames->qty(); i++){
const char *name = tabNames->item(i);
const char *loc = tabLocators->item(i);
const char *line = tabLines->item(i);
const char *file = tabFiles->item(i);
char *p = new char [strlen(name) + 1 + strlen(loc) + 1
+ strlen(line) + 1 + strlen(file) + 1];
sprintf(p, "%s\t%s\t%s\t%s", name, loc, line, file);
tablines.append(p);
delete p;
}
const char *bk_title;
if(title){
bk_title = title->content();
}else{
throw(Unexpected("Required Title form missing from Book"));
}
const char *bk_stitle = bk_title;
if ( shortTitle ) {
bk_stitle = shortTitle->content();
}
DBTable *tbl = bookcase()->table(BookCaseDB::BookMeta);
tbl->insert(STRING_CODE, locator(),
STRING_CODE, bk_stitle,
STRING_CODE, bk_title,
INTEGER_CODE, f_seq_no,
SHORT_LIST_CODE, tablines.qty(), STRING_CODE, tablines.array(),
-STRING_CODE, e_string , e_len,
NULL);
#ifdef FISH_DEBUG
DBUG_PRINT("Book", ("Book... title: `%s' short title: `%s'\n",
bk_title,
bk_stitle));
#endif
}
void BookTask::reset()
{
KILLSUBTASK(shortTitle);
KILLSUBTASK(title);
KILLSUBTASK(f_toc);
KILLSUBTASK(f_style);
delete tabNames; tabNames = new StringList();
delete tabLocators; tabLocators = new StringList();
tabName = tabLocator = NULL;
delete tabLines; tabLines = new StringList();
delete tabFiles; tabFiles = new StringList();
delete tocLocator; tocLocator = NULL;
f_seq_no ++;
f_base = 0;
}
const char *BookTask::locator()
{
if ( Dispatch::RunTocGenOnly() ) {
return ("");
}
if(!tocLocator){
/* this is the first time anybody asked for the book's locator...
* it must be the TOC node asking for the book locator, which
* is the TOC node locator!
*/
const char *l = f_node->locator();
tocLocator = new char[strlen(l) + 1];
strcpy(tocLocator, l);
}
return tocLocator;
}
const char *
BookTask::styleName()
{
if ( Dispatch::RunTocGenOnly() ) {
return("");
}
const char *ret;
if(f_style){
ret = f_style->content();
if(f_bookcase->styleTask()->exist(ret)){
#ifdef FISH_DEBUG
DBUG_PRINT("Style", ("book style is: %s", ret));
#endif
}else{
Token::signalError(Token::User, Token::Continuable, NULL, 0,
"no such style `%s'\n", ret);
ret = f_bookcase->styleName();
}
}else{
ret = f_bookcase->styleName();
}
return ret;
}
//--------------------------------------------------------------
const char *
BookTask::book_title()
{
if ( !title ) {
throw(Unexpected("Book title is not available yet"));
}
return( title->content() );
}
//--------------------------------------------------------------
const char *
BookTask::book_short_title()
{
if ( !shortTitle ) {
return( book_title() );
}
return( shortTitle->content() );
}

View File

@@ -0,0 +1,113 @@
/* $XConsortium: BookTasks.h /main/3 1996/07/18 15:15:19 drk $ */
#ifndef __BookTasks_h
#define __BookTasks_h
#include "Task.h"
class BookTask;
class NodeTask;
class StyleTask;
class OL_Data;
class DBTable;
class DB;
class SearchStorage;
class BookCaseDB;
class BookCaseTask : public ComplexTask{
public:
BookCaseTask(const char* infolib);
void markup(const Token&);
BookCaseDB *database(); /* throw(Unexpected) */
DBTable *table(int); /* throw(Unexpected) */
const char *bookcasename(); /* throw(Unexpected) */
void write_full_text_record( const char *str,
int sz,
const char *nodelocator,
const char *node_title
);
const char *styleName(); /* throw(Unexpected) */
StyleTask *styleTask() { return style; };
private:
char *library;
int f_base;
BookCaseDB *f_db;
StyleTask *style;
BookTask *book;
SearchStorage *f_search_storage;
OL_Data *bookCaseName;
OL_Data *bookCaseDesc;
OL_Data *f_style;
};
class BookTask : public ComplexTask{
public:
BookTask(BookCaseTask *);
~BookTask();
void reset(void);
void markup(const Token&);
BookCaseTask *bookcase() { return f_bookcase; };
int sequencenum() const { return f_seq_no; }
const char *locator(); /* Locator for this book, i.e.
* for the TOC node for this book
*/
const char *styleName(); /* throw(Unexpected) */
const char *book_short_title(); /* throw(Unexpected) */
const char *book_title(); /* throw(Unexpected) */
protected:
void write_record(void);
private:
int f_base; /* tag nesting level of <BOOK> elt */
int f_seq_no; /* fulltext index document sequence number */
BookCaseTask *f_bookcase; /* 'parent' bookcase object */
OL_Data *shortTitle; /* short title collection task */
OL_Data *title; /* title collection task */
char *tocLocator; /* locator of TOC node */
OL_Data *tabName;
OL_Data *tabLocator;
class StringList *tabNames;
class StringList *tabLocators;
class StringList *tabLines;
class StringList *tabFiles;
NodeTask *f_node;
Task *f_toc;
OL_Data *f_style;
void encrypt( const Token & );
char *e_string; /*
* The encrypted string that is associated
* with the access permission for this book
*/
int e_len;
};
#endif /* __BookTasks_h */

View File

@@ -0,0 +1,63 @@
/* $XConsortium: ConcatTask.C /main/3 1996/08/21 15:46:12 drk $ */
/* exported interfaces */
#include "ConcatTask.h"
/* imported interfaces */
#include "Expression.h"
#include "ExprList.h"
#include "Token.h"
#include "AttributeData.h"
#include "Content.h"
#include "FirstOf.h"
#include "GenericId.h"
#include "Literal.h"
Concat::Concat( const Token &t,
ExprList *elist,
ActionType mode):OL_Data(t, mode)
{
for ( OL_Expression *eptr = elist->first();
eptr;
eptr = elist->next(eptr) ) {
switch ( eptr->type() ) {
case REFERENCE:
addSubTask( new AttributeData( t, eptr->name(), mode ));
break;
case CONTENT:
addSubTask( new Content(t,mode) );
break;
case CONCAT:
addSubTask( new Concat( t,
(ExprList *)eptr->data_list(),
mode) );
break;
case FIRSTOF:
addSubTask( new FirstOf( t,
(ExprList *)eptr->data_list(),
mode) );
break;
case GENERIC_ID:
addSubTask( new GenericId( t,
eptr->name(),
mode) );
break;
case LITERAL:
addSubTask( new Literal( t,
( const char *)eptr->data_list(),
mode) );
break;
default:
abort();
}
}
}

View File

@@ -0,0 +1,23 @@
/* $XConsortium: ConcatTask.h /main/2 1996/07/18 16:40:43 drk $ */
#ifndef __Concat_h__
#define __Concat_h__
#include "Task.h"
#include "OL-Data.h"
class ExprList;
class Token;
class Concat : public OL_Data {
friend class FirstOf;
friend class OL_Data;
protected:
Concat( const Token &t, ExprList *elist, ActionType mode );
void markup( const Token &t ) { OL_Data::markup(t); }
void data( const char *str, size_t sz ) { OL_Data::data(str, sz); }
};
#endif

View File

@@ -0,0 +1,55 @@
/* $XConsortium: Content.cc /main/2 1996/07/18 16:10:34 drk $ */
/* exported interfaces */
#include "Content.h"
/* imported interfaces */
#include "Dispatch.h"
#include "OL-Data.h"
#include "Token.h"
#include "SGMLName.h"
void
Content::markup( const Token &t )
{
if ( ignore_status && !Dispatch::OutsideIgnoreScope() ) {
return;
}
if ( f_base > 0 ) {
if ( t.type() == END ) {
if ( f_base == t.level() ) {
f_base = -1;
data_complete=1;
}
}
else if ( t.type() == EXTERNAL_ENTITY ) {
data_avail = 1;
ValueBuffer.writeStr( t.getEntityFileName() );
}
else if ( t.type() == INTERNAL_ENTITY ) {
data_avail = 1;
ValueBuffer.put( '&' );
ValueBuffer.writeStr( SGMLName::lookup( t.getEntityName() ) );
ValueBuffer.put( ';' );
}
}
}
void
Content::data( const char *str, size_t sz )
{
if ( ignore_status && !Dispatch::OutsideIgnoreScope() ) {
return;
}
if ( f_base > 0 ) {
ValueBuffer.write ( str, sz );
}
}

View File

@@ -0,0 +1,24 @@
/* $XConsortium: Content.h /main/2 1996/07/18 16:41:08 drk $ */
#ifndef __Cont_h__
#define __Cont_h__
#include "BaseDataCollect.h"
class Token;
class Content : public BaseData {
friend class FirstOf;
friend class OL_Data;
friend class Concat;
protected:
Content( const Token &t , ActionType mode);
void markup( const Token &t );
void data( const char *str, size_t sz );
};
inline
Content::Content( const Token &t, ActionType mode ):BaseData(t, mode) {}
#endif

View File

@@ -0,0 +1,34 @@
/* $XConsortium: ContentRec.h /main/2 1996/07/18 16:41:34 drk $ */
#ifndef __CRec_hdr__
#define __CRec_hdr__
#include "VarElementList.h"
class ContentRec {
friend class OL_Data;
friend int ol_dataparse();
friend class ContentType;
private:
int data_type;
int attr_name;
VarElementList var_list;
ContentRec *next;
public:
void Init ( int dtype, int aname=0, VarElement *vList=0 );
ContentRec() { attr_name = -1; data_type=-1, next = 0; }
};
/*--------------------------------------------------------*/
inline
void
ContentRec::Init( int dtype, int aname, VarElement *vlist )
{
data_type = dtype;
attr_name = aname;
var_list.insert ( vlist );
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,28 @@
/* $XConsortium: ContentType.h /main/3 1996/08/21 15:46:16 drk $ */
#ifndef __Content_Type_h__
#define __Content_Type_h__
#include <assert.h>
class OL_Expression;
class ContentType {
friend class OL_Data;
private:
OL_Expression *exprlist;
protected:
void Parse( char *str );
ContentType();
~ContentType();
public:
void init ( OL_Expression *elist ); // Construct a ExprList object
};
#endif

View File

@@ -0,0 +1,208 @@
%{
/* $XConsortium: ContentType.l /main/2 1996/11/19 16:54:22 drk $ */
#include <iostream.h>
#include <stream.h>
#include <stdio.h>
#include <memory.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include "Exceptions.hh"
#include "Task.h"
#include "SGMLName.h"
#include "ExprList.h"
#include "Expression.h"
#include "OL_DataExpr.tab.h"
#include "ContentType.h"
/* CurrentContentPtr is used as the communication media between
* yyparse and ContentType::Parse()
*/
ContentType *CurrentContentPtr;
/*
* Forward declaration for my_input
*/
static int my_input ( char *, int );
extern int yyparse();
#undef YY_INPUT
#define YY_INPUT(b, r, ms ) ( r=my_input( ( char *)b,ms) )
static char *myinput;
static char *myinputptr;
static char *myinputlim;
// Debugging macro
#ifdef DEBUG
#define DBG(level) if ( dbgLevel >= level)
#else
#define DBG(level) if (0)
#endif
static int dbgLevel = -1;
%}
%%
"@"[a-zA-Z0-9]+ {
yylval.name = SGMLName::intern((const char *)yytext+1 ,1);
return( Reference );
}
["][^"]*["] {
if ( *(yytext + 1) != '"' ) {
// get rid of the 2 quotes
int len = strlen(( const char *)yytext)-2;
char *lit_str = new char [ len + 1 ];
strncpy ( lit_str,
(const char *)yytext + 1,
len );
*(lit_str + len) = '\0';
yylval.string = lit_str;
}
else {
yylval.string = 0;
}
DBG(50) cerr << "(DEBUG) literal \"string\" = "
<< yylval.string << endl;
return( Literal );
}
['][^']*['] {
if ( *(yytext + 1) != '\'' ) {
// get rid of the 2 quotes
int len = strlen(( const char *)yytext)-2;
char *lit_str = new char [ len + 1 ];
strncpy ( lit_str,
(const char *)yytext + 1,
len );
*(lit_str + len) = '\0';
yylval.string = lit_str;
}
else {
yylval.string = 0;
}
DBG(50) cerr << "(DEBUG) literal 'string' = "
<< yylval.string << endl;
return( Literal );
}
[Aa][Tt][Tt][Rr] { return( Attr ); }
[Cc][Oo][Nn][Cc][Aa][Tt] { return( Concat ); }
[Ff][Ii][Rr][Ss][Tt][Oo][Ff] { return( FirstOf); }
"#"[Cc][Oo][Nn][Tt][Ee][Nn][Tt] { return( Content ); }
[^(,)\n\t ]+ {
yylval.name = SGMLName::intern((const char *)yytext,1);
DBG(10) cerr << "(DEBUG) matches"
<< (char *)SGMLName::lookup(yylval.name)
<< endl;
return ( Id );
}
[(,)] {
DBG(10) cerr << "(DEBUG) matches"
<< (char *)yytext
<< endl;
return ( yytext[0] );
}
[\n\t ]+ ;
. {
throw(Unexpected(
"Syntax error in value expression"));
}
%%
static int
my_input ( char *buf, int max_size )
{
int remain = myinputlim - myinputptr;
int n = ( max_size > remain ? remain : max_size );
if ( n > 0 ) {
memcpy ( buf, myinputptr, n );
myinputptr += n;
}
return n;
}
//--------------------------------------------------------------
void
ol_dataerror(char *str)
{
throw(Unexpected(form("Syntax error in %s", myinput)));
}
//--------------------------------------------------------------
ContentType::ContentType()
{
char *dbgStr;
dbgStr = getenv ("OL_DEBUG");
dbgLevel = ( dbgStr ? atoi ( dbgStr ) : 0 );
exprlist = 0;
}
//--------------------------------------------------------------
ContentType::~ContentType()
{
Expression *eptr = exprlist;
while ( eptr ) {
Expression *tmp = eptr;
eptr = eptr->next;
delete tmp;
}
}
//--------------------------------------------------------------
void
ContentType::Parse( char *str )
{
DBG(10) cerr << "(DEBUG) ContentType::Parse() str = " << str << endl;
myinput = str;
myinputptr = str;
myinputlim = str + strlen(str);
CurrentContentPtr = this;
yyparse();
BEGIN INITIAL;
yyrestart(NULL);
}
//--------------------------------------------------------------
void
ContentType::init( Expression *expr )
{
assert(expr);
if ( expr->next ) {
/*
* The same as CONCAT
*/
ExprList *elist = new ExprList( expr );
Expression *new_expr = new Expression ( CONCAT, -1, elist );
assert(new_expr);
exprlist = new_expr;
}
else {
exprlist = expr;
}
}

View File

@@ -0,0 +1,635 @@
/* $TOG: DataBase.C /main/5 1998/04/17 11:43:17 mgreess $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
/* imported interfaces... */
#include <string.h>
#include <stdarg.h>
#include <assert.h>
#include <unistd.h>
#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "StringList.h"
#include "Token.h"
/* exported interfaces... */
#include "DataBase.h"
#define FRIENDLY_ASSERT(e) \
if(!(e)) Token::signalError(Token::Internal, Token::Fatal, \
__FILE__, __LINE__, \
"assertion failed: " #e);
DB::DB(const char *name)
{
f_name = new char[strlen(name)+1];
strcpy(f_name, name);
}
static int isdir(const char* filename)
{
int ret = 0;
struct stat sb;
if(stat(filename, &sb) == 0){
if(S_ISDIR(sb.st_mode)){
ret = 1;
}
}
return ret;
}
static void makedir(const char *path) /* throw(PosixError) */
{
if(mkdir((char*)path, DATABASE_DIRECTORY_MODE) != 0){
throw(PosixError(errno, path));
}
}
DBTable *DB::table(const char *tname, int scode, int cols,
int access)
/* throw(PosixError); */
{
DBTable *ret = 0; /* keep compiler happy */
switch(access){
case CREATE:
if(!isdir(f_name)){
makedir(f_name);
}
ret = new DBTable(this, scode, cols, tname);
break;
case READ:
ret = new DBTable(this, scode, cols, tname);
ret->file(DB::READ);
break;
default:
abort();
}
return ret;
}
DBTable::DBTable(DB *database, int schema_code, int cols, const char *name)
{
f_database = database;
f_schema_code = schema_code;
f_cols = cols;
f_name = new char[strlen(name)+1];
strcpy(f_name, name);
f_file = NULL;
f_start = 0;
}
DBTable::~DBTable()
{
if(f_file && strcmp(f_name, DATABASE_STDIO) != 0) fclose(f_file);
delete f_name;
}
FILE *
DBTable::file(DB::Access access)
{
if(!f_file){
if(strcmp(f_name, DATABASE_STDIO) == 0){
f_file = access == DB::CREATE ? stdout : stdin;
}else{
const char *p = f_database->path();
char *path = new char[strlen(p) + 1 + strlen(f_name) + 1];
sprintf(path, "%s/%s", p, f_name);
f_file = fopen(path, access == DB::CREATE ? "w" : "r");
if(!f_file){
throw(PosixError(errno, path));
}
delete path;
}
}
return f_file;
}
//----------------------------------------------------------
void DBTable::insert(int typecode, ...)
{
FILE *out = file(DB::CREATE);
va_list ap;
va_start(ap, typecode);
fprintf(out, "%d\n%d\n", f_schema_code, f_cols);
int cols_found = 0;
while(typecode != 0){
switch(typecode){
case STRING_CODE:
{
const char *str = va_arg(ap, const char*);
fprintf(out, "%d\n%ld\t%s\n", STRING_CODE, (long)strlen(str), str);
}
break;
case -STRING_CODE:
{
const char *str = va_arg(ap, const char*);
size_t len = va_arg(ap, size_t);
fprintf(out, "%d\n%ld\t", STRING_CODE, (long)len );
fwrite ( str, len, 1, out );
fputc( '\n', out);
}
break;
case COMPRESSED_STRING_CODE:
{
const char *comp_agent = va_arg(ap, const char* );
const char *str = va_arg(ap, const char* );
fprintf(out, "%d\n%s\n%ld\t%s\n", COMPRESSED_STRING_CODE,comp_agent,
(long)strlen(str), str );
}
break;
case -COMPRESSED_STRING_CODE:
{
const char *comp_agent = va_arg(ap, const char* );
const char *str = va_arg(ap, const char* );
size_t len = va_arg(ap, size_t );
fprintf(out, "%d\n%s\n%ld\t", COMPRESSED_STRING_CODE,
comp_agent,
(long)len
);
fwrite( str, len, 1, out );
fputc('\n', out);
}
break;
case OID_CODE:
{
const char *oid = va_arg(ap, const char*);
fprintf(out, "%d\n%s\n", OID_CODE, oid);
}
break;
case INTEGER_CODE:
{
int x = va_arg(ap, int);
fprintf(out, "%d\n%d\n", INTEGER_CODE, x);
}
break;
case SHORT_LIST_CODE:
{
int qty = va_arg(ap, int);
int code = va_arg(ap, int);
fprintf(out, "%d\n#\n", SHORT_LIST_CODE);
switch(code){
case INTEGER_CODE:
{
int *items = va_arg(ap, int*);
for(int i = 0; i < qty; i++){
fprintf(out, "%d\n%d\n", code, items[i]);
}
}
break;
case STRING_CODE:
{
const char **items = va_arg(ap, const char**);
for(int i = 0; i < qty; i++){
fprintf(out, "%d\n%ld\t%s\n",
code, (long)strlen(items[i]), items[i]);
}
}
break;
case OID_CODE:
{
const char **items = va_arg(ap, const char**);
for(int i = 0; i < qty; i++){
fprintf(out, "%d\n%s\n",
code, items[i]);
}
}
break;
default:
fprintf(stderr, "Internal error: unknown database type code: %d\n",
code);
abort();
}
fprintf(out, "#\n");
break;
}
case OID_LIST_CODE:
{
int qty = va_arg(ap, int);
fprintf(out, "%d\n#\n", OID_LIST_CODE);
const char **items = va_arg(ap, const char**);
for(int i = 0; i < qty; i++){
fprintf(out, "%s\n", items[i]);
}
fprintf(out, "#\n");
break;
}
default:
fprintf(stderr, "Internal error: unknown database type code: %d\n",
typecode);
abort();
}
cols_found++;
typecode = va_arg(ap, int);
}
va_end(ap);
fflush(out); /* @# some routines are sloppy and don't
* close their tables!
*/
assert(cols_found == f_cols);
}
//----------------------------------------------------------
void DBTable::insert_untagged(int typecode, ...)
{
FILE *out = file(DB::CREATE);
va_list ap;
va_start(ap, typecode);
fprintf(out, "%d\n", f_schema_code);
if(f_start){
fprintf(out, "+");
f_start = 0;
}
int cols_found = 0;
while(typecode != 0){
switch(typecode){
case STRING_CODE:
{
const char *str = va_arg(ap, const char*);
fprintf(out, "%ld\t%s\n", (long)strlen(str), str);
}
break;
case -STRING_CODE:
{
const char *str = va_arg(ap, const char*);
size_t len = va_arg(ap, size_t);
fprintf(out, "%ld\t", (long)len );
fwrite ( str, len, 1, out );
fputc( '\n', out);
}
break;
case OID_CODE:
{
const char *oid = va_arg(ap, const char*);
fprintf(out, "%s\n", oid);
}
break;
case INTEGER_CODE:
{
int x = va_arg(ap, int);
fprintf(out, "%d\n", x);
}
break;
default:
fprintf(stderr, "Internal error: unknown database type code: %d\n",
typecode);
abort();
}
cols_found++;
typecode = va_arg(ap, int);
}
va_end(ap);
fflush(out); /* @# some routines are sloppy and don't
* close their tables!
*/
assert(cols_found == f_cols);
}
//----------------------------------------------------------
void DBTable::start_list()
{
this->f_start = 1;
}
//----------------------------------------------------------
void DBTable::end_list()
{
fprintf(file(DB::CREATE), "-\n");
f_start = 0;
}
//----------------------------------------------------------
DBCursor::DBCursor(DBTable &t)
{
f_table = &t;
f_start = -1;
f_fields = new StringList();
f_list = NULL;
}
//----------------------------------------------------------
DBCursor::~DBCursor()
{
// this is for the last record
delete f_fields;
if ( f_list ) delete f_list;
}
//----------------------------------------------------------
void DBCursor::string_field(FILE *fp, char **out, int *lenOut)
{
int len = 0;
int io;
/* fscanf is wierd, so we do it ourselves... */
while(isdigit(io = fgetc(fp))){
len = len * 10 + (io - '0');
}
FRIENDLY_ASSERT(io == '\t');
char *str = new char[len + 1];
io = fread(str, sizeof(str[0]), len+1, fp); /* read \n also */
FRIENDLY_ASSERT(io == len+1);
str[len] = 0; /* replace \n with 0 (just in case...) */
if(out){
f_fields->add(str);
*out = str;
if(lenOut) *lenOut = len;
}else{
delete str;
}
}
void DBCursor::int_field(FILE *fp, int *out)
{
int an_int;
int io;
io = fscanf(fp, "%d\n", &an_int);
FRIENDLY_ASSERT(io == 1);
if(out) *out = an_int;
}
void DBCursor::short_list(FILE *fp, int *qout, int ltype, void *out)
{
int c;
c = fgetc(fp);
FRIENDLY_ASSERT(c == '#');
c = fgetc(fp);
FRIENDLY_ASSERT(c == '\n');
switch(ltype){
case STRING_CODE:
{
typedef const char** ccpp;
ccpp *cpout = (ccpp*)out;
assert(f_list == NULL); /* only one SHORT_LIST per record supported */
f_list = new StringList;
while((c = fgetc(fp)) != '#'){
char *item;
int ftype;
ungetc(c, fp);
fscanf(fp, "%d\n", &ftype);
FRIENDLY_ASSERT(ftype == STRING_CODE);
string_field(fp, &item, NULL);
f_list->append(item);
}
*cpout = f_list->array();
*qout = f_list->qty();
}
break;
default:
abort(); /* only strings supported */
}
c = fgetc(fp);
FRIENDLY_ASSERT(c == '\n');
}
int DBCursor::next(int typeCode, ...)
{
int ret = 1;
FILE *fp = f_table->file(DB::READ);
int io;
int recordClass;
if(f_start < 0){ /* on first call to next(), reset the file */
rewind(fp);
}
f_start = ftell(fp);
io = fscanf(fp, "%d\n", &recordClass); /* get record code */
if(io != EOF){ /* got any data? */
FRIENDLY_ASSERT(io == 1);
// clean up previous fields first if they exist
f_fields->reset();
delete f_list; f_list = NULL;
va_list ap;
va_start(ap, typeCode);
int fieldQty;
io = fscanf(fp, "%d\n", &fieldQty); /* get field count */
FRIENDLY_ASSERT(io == 1);
/* iterate over fields in the input stream... */
while(fieldQty--){
int fieldCode;
io = fscanf(fp, "%d\n", &fieldCode); /* get field type */
FRIENDLY_ASSERT(io == 1);
assert(typeCode); /* make sure caller didn't give too few args */
switch(fieldCode){
case STRING_CODE:
{
char **data = NULL;
int *len = NULL;
if (fieldCode == typeCode || (fieldCode + typeCode) == 0) {
data = va_arg(ap, char**);
if (fieldCode != typeCode) {
len = va_arg(ap, int*);
}
}
string_field(fp, data, len);
}
break;
case INTEGER_CODE:
int_field(fp, fieldCode == typeCode ? va_arg(ap, int*) : 0);
break;
case SHORT_LIST_CODE:
{
int *qout = va_arg(ap, int *);
int ltype = va_arg(ap, int);
void *out = va_arg(ap, void*);
short_list(fp, qout, ltype, out);
}
break;
default:
abort();
}
typeCode = va_arg(ap, int);
}
assert(typeCode == 0); /* check for end marker */
va_end(ap);
}else{
ret = 0; /* EOF found... no record */
}
return ret;
}
void DBCursor::undoNext()
{
FILE *fp = f_table->file(DB::READ);
if(f_start >= 0){
if(fseek(fp, f_start, 0) < 0){
throw(PosixError(errno, f_table->name()));
}
}else{
abort(); /* @# throw("no next to undo!") */
}
}
//----------------------------------------------------------------
void DBCursor::local_rewind()
{
f_start = -1;
}
//----------------------------------------------------------------
int DBCursor::tell()
{
if ( f_start == -1 ) {
return(0);
}
else {
return f_start;
}
}
//----------------------------------------------------------------
void DBCursor::seekToRec( int pos )
{
FILE *fp = f_table->file(DB::READ);
if ( pos >= 0 ){
if (fseek(fp, pos, 0) < 0 ) {
throw(PosixError(errno, f_table->name()));
}
}
else{
abort();
}
}

View File

@@ -0,0 +1,162 @@
/* $XConsortium: DataBase.h /main/6 1996/10/26 18:17:26 cde-hal $ -*- c++ -*- */
#ifndef __DataBase_h
#define __DataBase_h
#include "Exceptions.hh"
#include "object/c_codes.h" /* mmdb codes */
#include "oliasdb/olias_consts.h"
#include <errno.h>
#include <stdio.h>
#include <string.h>
class PosixError : public Exception{
public:
enum { MAXMSG = 200 };
PosixError(int error_no, const char *msg)
{ f_errno = error_no; strncpy(f_msg, msg, MAXMSG+1); };
const char *msg(void) const { return f_msg; };
int error_no(void) const { return f_errno; };
DECLARE_EXCEPTION(PosixError, Exception);
private:
char f_msg[MAXMSG+1];
int f_errno;
};
#define DATABASE_DIRECTORY_MODE 0775
#define DATABASE_STDIO "-"
class DBTable;
class DB{
public:
/*
* USE: const char *dir = "/some/dir/for/all/the/tables";
* DB *db = DB(dir);
* assert(strcmp(db->path(), dir) == 0);
*/
DB(const char *name); /* a directory, for now */
~DB() { if ( f_name ) delete f_name; }
const char *path(void) { return f_name; };
typedef enum { READ, CREATE
#if DB_UPDATE
, UPDATE
#endif
} Access;
/*
* USE: DBTable *t = db->table("NodeMeta", NODE_CODE, 4, CREATE);
* where NODE_CODE is an MMDB object code, and 4
* is the number of "columns" in the table, i.e. the
* number of items you're going to pass to each call to
* insert()
*
* CREATE creates a file named "NodeMeta" in db's directory.
* READ opens a file named "NodeMeta" in db's directory.
*/
DBTable *table(const char *name,
int schema_code, int cols,
int a = READ); /* throw PosixError */
private:
char *f_name;
};
#define BT_NUM_DOC_FIELDS 6
#define BT_NUM_LOCATOR_FIELDS 3
#define BT_NUM_GRAPHIC_FIELDS 6
#define BT_NUM_STYLESHEET_FIELDS 3
#define BT_NUM_OLIAS_NODE_FIELDS 7
class DBTable{
friend class DB;
friend class DBCursor;
public:
~DBTable();
/*
* USE: int intlist = 4;
* table->insert(INTEGER_CODE, 4,
* STRING_CODE, "xyz",
* -STRING_CODE, "abcd", 4,
* SHORT_LIST_CODE, 1, INTEGER_CODE, &intlist,
* NULL);
*/
void insert(int typecode, ...);
void insert_untagged(int typecode, ...);
const char *name() { return f_name; };
void start_list();
void end_list();
protected:
DBTable(DB* database, int schema_code, int cols, const char *name);
FILE *file(DB::Access);
private:
FILE *f_file;
DB *f_database;
int f_schema_code;
int f_cols;
char *f_name;
int f_start; /* at start of linked list */
};
class DBCursor{
public:
DBCursor(DBTable &t);
~DBCursor();
/*
* USE: DBTable t(...);
* DBCurcor c(t);
* const char *f1;
* int f2
*
* while(c.next(STRING_CODE, &f1,
* INTEGER_CODE, &f2,
* NULL)){
* ...use f1, f2...
* }
*/
int next(int code, ...);
void undoNext(); /* seek back to the beginning of the last record read
* throw(PosixError) on unseekable device
*/
void local_rewind(); /* restart at the beginning of the table file */
int tell(); /* current position of the file */
void seekToRec( int pos ); /* seek directly to pos */
protected:
void string_field(FILE *, char **, int *);
void int_field(FILE *, int *);
void short_list(FILE *, int *, int, void*);
private:
DBTable *f_table;
class StringList *f_fields;
class StringList *f_list;
long f_start;
};
#endif /* __DataBase_h */

View File

@@ -0,0 +1,105 @@
/* $XConsortium: DataRepository.C /main/3 1996/08/21 15:46:21 drk $ */
#include "dti_cc/CC_Stack.h"
#include "dti_cc/CC_Slist.h"
/* Imported Interfaces */
#include "Task.h"
#include "FlexBuffer.h"
#include "DataRepository.h"
//-------------Initializer for the zone_name mapping ----------------
static char *zone_name[] = {
"D",
"H",
"G",
"E",
"I",
"T"
};
//------------------------------------------------------------------
DataRepository::DataRepository()
{
for ( int i = 0; i < Total; i++ ) {
table[i] = NULL;
}
zone_stack = new Stack<Rec>;
current_buf = NULL;
}
//------------------------------------------------------------------
DataRepository::~DataRepository()
{
delete zone_stack;
// destroy the table
for ( int i = 0; i < Total; i++ ) {
delete table[i];
}
}
//------------------------------------------------------------------
void
DataRepository::ActivateZone( int zt, int level )
{
if ( !table[zt] ) {
table[zt] = new FlexBuffer;
}
// prepare a buffer to be written
Rec rec( level, table[zt] );
zone_stack->push ( rec );
current_buf = table[zt];
}
//------------------------------------------------------------------
void
DataRepository::deActivateZone( int level )
{
if ( zone_stack->empty() ) {
return;
}
if ( zone_stack->top().level != level ) {
return;
}
Rec ZoneRec = zone_stack->pop();
// update the current_buf
if ( !zone_stack->empty() ) {
current_buf = zone_stack->top().Buf;
}
}
//------------------------------------------------------------------
void
DataRepository::put(char ch)
{
if ( current_buf ) {
current_buf->put( ch );
}
}
//------------------------------------------------------------------
void
DataRepository::write( const char *str, size_t n )
{
current_buf->write( str, n );
}
//-------------------------------------------------------------------
const char *
DataRepository::get_zone_name( int zt )
{
if ( zt >= Total ) {
return NULL;
}
return ( zone_name[zt] );
}

View File

@@ -0,0 +1,73 @@
/* $XConsortium: DataRepository.h /main/2 1996/07/18 16:42:32 drk $ */
// DataRepository.h -- used to store all the full-text content
#ifndef DataRP_HEADER
#define DataRP_HEADER
#include <stddef.h>
/* Forward declaration */
class FlexBuffer;
template <class T> class Stack;
template <class T> class CC_TPtrSlist;
class Rec {
friend class DataRepository;
private:
int level;
FlexBuffer *Buf;
public:
Rec(int l, FlexBuffer *buf):level(l),Buf(buf){}
Rec():level(-1),Buf(NULL){}
Rec( const Rec &t ) {
if ( this != &t ) {
this->level = t.level;
this->Buf = t.Buf;
}
}
Rec & operator=( Rec &t ) {
if ( this != &t ) {
this->level = t.level;
this->Buf = t.Buf;
}
return *this;
}
};
class DataRepository {
public:
typedef enum
{ Default=0, Head, Graphic, Example, Index, Table, Total} ZoneType;
private:
FlexBuffer *table[Total]; // zone buffer
Stack<Rec> *zone_stack;
FlexBuffer *current_buf;
public:
DataRepository();
~DataRepository();
void ActivateZone( int zone_type, int level ); // throw Exception
void deActivateZone( int level ); // throw Exception
void put( char );
void write ( const char *, size_t );
FlexBuffer **tabbuf() { return ( table ); }
const char *get_zone_name( int zone_type );
};
#endif

View File

@@ -0,0 +1,45 @@
/* $XConsortium: DataTask.C /main/3 1996/08/21 15:46:25 drk $ */
/* exported interfaces... */
#include "DataTask.h"
/* imported interfaces... */
#include "Token.h"
DataTask::DataTask(const Token&) : buf()
{
level = 1;
}
void DataTask::markup(const Token &t)
{
switch(t.type()){
case START:
/*
* be careful not to start collecting again after the relavent
* element is done!
*/
if(level > 0) level++;
break;
case END:
if(level > 0) level--;
}
}
void DataTask::data(const char *chars, size_t len)
{
if(level > 0){
buf.write(chars, len);
}
}
const char * DataTask::content(size_t *len)
{
if(len) *len = buf.GetSize();
return buf.GetBuffer();
}

View File

@@ -0,0 +1,40 @@
/* $XConsortium: DataTask.h /main/2 1996/07/18 16:42:57 drk $ */
/* $Id: DataTask.h /main/2 1996/07/18 16:42:57 drk $ */
#ifndef __DataTask_h
#define __DataTask_h
#include <stddef.h>
#include "Task.h"
#include "FlexBuffer.h"
class DataTask : public Task{
/*
* A DataTask collects all the data for an element.
*
* USE:
* if(t.type() == START && t.attrMatch(OLAF::OLIAS, OLAF::Title)){
* titleTask = addSubTask(new DataTask());
*
* ... (more markup(), data() calls) ...
*
* const char *title = titleTask.content()
*/
public:
DataTask(const Token& t);
virtual void markup(const Token& t) /* throw(Unexpected) */;
virtual void data(const char *chars,
size_t len) /* throw(ResourcesExhausted) */;
const char *content(size_t *length_return = NULL);
private:
int level; /* how far nested are we? */
FlexBuffer buf;
};
#endif /* __DataTask_h */

View File

@@ -0,0 +1,193 @@
/* $XConsortium: Dispatch.cc /main/2 1996/06/11 16:49:03 cde-hal $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
/* exported interfaces... */
#include "Dispatch.h"
/* imported interfaces... */
#include <assert.h>
#include <string.h>
#include "SGMLName.h"
#include "EntityScope.h"
#include "Token.h"
#include "FlexBuffer.h"
#include "SGMLDefn.h"
#include "SearchPath.h"
#include "OLAF.h"
Task *Dispatch::TaskObject = NULL;
Stack<int> *Dispatch::IgnoreStack = NULL;
int Dispatch::level = 0;
static EntityScope entity_stack;
Token* Dispatch::tok = new Token();
char* Dispatch::f_file = NULL;
int Dispatch::f_line = 0;
const char *Dispatch::tmpdir = NULL;
const char *Dispatch::srcdir = NULL;
SearchPath *Dispatch::search_path_table = NULL;
int Dispatch::tocgen_only = 0;
//---------------------------------------------------------------------
void
Dispatch::token(TOKEN_TYPE tokType, unsigned char *Name )
{
tok->setFileLine(f_file, f_line);
switch(tokType){
case START:
level++;
tok->StoreStartTag( Name, level );
if ( tok->LookupAttr( OLAF::OL_Ignore )
|| tok->LookupAttr( OLAF::OL_ShortTitle ) ) {
IgnoreStack->push ( level );
}
break;
case END:
tok->StoreEndTag ( Name, level );
level--;
break;
case INTERNAL_ENTITY:
tok->StoreEntity( Name , INTERNAL_ENTITY);
break;
case EXTERNAL_ENTITY:
tok->StoreEntity( Name , EXTERNAL_ENTITY);
SGMLDefn *sgml_rec;
sgml_rec = entity_stack.LookupEntity( SGMLName::intern((char*)Name) );
if(sgml_rec){
tok->SetEntityValue( sgml_rec );
}else{
tok->reportError(Token::Internal, Token::Fatal,
"Unable to find entity definition for %.50s", Name);
}
break;
}
TaskObject->markup( *tok );
if ( tokType == END ) {
if ( !IgnoreStack->empty() ) {
int topelement = IgnoreStack->top();
if ( topelement == tok->level() ) {
topelement = IgnoreStack->pop();
}
}
}
delete tok;
tok = new Token();
}
//---------------------------------------------------------------------
void Dispatch::setRoot( Task *t, Stack<int> *istack)
{
assert(TaskObject == NULL);
TaskObject = t;
assert(IgnoreStack == NULL);
IgnoreStack = istack;
}
//---------------------------------------------------------------------
SGMLDefn *
Dispatch::entity_ref( const char *ent_name )
{
int ent_num;
ent_num = SGMLName::intern(ent_name);
SGMLDefn *sgml_rec = entity_stack.LookupEntity( ent_num );
return sgml_rec;
}
//---------------------------------------------------------------------
void
Dispatch::entity_decl( SGMLDefn *defn )
{
EntityList *escope = entity_stack.GetTopEntities();
assert(escope != NULL);
/*
* first clone up an SGMLDefn record for storage purposes
*/
SGMLDefn *sgmlRec = new SGMLDefn();
*sgmlRec = *defn;
escope->insert( sgmlRec );
}
//---------------------------------------------------------------------
void
Dispatch::file(const char *f)
{
delete f_file;
f_file = new char[strlen(f)+1];
strcpy(f_file, f);
/*
* put directory of f_file into the search path also
*/
if(search_path_table){
// perform dirname first
char *dirname = strdup( f_file );
char *p = strrchr( dirname, '/' );
if ( p ) {
*p = '\0';
}
else {
strcpy( dirname,"." );
}
search_path_table->replace_file_scope( dirname );
delete dirname;
}
}
//---------------------------------------------------------------------
void
Dispatch::subdoc_start()
{
EntityList *newrec = new EntityList();
entity_stack.push ( newrec );
}
//---------------------------------------------------------------------
void
Dispatch::subdoc_end()
{
EntityList *rec = entity_stack.pop();
if ( !rec ) {
throw(Unexpected("SUBDOC end tag is not matched"));
}
delete rec;
}

View File

@@ -0,0 +1,76 @@
/* $XConsortium: Dispatch.h /main/3 1996/08/21 15:46:29 drk $ -*- c++ -*- */
/* $XConsortium: Dispatch.h /main/3 1996/08/21 15:46:29 drk $ -*- c++ -*- */
//---------------------------------------------------------------------
// Dispatch Functions
//---------------------------------------------------------------------
#ifndef DISPATCH_HEADER
#define DISPATCH_HEADER
#include "Token.h"
#include "Task.h"
#include "FlexBuffer.h"
#include "dti_cc/CC_Stack.h"
class SGMLDefn;
class SearchPath;
class Dispatch {
friend int yylex();
friend int main(int argc, char **argv);
protected:
static Token *tok;
static const char *tmpdir;
static const char *srcdir;
static SearchPath *search_path_table;
static int tocgen_only;
static void token ( TOKEN_TYPE, unsigned char * );
static void subdoc_start();
static void subdoc_end();
static void data ( FlexBuffer * );
static void setRoot( Task *t, Stack<int> *istack);
static void setTempDir ( const char *tmpdir );
static void setSrcDir ( const char *srcdir );
static void entity_decl( SGMLDefn *);
static void file(const char *);
static void line(int l) { f_line = l; };
static void newline() { f_line++; };
private:
static Task *TaskObject;
static int level;
static Stack<int> *IgnoreStack;
static char *f_file;
static int f_line;
public:
static SGMLDefn *entity_ref ( const char *ename );
static int OutsideIgnoreScope() { return IgnoreStack->empty(); }
static int RunTocGenOnly() { return(tocgen_only); }
#ifdef SC3
static const char *GetTmpDir() { return( tmpdir ); }
static const char *GetSrcDir() { return( srcdir ); }
static SearchPath *GetSearchPath() { return ( search_path_table ); }
#else
static const char *GetTmpDir() { return( tmpdir ); }
static const char *GetSrcDir() { return( srcdir ); }
static SearchPath *GetSearchPath() { return ( search_path_table ); }
#endif
};
inline
void
Dispatch::data( FlexBuffer *buf )
{
TaskObject->data( (const char *)( buf->GetBuffer() ),
buf->GetSize() );
}
#endif

View File

@@ -0,0 +1,64 @@
/* $XConsortium: EntityList.cc /main/2 1996/07/18 16:11:54 drk $ */
/* exported interfaces */
#include "EntityList.h"
/* imported interfaces */
#include <stdio.h>
#include "SGMLName.h"
#include "SGMLDefn.h"
//---------------------------------------------------------
EntityList::EntityList()
{
head = NULL;
tail = NULL;
next = NULL;
}
//---------------------------------------------------------
EntityList::~EntityList()
{
SGMLDefn *pt = head;
while ( pt ) {
SGMLDefn *tmp = pt;
pt = pt->next;
delete tmp;
}
}
//---------------------------------------------------------
// EntityList:lookup
SGMLDefn *
EntityList::lookup(int ename ) const
{
SGMLDefn *pt = head;
while ( pt ) {
if ( pt->getName() == ename ) {
return ( pt );
}
pt = pt->next;
}
return ( NULL );
}
//---------------------------------------------------------
// EntityList::add
void
EntityList::insert( SGMLDefn *entry )
{
if ( !tail ) {
head = tail = entry;
}
else {
tail->next = entry;
tail = entry;
}
}

View File

@@ -0,0 +1,29 @@
/* $XConsortium: EntityList.h /main/2 1996/07/18 16:43:25 drk $ */
#ifndef ENT_LIST_HDR
#define ENT_LIST_HDR
#include "SGMLDefn.h"
class EntityList {
friend class EntityScope;
friend class Dispatch;
protected:
SGMLDefn *head;
SGMLDefn *tail;
EntityList *next;
SGMLDefn *lookup( int ) const;
void insert ( SGMLDefn * );
// SGMLDefn *GetFirstAttr() const;
// SGMLDefn *GetNextAttr( const SGMLDefn *) const;
EntityList();
~EntityList();
};
#endif

View File

@@ -0,0 +1,66 @@
/* $XConsortium: EntityScope.h /main/2 1996/07/18 16:43:47 drk $ */
#ifndef ENT_SCOPE_HDR
#define ENT_SCOPE_HDR
#include "EntityList.h"
class EntityScope {
private:
EntityList *currentEntityScope;
public:
void push ( EntityList *escope ) {
escope->next = currentEntityScope;
currentEntityScope = escope;
}
EntityList *pop();
EntityList *GetTopEntities() const { return(currentEntityScope); }
SGMLDefn *LookupEntity( int ename );
/*
* Constructor EntityScope creates a topmost entitylist
* so the stack will contain an element after it is constructed
*/
EntityScope() { currentEntityScope = new EntityList(); }
~EntityScope();
};
//----------------------------------------------------------------
inline
SGMLDefn *
EntityScope::LookupEntity( int ename )
{
return ( currentEntityScope->lookup( ename ) );
}
//-----------------------------------------------------------------
inline
EntityList *
EntityScope::pop()
{
EntityList *ptr;
ptr = currentEntityScope;
currentEntityScope = ptr->next;
return ( ptr );
}
//-----------------------------------------------------------------
inline
EntityScope::~EntityScope()
{
EntityList *pt = currentEntityScope;
while( pt ) {
EntityList *tmp = pt;
pt = pt->next;
delete tmp;
}
}
#endif

View File

@@ -0,0 +1,44 @@
/* $XConsortium: ExprList.C /main/3 1996/08/21 15:46:33 drk $ */
/* imported interfaces */
/* exported interfaces */
#include "Expression.h"
#include "ExprList.h"
//------------------------------------------------------------------
ExprList::ExprList()
{
head = 0;
}
//------------------------------------------------------------------
ExprList::ExprList( OL_Expression *elist )
{
head = elist;
}
//------------------------------------------------------------------
ExprList::~ExprList()
{
OL_Expression *ptr = head;
while ( ptr ) {
OL_Expression *tmp = ptr;
ptr = ptr->next;
delete tmp;
}
}
//------------------------------------------------------------------
OL_Expression *
ExprList::first()
{
return ( head );
}
//------------------------------------------------------------------
OL_Expression *
ExprList::next( OL_Expression *ptr )
{
if ( ptr ) { return(ptr->next); }
else { return 0; }
}

View File

@@ -0,0 +1,22 @@
/* $XConsortium: ExprList.h /main/3 1996/08/21 15:46:37 drk $ */
#ifndef __ExprList__
#define __ExprList__
class OL_Expression;
class ExprList {
private:
OL_Expression *head;
public:
ExprList();
ExprList( OL_Expression *elist);
~ExprList();
OL_Expression *first();
OL_Expression *next( OL_Expression *elem );
};
#endif

View File

@@ -0,0 +1,20 @@
/* $XConsortium: Expression.C /main/3 1996/08/21 15:46:40 drk $ */
/* imported interfaces */
#include "Expression.h"
#include "ExprList.h"
OL_Expression::~OL_Expression()
{
/* This is a hack right now to eliminate the memory leak
*/
if ( data_type == CONCAT || data_type == FIRSTOF ) {
ExprList *vlist = ( ExprList * )value_list;
delete vlist;
}
else if ( data_type == LITERAL ) {
char *vlist = (char *)value_list;
delete vlist;
}
}

View File

@@ -0,0 +1,45 @@
/* $XConsortium: Expression.h /main/3 1996/08/21 15:46:44 drk $ */
#ifndef __CRec_hdr__
#define __CRec_hdr__
enum OL_DATA_TYPE {
INVALID_OL_TYPE,
CONTENT,
CONCAT,
FIRSTOF,
GENERIC_ID,
LITERAL,
REFERENCE
};
class OL_Expression {
friend class OL_Data;
friend class FirstOf;
friend class Concat;
friend int ol_dataparse();
friend class ContentType;
friend class ExprList;
private:
OL_DATA_TYPE data_type;
int ename;
void *value_list;
OL_Expression *next;
public:
OL_Expression( OL_DATA_TYPE dtype=INVALID_OL_TYPE,
int dname=-1,
void *vlist=0) {
data_type = dtype; ename = dname; value_list = vlist; next = 0;
}
~OL_Expression();
OL_DATA_TYPE type() const { return data_type; }
int name() const { return ename; }
void *data_list() const { return value_list; }
};
#endif

View File

@@ -0,0 +1,115 @@
/* $XConsortium: FirstOf.C /main/3 1996/08/21 15:46:47 drk $ */
/* exported interfaces */
#include "FirstOf.h"
/* imported interfaces */
#include "Dispatch.h"
#include "OLAF.h"
#include "ExprList.h"
#include "Expression.h"
#include "Token.h"
#include "OL-Data.h"
#include "ConcatTask.h"
#include "Content.h"
#include "AttributeData.h"
#include "GenericId.h"
#include "Literal.h"
//---------------------------------------------------------------------
FirstOf::FirstOf( const Token &t,
ExprList *el,
ActionType mode ):BaseData(t,mode)
{
f_base = t.level();
for ( OL_Expression *local_list = el->first();
local_list;
local_list = el->next(local_list) ) {
switch ( local_list->type() ) {
case CONTENT :
addSubTask( new Content( t,mode) );
break;
case CONCAT :
addSubTask( new Concat ( t,
(ExprList *) local_list->data_list(),
mode) );
break;
case FIRSTOF :
addSubTask( new FirstOf( t,
(ExprList *)local_list->data_list(),
mode) );
break;
case GENERIC_ID :
addSubTask( new GenericId(t,
local_list->name(),
mode) );
break;
case LITERAL :
addSubTask( new Literal( t,
(const char *)local_list->data_list(),
mode) );
break;
case REFERENCE :
addSubTask( new AttributeData( t,
local_list->name(),
mode ));
break;
default:
abort();
}
}
}
//--------------------------------------------------------------------------
void
FirstOf::markup( const Token &t )
{
if ( ignore_status && !Dispatch::OutsideIgnoreScope() ) {
return;
}
if ( f_base > 0 ) {
ComplexTask::markup( t );
if ( t.type() == END ) {
if ( t.level() == f_base ) {
data_complete = 1;
for ( int i = 0; i < ComplexTask::used; i++ ) {
BaseData *task = ( BaseData *)ComplexTask::subtask(i);
if ( task->DataIsComplete() ) {
ValueBuffer.writeStr( task->content() );
break;
}
}
f_base = -1;
ComplexTask::removeAllSubTasks();
}
}
}
}

View File

@@ -0,0 +1,27 @@
/* $XConsortium: FirstOf.h /main/3 1996/08/21 15:46:51 drk $ */
#ifndef __FirstOfHdr__
#define __FirstOfHdr__
#include "Task.h"
#include "BaseDataCollect.h"
class Token;
class OL_Expression;
class ExprList;
class FirstOf : public BaseData {
friend class OL_Data;
friend class Concat;
private:
OL_Expression *elist;
protected:
FirstOf( const Token &t, ExprList *el,ActionType mode );
void markup( const Token &t );
void data( const char *str, size_t sz ) { ComplexTask::data( str, sz ); }
};
#endif

View File

@@ -0,0 +1,73 @@
/* $XConsortium: FlexBuffer.cc /main/2 1996/07/18 16:13:49 drk $ */
#include <iostream.h>
#include <memory.h>
#include <string.h>
#include "FlexBuffer.h"
//---------------------------------------------------------
FlexBuffer::FlexBuffer()
{
HeadPtr = 0;
maxSize = pos = 0;
}
//---------------------------------------------------------
//FlexBuffer::~FlexBuffer()
//{
// delete HeadPtr;
//}
//---------------------------------------------------------
void
FlexBuffer::grow(size_t needed)
{
if(needed + 1 > maxSize){
char *born = new char[maxSize = needed * 3 / 2 + 10];
if(pos){
memcpy(born, HeadPtr, pos);
delete [] HeadPtr;
}
HeadPtr = born;
}
}
//---------------------------------------------------------
void
FlexBuffer::write(const char *d, size_t n)
{
grow(pos + n);
memcpy(HeadPtr + pos, d, n);
pos += n;
}
//---------------------------------------------------------
void
FlexBuffer::writeStr(const char *str )
{
int n = strlen(str);
grow( pos + n );
memcpy ( HeadPtr + pos, str, n );
pos += n;
}
//---------------------------------------------------------
FlexBuffer &
FlexBuffer::operator+( FlexBuffer & fb )
{
grow( pos + fb.GetSize() );
memcpy(HeadPtr + pos , fb.HeadPtr, fb.GetSize() );
pos += fb.GetSize();
return ( *this );
}
//---------------------------------------------------------
ostream &
operator<< ( ostream &os, FlexBuffer &fb )
{
os << fb.GetBuffer();
return os;
}

View File

@@ -0,0 +1,43 @@
/* $XConsortium: FlexBuffer.h /main/2 1996/07/18 16:45:28 drk $ */
#ifndef FLEX_BFR_HDR
#define FLEX_BFR_HDR
#include <stddef.h>
#include <iostream.h>
class FlexBuffer {
friend ostream &operator<< ( ostream &s, FlexBuffer &);
private:
int pos;
int maxSize;
char *HeadPtr;
void grow(size_t);
public:
void write( const char *ch, size_t n );
void writeStr ( const char *ch );
void put( char );
void reset() { pos = 0; };
int GetSize() { return( pos ); }
const char *GetBuffer() { grow(pos); HeadPtr[pos] = 0; return(HeadPtr); }
FlexBuffer();
~FlexBuffer() { delete [] HeadPtr; }
FlexBuffer &operator+ ( FlexBuffer & );
};
inline void FlexBuffer::put( char c )
{
grow( pos + 1 );
*(HeadPtr + pos) = c;
pos += 1;
}
#endif

View File

@@ -0,0 +1,95 @@
/* $XConsortium: GenericId.cc /main/5 1996/07/18 16:14:18 drk $ */
/* exported interfaces */
#include "GenericId.h"
/* imported interfaces */
#include "Dispatch.h"
#include "SGMLName.h"
#include "OLAF.h"
#include "OL-Data.h"
#include "Token.h"
#ifdef FISH_DEBUG
#include "dbug.h"
#endif
//-------------------------------------------------------------------------
GenericId::GenericId( const Token &t,
int name,
ActionType mode ):BaseData(t,mode)
{
#ifdef FISH_DEBUG
DBUG_PRINT("GenericId", (" name = %s", SGMLName::lookup(name)) );
#endif
giname = name;
f_data = NULL;
done = 0;
f_base = -1;
}
//-------------------------------------------------------------------------
void
GenericId::markup( const Token &t )
{
#ifdef FISH_DEBUG
DBUG_PRINT( "GenericId", (" token t = %s",SGMLName::lookup(t.Gi()) ) );
#endif
if ( ignore_status && !Dispatch::OutsideIgnoreScope() ) {
return;
}
if ( f_data ) {
f_data->markup( t );
}
if ( t.type() == START ) {
/* first time we see the GI */
if ( t.Gi() == giname && f_base < 0 && !done ) {
/* fork off the OL_Data class for this GI */
f_data = new OL_Data ( t, OLAF::OL_data, (ActionType)ignore_status );
assert ( f_data != NULL );
f_base = t.level();
}
}
else if ( t.type() == END ) {
if ( f_base == t.level() && !done ) {
if ( data_complete = f_data->DataIsComplete() ) {
ValueBuffer.writeStr( f_data->content() );
}
delete f_data; f_data = NULL;
done = 1;
}
}
}
//-------------------------------------------------------------------------
void
GenericId::data( const char *str, size_t sz )
{
if ( ignore_status && !Dispatch::OutsideIgnoreScope() ) {
return;
}
if ( f_base > 0 ) {
if ( f_data ) {
f_data->data( str, sz );
}
}
}

View File

@@ -0,0 +1,29 @@
/* $XConsortium: GenericId.h /main/2 1996/07/18 16:45:48 drk $ */
#ifndef __gen_Id__
#define __gen_Id__
#include "BaseDataCollect.h"
class Token;
class OL_Data;
class GenericId : public BaseData {
friend class FirstOf;
friend class OL_Data;
friend class Concat;
private:
int giname;
int done;
OL_Data *f_data;
protected:
GenericId( const Token &t, int giname,ActionType mode);
void markup( const Token &t );
void data( const char *str, size_t sz );
};
#endif

View File

@@ -0,0 +1,287 @@
/* $XConsortium: GraphicsTask.cc /main/8 1996/08/14 16:59:38 rcs $ */
#include <assert.h>
#include <stream.h>
#include <iostream.h>
#include <sys/types.h>
#include <netinet/in.h>
#include "GraphicsTask.h"
#include "Dispatch.h"
#include "FlexBuffer.h"
#include "OLAF.h"
#include "OL-Data.h"
#include "Token.h"
#include "SearchEng.h"
#include "BookTasks.h"
#include "NodeData.h"
#include "NodeTask.h"
#include "DataBase.h"
#include "BookCaseDB.h"
#ifndef DtinfoClient
#include "PostScript.h"
#endif
#include "SearchPath.h"
#include "utility/funcs.h"
#include <X11/XWDFile.h>
GR_TYPE gtype;
extern FILE *graphics_taskin;
extern void get_type ();
const int GR_ENCODING_TEXT = 1;
//-------------------------------------------------------------------------
GR_TYPE
GraphicsTask::graphics_type( const char *gname )
{
gtype = GR_TYPE_UNKNOWN;
if ( !(graphics_taskin = fopen( gname, "r" )) ) {
throw(PosixError( errno, form("cannot open graphics file %s\n", gname)));
}
get_type();
if (gtype == GR_TYPE_UNKNOWN) {
if ((strstr(gname, ".cgm") != NULL) ||
(strstr(gname, ".CGM") != NULL))
{
gtype = GR_TYPE_CGM;
}
}
fclose(graphics_taskin);
// If the file is not cgm and if the lexer couldn't detect the graphics type,
// see if the graphic is an XWD file.
if (gtype == GR_TYPE_UNKNOWN) {
// Create header container
CARD32 header[sz_XWDheader];
XWDFileHeader *hdrptr;
FILE *fp;
if ( !(fp = fopen( gname, "r" )) ) {
throw(PosixError( errno,
form("cannot reopen graphics file %s\n", gname)));
}
hdrptr = (XWDFileHeader *)header;
// Initialize the structure
for (CARD32 ndx = 0; ndx < sz_XWDheader; ndx++) {
header[ndx] = (CARD32) 0;
}
if ( fread( &header[0], sizeof(*hdrptr), 1, fp ) == 1 ) {
// Normal fields into host byte-order
hdrptr->file_version = ntohl(hdrptr->file_version);
hdrptr->header_size = ntohl(hdrptr->header_size);
hdrptr->pixmap_width = ntohl(hdrptr->pixmap_width);
hdrptr->pixmap_height = ntohl(hdrptr->pixmap_height);
// Check some of the structure members to confirm the file type.
if ((hdrptr->file_version == XWD_FILE_VERSION) &&
(hdrptr->header_size > 0) &&
(hdrptr->pixmap_width > 0) &&
(hdrptr->pixmap_height > 0)) {
gtype = GR_TYPE_XWD;
}
}
fclose( fp );
}
return ( gtype );
}
//-------------------------------------------------------------------------
GraphicsTask::GraphicsTask( SearchEngine *parent, const Token &t )
{
f_base = t.level();
graphics_data = NULL;
f_parent = parent;
termsbuf = NULL;
f_title = 0;
if ( Dispatch::OutsideIgnoreScope() ) {
graphics_data = new OL_Data ( t, OLAF::OL_Graphic );
addSubTask( graphics_data );
if ( t.LookupAttr( OLAF::OL_Title ) ) {
f_title = new OL_Data(t, OLAF::OL_Title, IGNORE_ON );
if ( !f_title->DataWillBeAvailable() ) {
delete f_title;
f_title = 0;
}
else {
addSubTask(f_title);
}
}
}
}
//-------------------------------------------------------------------------
void
GraphicsTask::markup( const Token &t )
{
if ( f_base > 0 ) {
ComplexTask::markup( t );
if ( t.type() == START && !f_title ) {
if ( t.LookupAttr( OLAF::OL_Title ) ) {
f_title = new OL_Data(t, OLAF::OL_Title, IGNORE_ON );
if ( !f_title->DataWillBeAvailable() ) {
delete f_title;
f_title = 0;
}
else {
addSubTask(f_title);
}
}
}
if ( t.type() == END ) {
if ( Dispatch::OutsideIgnoreScope() ) {
if ( f_base == t.level() ) {
write_record( t );
KILLSUBTASK( graphics_data );
f_base = -1;
}
}
}
}
}
//-------------------------------------------------------------------------
void
GraphicsTask::write_record( const Token &t )
{
/*
* It is up to the client of graphics_data to determine how to
* interpret the content() , which will be treated as file name
*/
SearchPath *spath = Dispatch::GetSearchPath();
const char *file_name = graphics_data->content();
const char *grFileName = spath->get_real_path( file_name );
const char *bounding_box = "0.0.0.0";
GR_TYPE gr_type = GR_TYPE_UNKNOWN;
/*
* assuming that grFileName is actually corresponding to the
* final file where the graphical content is stored
*/
FlexBuffer graphics_buffer;
const char *size_info;
int graphics_available=0;
FILE *gp;
if ( grFileName ) {
gp = fopen ( grFileName, "r" );
if ( gp ) {
graphics_available=1;
int c;
while ( ( c=getc(gp) ) != EOF ) {
graphics_buffer.put(c);
}
fclose(gp);
switch ( (gr_type = graphics_type( grFileName )) ) {
case GR_TYPE_UNKNOWN :
{
cerr << "(WARNING) Unsupported graphics type found in "
<< grFileName << endl
<< " It is included in file " << t.file() << endl
<< " at line " << t.line() << endl;
}
break;
case GR_TYPE_POSTSCRIPT :
{
#ifndef DtinfoClient
PostScript *ps_store = new PostScript( grFileName );
bounding_box = ps_store->GetBoundingBox();
if ( ps_store->HasSearchTerms() ) {
termsbuf = ps_store->GetTermsBuffer();
}
delete ps_store;
#else
cerr << "(WARNING) Unsupported PostScript graphic found in "
<< grFileName << endl
<< " It is included in file " << t.file() << endl
<< " at line " << t.line() << endl;
#endif
}
break;
}
size_info = form("%d.%d.%s",
gr_type,
GR_ENCODING_TEXT,
bounding_box );
}
}
else {
cerr << "(WARNING) graphical file = " << file_name << endl
<< " included in file = " << t.file() << endl
<< " at line = " << t.line() << endl
<< " is not found, a zero length graphical data is used\n\n";
}
/* dump the graphics record */
NodeData *nodeData = f_parent->node_data();
const char *gid = nodeData->graphics_id();
BookTask *book = nodeData->node()->book();
const char *bookLocator = book->locator();
DBTable *gtab = book->bookcase()->table(BookCaseDB::Graphics);
gtab->insert( STRING_CODE, bookLocator,
STRING_CODE, gid,
STRING_CODE, "",
STRING_CODE, "v0",
STRING_CODE, graphics_available?size_info : "0.0.0.0.0.0",
-STRING_CODE, graphics_buffer.GetBuffer(),
graphics_buffer.GetSize(),
STRING_CODE, f_title?f_title->content():"",
NULL);
/*
if ( compress ) {
gtab->insert(STRING_CODE, gid,
STRING_CODE, "@@ graphcis name",
STRING_CODE, "v0",
STRING_CODE, "@@ type info",
COMPRESSED_STRING_CODE, "@@ CompressedAgent",
-STRING_CODE, graphics_buffer.GetBuffer(), graphics_buffer.GetBSize(),
STRING_CODE, "@@ graphics title" );
}
*/
}

View File

@@ -0,0 +1,53 @@
/* $XConsortium: GraphicsTask.h /main/3 1996/07/18 16:46:09 drk $ */
#ifndef GRAPHICS_TASK_HDR
#define GRAPHICS_TASK_HDR
#include "Task.h"
#include "FlexBuffer.h"
#include "oliasdb/olias_consts.h"
class Token;
class SearchEngine;
class OL_Data;
class GraphicsTask : public ComplexTask {
private:
int f_base;
SearchEngine *f_parent;
const FlexBuffer *termsbuf;
OL_Data *graphics_data;
OL_Data *f_title;
void write_record( const Token & );
GR_TYPE graphics_type( const char * );
public:
int IsDone() { return( f_base == -1 ); }
int HasSearchTerms() const;
const FlexBuffer *GetTerms() { return(termsbuf); }
public:
void markup ( const Token & );
GraphicsTask( SearchEngine *parent, const Token &t);
};
inline
int
GraphicsTask::HasSearchTerms() const
{
if ( !termsbuf ) {
return 0;
}
else {
FlexBuffer *tmpBuffer = ( FlexBuffer *)termsbuf;
return( tmpBuffer->GetSize() );
}
}
#endif

View File

@@ -0,0 +1,10 @@
/* $XConsortium: Handler.cc /main/2 1996/07/18 16:15:12 drk $ */
#include <stdio.h>
#include <stdlib.h>
//---------------------------------------------------------------------
void FreeStoreException()
{
fprintf(stderr,"(ERROR) Memory exhausted\n");
exit(1);
}

View File

@@ -0,0 +1,8 @@
/* $XConsortium: Handler.h /main/2 1996/07/18 16:46:29 drk $ */
#ifndef __HandlerH__
#define __HandlerH__
#include <new.h>
extern void FreeStoreException();
#endif

View File

@@ -0,0 +1,374 @@
XCOMM $TOG: Imakefile /main/27 1997/09/05 11:29:30 samborn $
DEPEND_DEFINES = $(CXXDEPENDINCLUDES)
#ifdef RegenParserFiles
XCOMM lex flags
LFLAGS=-Cf -L -8 -s
YFLAGS=-d
#endif
#ifdef DoLicenseManagement
LIC_FLAGS=-DLICENSE_MANAGEMENT
LIC_INCLUDES=$(LICENSE_L_INCLUDES) $(LICENSE_F_INCLUDES)
LIC_LIBS=$(LICENSE_L_LIBS)
#endif
#ifdef UseRWClasses
XCOMM make rogue into a defined item in site.def
INCLUDES=-I/VOB/olias/control/rogue
ROGUE_LIBS=$(RW_LIBDIR) $(RW_LIB)
#endif
INCLUDES=$(MMDB_INCLUDES) $(EXCEPTIONS_INCLUDES) \
$(MISC_INCLUDES) $(GLOBAL_INCLUDES) $(DBUG_INCLUDES) \
$(COMMON_CLASS_INCLUDES) $(LIC_INCLUDES)
MMDB_DIR=../../../mmdb
#ifdef AIXArchitecture
API_OBJS = \
$(MMDB_DIR)/api/base.o $(MMDB_DIR)/api/info_base.o \
$(MMDB_DIR)/api/info_lib.o $(MMDB_DIR)/api/smart_ptr.o \
$(MMDB_DIR)/api/transaction.o $(MMDB_DIR)/api/utility.o
BTREE_OBJS = \
$(MMDB_DIR)/btree/mmdb_btree.o
#if !defined(AIXArchitecture)
EXTRA_BTREE_BERKELEY_OBJS = $(MMDB_DIR)/btree_berkeley/memmove.o
#endif
BTREE_BERKELEY_OBJS = \
$(MMDB_DIR)/btree_berkeley/bt_close.o $(MMDB_DIR)/btree_berkeley/bt_conv.o \
$(MMDB_DIR)/btree_berkeley/bt_debug.o $(MMDB_DIR)/btree_berkeley/bt_delete.o \
$(MMDB_DIR)/btree_berkeley/bt_get.o $(MMDB_DIR)/btree_berkeley/bt_open.o \
$(MMDB_DIR)/btree_berkeley/bt_overflow.o $(MMDB_DIR)/btree_berkeley/bt_page.o \
$(MMDB_DIR)/btree_berkeley/bt_put.o $(MMDB_DIR)/btree_berkeley/bt_search.o \
$(MMDB_DIR)/btree_berkeley/bt_seq.o $(MMDB_DIR)/btree_berkeley/bt_split.o \
$(MMDB_DIR)/btree_berkeley/bt_stack.o $(MMDB_DIR)/btree_berkeley/bt_utils.o \
$(MMDB_DIR)/btree_berkeley/mktemp.o $(MMDB_DIR)/btree_berkeley/realloc.o \
$(MMDB_DIR)/btree_berkeley/snprintf.o $(EXTRA_BTREE_BERKELEY_OBJS) \
$(MMDB_DIR)/btree_berkeley/mpool.o $(MMDB_DIR)/btree_berkeley/db.o
COMPRESSION_OBJS = \
$(MMDB_DIR)/compression/abs_agent.o $(MMDB_DIR)/compression/zip.o \
$(MMDB_DIR)/compression/huffman.o $(MMDB_DIR)/compression/trie.o \
$(MMDB_DIR)/compression/code.o $(MMDB_DIR)/compression/lzss.o \
$(MMDB_DIR)/compression/sgml.o $(MMDB_DIR)/compression/ps.o
DISKHASH_OBJS = \
$(MMDB_DIR)/diskhash/disk_bucket.o $(MMDB_DIR)/diskhash/bucket_array.o \
$(MMDB_DIR)/diskhash/disk_hash.o
DSTR_OBJS = \
$(MMDB_DIR)/dstr/set.o $(MMDB_DIR)/dstr/bset.o \
$(MMDB_DIR)/dstr/slist.o $(MMDB_DIR)/dstr/dlist_cell.o \
$(MMDB_DIR)/dstr/dlist.o $(MMDB_DIR)/dstr/heap.o \
$(MMDB_DIR)/dstr/void_ptr_array.o $(MMDB_DIR)/dstr/void_ptr_stack.o \
$(MMDB_DIR)/dstr/memory_pool.o $(MMDB_DIR)/dstr/dstr_test.o \
$(MMDB_DIR)/dstr/index_agent.o $(MMDB_DIR)/dstr/token_stack.o \
$(MMDB_DIR)/dstr/slist_char_ptr_cell.o
DTI_EXCS_OBJS = \
$(MMDB_DIR)/dti_excs/Jump_Environment.o $(MMDB_DIR)/dti_excs/Exceptions.o \
$(MMDB_DIR)/dti_excs/Exception.o $(MMDB_DIR)/dti_excs/Destructable.o \
$(MMDB_DIR)/dti_excs/terminate.o
DYNHASH_OBJS = \
$(MMDB_DIR)/dynhash/data_t.o $(MMDB_DIR)/dynhash/imp_bucket.o \
$(MMDB_DIR)/dynhash/imp_die.o
HMPHF_OBJS = \
$(MMDB_DIR)/hmphf/buckets.o $(MMDB_DIR)/hmphf/mphf_funcs.o \
$(MMDB_DIR)/hmphf/mphf_hash_table.o $(MMDB_DIR)/hmphf/params.o \
$(MMDB_DIR)/hmphf/pattern.o $(MMDB_DIR)/hmphf/sorter.o
INDEX_OBJS = \
$(MMDB_DIR)/index/btree_index.o $(MMDB_DIR)/index/dyn_disk_index.o \
$(MMDB_DIR)/index/dyn_index.o $(MMDB_DIR)/index/dyn_memory_index.o \
$(MMDB_DIR)/index/fast_mphf.o $(MMDB_DIR)/index/hash.o \
$(MMDB_DIR)/index/index.o $(MMDB_DIR)/index/inv_lists.o \
$(MMDB_DIR)/index/mphf_index.o
MGRS_OBJS = \
$(MMDB_DIR)/mgrs/managers.o $(MMDB_DIR)/mgrs/misc.o \
$(MMDB_DIR)/mgrs/query_mgr.o $(MMDB_DIR)/mgrs/template_mgr.o
MISC_OBJS = \
$(MMDB_DIR)/misc/unique_id.o
OBJECT_OBJS = \
$(MMDB_DIR)/object/composite.o $(MMDB_DIR)/object/compressed_pstring.o \
$(MMDB_DIR)/object/cset.o $(MMDB_DIR)/object/dl_list.o \
$(MMDB_DIR)/object/dl_list_cell.o $(MMDB_DIR)/object/handler.o \
$(MMDB_DIR)/object/integer.o $(MMDB_DIR)/object/long_pstring.o \
$(MMDB_DIR)/object/oid.o $(MMDB_DIR)/object/oid_list.o \
$(MMDB_DIR)/object/oid_t.o $(MMDB_DIR)/object/primitive.o \
$(MMDB_DIR)/object/pstring.o $(MMDB_DIR)/object/random_gen.o \
$(MMDB_DIR)/object/root.o $(MMDB_DIR)/object/short_list.o \
$(MMDB_DIR)/object/tuple.o
OLIASDB_OBJS = \
$(MMDB_DIR)/oliasdb/asciiIn_filters.o $(MMDB_DIR)/oliasdb/collectionIterator.o \
$(MMDB_DIR)/oliasdb/dlp_hd.o $(MMDB_DIR)/oliasdb/dlp_test.o \
$(MMDB_DIR)/oliasdb/doc_hd.o $(MMDB_DIR)/oliasdb/doc_test.o \
$(MMDB_DIR)/oliasdb/graphic_hd.o $(MMDB_DIR)/oliasdb/graphic_test.o \
$(MMDB_DIR)/oliasdb/loc_test.o $(MMDB_DIR)/oliasdb/locator_hd.o \
$(MMDB_DIR)/oliasdb/mark.o $(MMDB_DIR)/oliasdb/mark_base.o \
$(MMDB_DIR)/oliasdb/mark_test.o $(MMDB_DIR)/oliasdb/mmdb.o \
$(MMDB_DIR)/oliasdb/node_hd.o $(MMDB_DIR)/oliasdb/node_test.o \
$(MMDB_DIR)/oliasdb/olias_funcs.o $(MMDB_DIR)/oliasdb/olias_test.o \
$(MMDB_DIR)/oliasdb/stylesheet_hd.o $(MMDB_DIR)/oliasdb/stylesheet_test.o \
$(MMDB_DIR)/oliasdb/toc_hd.o $(MMDB_DIR)/oliasdb/toc_test.o \
$(MMDB_DIR)/oliasdb/user_base.o
SCHEMA_OBJS = \
$(MMDB_DIR)/schema/desc.o $(MMDB_DIR)/schema/store_desc.o \
$(MMDB_DIR)/schema/object_dict.o $(MMDB_DIR)/schema/stored_object_desc.o \
$(MMDB_DIR)/schema/index_desc.o $(MMDB_DIR)/schema/inv_desc.o \
$(MMDB_DIR)/schema/agent_desc.o $(MMDB_DIR)/schema/container_desc.o \
$(MMDB_DIR)/schema/sheet.o $(MMDB_DIR)/schema/token.o
STORAGE_OBJS = \
$(MMDB_DIR)/storage/abs_storage.o $(MMDB_DIR)/storage/chunks_index.o \
$(MMDB_DIR)/storage/heap_comp_funcs.o $(MMDB_DIR)/storage/lru.o \
$(MMDB_DIR)/storage/page.o $(MMDB_DIR)/storage/page_cache.o \
$(MMDB_DIR)/storage/page_rep.o $(MMDB_DIR)/storage/page_storage.o \
$(MMDB_DIR)/storage/rep_cell.o $(MMDB_DIR)/storage/rep_policy.o \
$(MMDB_DIR)/storage/store_test.o $(MMDB_DIR)/storage/unixf_storage.o \
$(MMDB_DIR)/storage/version.o $(MMDB_DIR)/storage/vm_storage.o
UTILITY_OBJS = \
$(MMDB_DIR)/utility/funcs.o $(MMDB_DIR)/utility/ostring.o \
$(MMDB_DIR)/utility/pm_random.o $(MMDB_DIR)/utility/atoi_pearson.o \
$(MMDB_DIR)/utility/xtime.o $(MMDB_DIR)/utility/buffer.o \
$(MMDB_DIR)/utility/atoi_larson.o $(MMDB_DIR)/utility/atomic_lock.o \
$(MMDB_DIR)/utility/rw_lock.o $(MMDB_DIR)/utility/atoi_fast.o \
$(MMDB_DIR)/utility/filter.o $(MMDB_DIR)/utility/mmdb_exception.o \
$(MMDB_DIR)/utility/randomize.o
DTI_CC_OBJS = \
$(MMDB_DIR)/dti_cc/CC_Listbase.o $(MMDB_DIR)/dti_cc/cc_exceptions.o \
$(MMDB_DIR)/dti_cc/CC_String.o $(MMDB_DIR)/dti_cc/CC_Tokenizer.o \
$(MMDB_DIR)/dti_cc/CC_Stack.o $(MMDB_DIR)/dti_cc/CC_Slist.o
#if defined(HPArchitecture) || !defined(CplusplusCompilerMajorVersion) || (CplusplusCompilerMajorVersion != 4)
EXTRA_HARDCOPY_OBJS = $(MMDB_DIR)/HardCopy/TemplatesAutoNumber.o
#endif
HARDCOPY_OBJS = \
$(MMDB_DIR)/HardCopy/FPset.o $(MMDB_DIR)/HardCopy/HardCopyFP.o \
$(MMDB_DIR)/HardCopy/autoNumber.o $(MMDB_DIR)/HardCopy/autoNumberFP.o \
$(EXTRA_HARDCOPY_OBJS)
#if defined(HPArchitecture) || !defined(CplusplusCompilerMajorVersion) || (CplusplusCompilerMajorVersion != 4)
EXTRA_STYLESHEET_OBJS = $(MMDB_DIR)/StyleSheet/SSTemplates.o
#endif
STYLESHEET_OBJS = \
$(MMDB_DIR)/StyleSheet/Attribute.o $(MMDB_DIR)/StyleSheet/AttributeList.o \
$(MMDB_DIR)/StyleSheet/BitVector.o $(MMDB_DIR)/StyleSheet/DocParser.o \
$(MMDB_DIR)/StyleSheet/Element.o $(MMDB_DIR)/StyleSheet/Expression.o \
$(MMDB_DIR)/StyleSheet/Feature.o $(MMDB_DIR)/StyleSheet/FeatureDefDictionary.o \
$(MMDB_DIR)/StyleSheet/FeatureSet.o $(MMDB_DIR)/StyleSheet/FeatureValue.o \
$(MMDB_DIR)/StyleSheet/PathQualifier.o $(MMDB_DIR)/StyleSheet/PathTable.o \
$(MMDB_DIR)/StyleSheet/Resolver.o $(MMDB_DIR)/StyleSheet/ResolverStack.o \
$(MMDB_DIR)/StyleSheet/SSPath.o $(MMDB_DIR)/StyleSheet/StyleSheet.o \
$(MMDB_DIR)/StyleSheet/StyleSheetExceptions.o \
$(MMDB_DIR)/StyleSheet/SymTab.o $(MMDB_DIR)/StyleSheet/VariableTable.o \
$(MMDB_DIR)/StyleSheet/defParser.o $(MMDB_DIR)/StyleSheet/defToken.o \
$(MMDB_DIR)/StyleSheet/style.o $(MMDB_DIR)/StyleSheet/tokenStyle.o \
$(MMDB_DIR)/StyleSheet/RendererHCV.o $(EXTRA_STYLESHEET_OBJS)
MMDB_OBJS = $(HARDCOPY_OBJS) $(STYLESHEET_OBJS) $(DTI_CC_OBJS)
ALL_MMDB_OBJS = $(API_OBJS) $(BTREE_OBJS) \
$(BTREE_BERKELEY_OBJS) $(COMPRESSION_OBJS) \
$(DISKHASH_OBJS) $(DSTR_OBJS) \
$(DTI_EXCS_OBJS) $(DYNHASH_OBJS) \
$(HMPHF_OBJS) $(INDEX_OBJS) \
$(MGRS_OBJS) $(MISC_OBJS) \
$(OBJECT_OBJS) $(OLIASDB_OBJS) \
$(SCHEMA_OBJS) $(STORAGE_OBJS) \
$(UTILITY_OBJS) $(MMDB_OBJS)
#endif
#ifdef AIXArchitecture
Libs = $(LINKLIBS) $(ALL_MMDB_OBJS) $(LIC_LIBS) $(DBUG_LIBS) $(DTSVCLIB) $(TTLIB) $(MATH_LIB)
#else
Libs = $(LINKLIBS) $(MMDB_LIBS) $(LIC_LIBS) $(DBUG_LIBS) $(MATH_LIB)
#endif
#ifdef UseQSearch
SEARCHENG=QSearch
#else
#ifdef UseDtSearch
SEARCHENG=AusText
#endif
#endif
#ifdef UseDtSearch
SEARCH_SRCS=$(SEARCHENG).C $(SEARCHENG)Storage.C
SEARCH_OBJS=$(SEARCHENG).o $(SEARCHENG)Storage.o
#else
SEARCH_OBJS=$(SEARCHENG)
#endif
NORMAL_SRCS = \
AttributeData.C \
AttributeList.C \
AttributeRec.C \
BookCaseDB.C \
BookTasks.C \
BTCollectable.C \
ConcatTask.C \
Content.C \
OL_DataExpr.C \
ContentType.C \
DataBase.C \
DataTask.C \
DataRepository.C \
Dispatch.C \
EntityList.C \
Expression.C \
ExprList.C \
FirstOf.C \
FlexBuffer.C \
GenericId.C \
gr_type.C \
GraphicsTask.C \
Handler.C \
LcfTask.C \
NodeData.C \
NodeTask.C \
OL-Data.C \
OLAF.C \
ReplaceIdIdref.C \
SGMLDefn.C \
SGMLName.C \
SearchEng.C \
SearchPath.C \
SearchStorage.C \
StringList.C \
StyleTask.C \
StyleTaskDB.C \
StyleValidate.C \
TOCTask.C \
Task.C \
Token.C \
lex.C
NORMAL_OBJS = $(NORMAL_SRCS:.C=.o) $(SEARCH_OBJS)
SRCS=$(NORMAL_SRCS) $(SEARCH_SRCS)
#ifndef DtinfoClient
OBJS=$(NORMAL_OBJS) PostScript.o
#else
OBJS=$(NORMAL_OBJS)
#endif
CMD_SRCS = NodeParser.C \
NCFGen.C \
MixedGen.C \
RemoteId.C \
StyleUpdate.C
CMD_OBJS = $(CMD_SRCS:.C=.o)
XCOMM #######################################
XCOMM Template handling
XCOMM #######################################
#if defined(SunArchitecture) && CplusplusCompilerMajorVersion > 3
all::$(CMD_OBJS)
SimpleLibraryT(OLAFParse,$(OBJS),$(LIBDIR))
SimpleCPlusPlusProgram(NodeParser, NodeParser.o libOLAFParse.a libOLAFParseT.a,$(Libs))
SimpleCPlusPlusProgram(NCFGen, NCFGen.o libOLAFParse.a libOLAFParseT.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(MixedGen, MixedGen.o RemoteId.o libOLAFParse.a libOLAFParseT.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(StyleUpdate, StyleUpdate.o libOLAFParse.a libOLAFParseT.a,$(Libs) $(DTSVCLIB) $(TTLIB))
#else
TEMPLATE_OBJS = TKTemplate.o
RealLibrary(OLAFParse,$(OBJS),$(LIBDIR))
SimpleCPlusPlusProgram(NodeParser, NodeParser.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs))
SimpleCPlusPlusProgram(NCFGen, NCFGen.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(MixedGen, MixedGen.o RemoteId.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(StyleUpdate, StyleUpdate.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(TTLIB))
#ifdef HPArchitecture
SpecialCPlusPlusObjectRule($(TEMPLATE_OBJS),,+pti all_tmpls)
#else
#if defined(UXPArchitecture) || (defined(SunArchitecture) && CplusplusCompilerMajorVersion < 4)
SpecialCPlusPlusObjectRule($(TEMPLATE_OBJS),,+Tall_tmpls)
#endif
#endif
#endif
XCOMM lex.C gr_type.C ReplaceIdIdref.C ContentType.C RemoteId.C
XCOMM and OL_DataExpr.C are generated from flex and byacc files
#ifdef RegenParserFiles
SimpleCPlusPlusLexTarget(lex)
LexTarget (gr_type,graphics_task)
LexTarget (ReplaceIdIdref,nodedata)
LexTarget (ContentType,ol_data)
LexTarget (RemoteId,remote)
YaccTarget(OL_DataExpr,ol_data)
#else
OL_DataExpr.o : OL_DataExpr.C
CplusObjectCompile($(_NOOP_))
ContentType.o : ContentType.C
CplusObjectCompile($(_NOOP_))
gr_type.o : gr_type.C
CplusObjectCompile($(_NOOP_))
ReplaceIdIdref.o : ReplaceIdIdref.C
CplusObjectCompile($(_NOOP_))
lex.o : lex.C
CplusObjectCompile($(_NOOP_))
RemoteId.o : RemoteId.C
CplusObjectCompile($(_NOOP_))
#endif
XCOMM This passes BookTasks.C the necessary flag to compile-in licensing
SpecialCPlusPlusObjectRule(BookTasks.o,,$(LIC_FLAGS))
InstallBuildToolsBinary(NodeParser)
InstallBuildToolsBinary(NCFGen)
InstallBuildToolsBinary(MixedGen)
InstallBuildToolsBinary(StyleUpdate)
InstallBuildToolsScript(dtinfogen)
InstallBuildToolsBinary(dtinfogen_worker)
#ifndef DtinfoClient
InstallMultipleDest(install_buildtools,psbox.ps,$(INSTALL_ETC_DIR))
#endif
XCOMM symlinks used by dtinfogen when run from the build tree
LinkSourceFile(hardcopy.feature.spec,$(CDELIBSRC)/DtMmdb/StyleSheet)
LinkSourceFile(online.feature.spec,$(CDELIBSRC)/DtMmdb/StyleSheet)
LinkSourceFile(mmdb.infolib.spec,$(CDELIBSRC)/DtMmdb/oliasdb)
LinkSourceFile(dtsr,$(PROGRAMSRC))
LinkFile(C.ISO-8859-1,$(PROGRAMSRC)/localized/C)
LinkFile(de_DE.ISO-8859-1,$(PROGRAMSRC)/localized/de_DE.ISO8859-1)
LinkFile(es_ES.ISO-8859-1,$(PROGRAMSRC)/localized/es_ES.ISO8859-1)
LinkFile(fr_FR.ISO-8859-1,$(PROGRAMSRC)/localized/fr_FR.ISO8859-1)
LinkFile(it_IT.ISO-8859-1,$(PROGRAMSRC)/localized/it_IT.ISO8859-1)
LinkFile(ja_JP.EUC-JP,$(PROGRAMSRC)/localized/ja_JP.dt-eucJP)
LinkFile(C,C.ISO-8859-1)
#if defined(SunArchitecture)
SYS_LIBRARIES = -lgen
#endif
DEPLIBS2 = $(DEPDTSVCLIB) $(DEPTTLIB) /* $(DEPXMLIB) $(DEPXTOOLLIB) $(DEPXLIB) */
LOCAL_LIBRARIES2 = $(DTSVCLIB) $(TTLIB) $(XMLIB) $(XTOOLLIB) $(XLIB)
SRCS2 = dtinfogen_worker.c
OBJS2 = dtinfogen_worker.o
AllTarget(dtinfogen_worker)
ComplexProgramTarget_2(dtinfogen_worker,$(LOCAL_LIBRARIES2),NullParameter)
clean::
RemoveFiles(dtinfogen_worker)
DependTarget3($(NORMAL_SRCS),$(CMD_SRCS),$(SRCS2))

View File

@@ -0,0 +1,114 @@
/* $XConsortium: LcfTask.C /main/3 1996/10/26 18:17:58 cde-hal $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
/* exported interfaces */
#include "LcfTask.h"
/* imported interfaces */
#include <assert.h>
#include "Token.h"
#include "NodeTask.h"
#include "DataBase.h"
#include "OL-Data.h"
#include "OLAF.h"
#include "BookTasks.h"
#include "BookCaseDB.h"
//--------------------------------------------------------------------
LcfTask::LcfTask( NodeTask *f_parent, const Token &t )
{
assert( f_parent != NULL );
f_node = f_parent;
f_base = t.level();
}
//--------------------------------------------------------------------
void
LcfTask::markup( const Token &t )
{
ComplexTask::markup(t);
if ( t.type() == START ) {
if ( t.LookupAttr( OLAF::OL_id ) ) {
OL_Data *LocData = new OL_Data ( t, OLAF::OL_id, REMOVE_SPACES );
/*
* Add subtask only if I know Data will be available
*/
if ( LocData->DataWillBeAvailable() ) {
addSubTask( LocData );
OL_Data *RefData = new OL_Data(t, OLAF::OL_XRefLabel, IGNORE_ON);
addSubTask( RefData );
}
else { delete LocData; }
}
}
else if ( t.type() == END ) {
/* only write out all the locator if I am at the end f_node */
if ( t.level() == f_base ) {
write_record();
reset();
}
}
}
//--------------------------------------------------------------------
void
LcfTask::reset()
{
ComplexTask::removeAllSubTasks();
}
//--------------------------------------------------------------------
void
LcfTask::write_record()
{
const char *NodeLocator = f_node->locator();
#if 0
for ( int i = 0; i < ComplexTask::used; i++ ) {
OL_Data *task = (OL_Data * )subtask(i);
if ( !task->ContentIsEmpty() ) {
DBTable *tbl = f_node->book()->bookcase()->table(BookCaseDB::Locator);
tbl->insert( STRING_CODE, task->content(),
STRING_CODE, NodeLocator,
STRING_CODE, task->filename(),
INTEGER_CODE, task->line_no(),
NULL);
}
}
#else
for ( int i = 0; i < ComplexTask::used; i+=2 ) {
OL_Data* task = (OL_Data * )subtask(i);
OL_Data* reftask = (OL_Data * )subtask(i+1);
if ( !task->ContentIsEmpty() ) {
DBTable *tbl = f_node->book()->bookcase()->table(BookCaseDB::Locator);
const char* reflabel = "";
if ( !reftask->ContentIsEmpty() ) {
const char* content = reftask->content();
if (strlen(content) < 256)
reflabel = content;
}
tbl->insert( STRING_CODE, task->content(),
STRING_CODE, NodeLocator,
STRING_CODE, reflabel,
STRING_CODE, task->filename(),
INTEGER_CODE, task->line_no(),
NULL);
}
}
#endif
}

View File

@@ -0,0 +1,27 @@
/* $XConsortium: LcfTask.h /main/2 1996/07/18 16:46:47 drk $ */
#ifndef LCF_TASK_H
#define LCF_TASK_H
#include "Task.h"
class NodeTask;
class LcfTask : public ComplexTask{
friend class NodeTask;
public:
LcfTask( NodeTask *f_parent , const Token &t );
void markup(const Token& t);
protected:
void reset();
void write_record();
// void setNode(NodeTask *n) { f_node = n; }
private:
NodeTask *f_node;
int f_base;
};
#endif /* LcfTask.h */

View File

@@ -0,0 +1,32 @@
/* $XConsortium: Literal.h /main/2 1996/07/18 16:47:09 drk $ */
#ifndef __Lithdr__
#define __Lithdr__
#include "BaseDataCollect.h"
#include "FlexBuffer.h"
class Token;
class Literal : public BaseData {
friend class FirstOf;
friend class OL_Data;
friend class Concat;
protected:
Literal( const Token &t, const char *str, ActionType mode );
};
inline
Literal::Literal( const Token &t,
const char *str,
ActionType mode ):BaseData(t, mode)
{
data_complete = 1;
if ( str ) {
ValueBuffer.writeStr( str );
}
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,344 @@
/* $XConsortium: NCFGen.C /main/9 1996/08/21 15:47:02 drk $ */
#include <stdio.h>
#include <stdlib.h>
#if !defined(__uxp__) && !defined(USL)
#include <strings.h>
#endif
#include <strstream.h>
#include "Exceptions.hh"
#include "DataBase.h"
#include "BookCaseDB.h"
#include "Task.h"
#include "Handler.h"
#include "StyleValidate.h"
#include "Token.h"
/* MMDB interfaces */
#include "oliasdb/mmdb.h"
#include "oliasdb/asciiIn_filters.h"
#include "oliasdb/olias_consts.h"
#include "oliasdb/stylesheet_hd.h"
/* Hash table interfaces */
#include "dti_cc/CC_String.h"
#include "dti_cc/cc_hdict.h"
#include "BTCollectable.h"
#ifdef FISH_DEBUG
#include "dbug.h"
#endif
#define SKIP_CODE -1
static unsigned hash_func(const CC_String &str)
{
return str.hash();
}
//-------------------------------------------------------------------------
static void
writeStyleSheets(BookCaseDB& db)
{
DBTable *out = db.DB::table(DATABASE_STDIO,
STYLESHEET_CODE, BT_NUM_STYLESHEET_FIELDS,
DB::CREATE);
DBTable *in = db.table(BookCaseDB::StyleSheet, DB::READ);
DBCursor cursor(*in);
const char *name;
const char *online;
int len_o;
const char *print;
int len_p;
int statusO = 0;
int statusP = 0;
while(cursor.next(STRING_CODE, &name,
-STRING_CODE, &online, &len_o,
-STRING_CODE, &print, &len_p,
NULL)){
if( statusO=validate_stylesheet( online, len_o, ONLINE )){
Token::signalError(Token::User, Token::Continuable, 0, 0,
"Online style sheet for `%s' is invalid.", name);
}
if( statusP=validate_stylesheet( print, len_p, PRINT )){
Token::signalError(Token::User, Token::Continuable, 0, 0,
"Print style sheet for `%s' is invalid.", name);
}
if ( statusO || statusP ) {
throw(Unexpected("Style sheet validation failed\n"));
}
out->insert(STRING_CODE, name,
-STRING_CODE, online, len_o,
-STRING_CODE, print, len_p,
NULL);
}
delete out;
}
//-------------------------------------------------------------------------
static void
buildNCF(BookCaseDB& db, const char *base_name, int compressed)
{
DBTable *ncf = db.DB::table(DATABASE_STDIO,
OLIAS_NODE_CODE, BT_NUM_OLIAS_NODE_FIELDS,
DB::CREATE);
DBTable *nodeMeta = db.table(BookCaseDB::NodeMeta, DB::READ);
DBCursor cursor(*nodeMeta);
const char *bookLocator;
const char *nodeLocator;
const char *filename;
int line_num;
const char *title;
const char *stitle;
const char *style;
int dupID = 0;
OLIAS_DB mmdb_handle;
info_lib *mmdb =
mmdb_handle.openInfoLib(getenv("MMDB_PATH"), (char*)base_name);
info_base *base_ptr = mmdb->get_info_base(base_name);
const int BUFSIZE=30;
hashTable<CC_String,BTCollectable> node_dict(hash_func); // Hash table...
if ( compressed ) {
// 30 will be enough for now.
const int COMPRESSED_AGENT_SIZE=30;
char comp_agent[COMPRESSED_AGENT_SIZE];
// was bzero before, but unable to find bzero on solaris
for ( int i = 0; i < COMPRESSED_AGENT_SIZE; i++ ) {
comp_agent[i] = 0;
}
ostrstream str_buf( comp_agent,COMPRESSED_AGENT_SIZE);
handler *x = (base_ptr->get_obj_dict()).get_handler(
form("%s.%s", base_name, "sgml.dict"));
x->its_oid().asciiOut(str_buf);
while(cursor.next(STRING_CODE, &bookLocator,
STRING_CODE, &nodeLocator,
STRING_CODE, &filename,
INTEGER_CODE, &line_num,
SKIP_CODE, /* TOC num */
STRING_CODE, &title,
STRING_CODE, &stitle,
STRING_CODE, &style,
NULL)){
CC_String *key = new CC_String(nodeLocator);
// check for duplicate node locator
BTCollectable *val = node_dict.findValue( key );
if ( val ) {
delete key;
dupID++;
cerr << "(ERROR) Duplicate section ID = " << nodeLocator << endl
<< " found in file = " << filename << endl
<< " at line = " << line_num << endl
<< " is in conflict with " << endl
<< " section ID = " << nodeLocator << endl
<< " in file = " << val->filename() << endl
<< " at line = " << val->linenum() << "\n\n";
}
else {
BTCollectable *val = new BTCollectable( filename,
line_num,
bookLocator);
node_dict.insertKeyAndValue( key, val );
}
stylesheet_smart_ptr sheet(base_ptr, style);
char oid_buf[BUFSIZE];
ostrstream strout(oid_buf,BUFSIZE,ios::out);
sheet.its_oid().asciiOut(strout);
oid_buf[strout.pcount()] = NULL;
ncf->insert(STRING_CODE, nodeLocator,
STRING_CODE, title,
STRING_CODE, stitle,
COMPRESSED_STRING_CODE, comp_agent, "",
STRING_CODE, bookLocator,
OID_CODE, "0.0", /* pointer to Book/CCF/DOC object */
OID_CODE, oid_buf,
NULL);
}
}
else {
while(cursor.next(STRING_CODE, &bookLocator,
STRING_CODE, &nodeLocator,
STRING_CODE, &filename,
INTEGER_CODE, &line_num,
SKIP_CODE, /* TOC num */
STRING_CODE, &title,
STRING_CODE, &stitle,
STRING_CODE, &style,
NULL)){
CC_String *key = new CC_String(nodeLocator);
// check for duplicate node locator
BTCollectable *val = node_dict.findValue( key );
if ( val ) {
delete key;
dupID++;
cerr << "(ERROR) Duplicate section ID = " << nodeLocator << endl
<< " found in file = " << filename << endl
<< " at line = " << line_num << endl
<< " is in conflict with " << endl
<< " section ID = " << nodeLocator << endl
<< " in file = " << val->filename() << endl
<< " at line = " << val->linenum() << "\n\n";
}
else {
BTCollectable *val = new BTCollectable( filename,
line_num,
bookLocator );
node_dict.insertKeyAndValue( key , val );
}
stylesheet_smart_ptr sheet(base_ptr, style);
char oid_buf[BUFSIZE];
ostrstream strout(oid_buf,BUFSIZE,ios::out);
sheet.its_oid().asciiOut(strout);
oid_buf[strout.pcount()] = NULL;
ncf->insert(STRING_CODE, nodeLocator,
STRING_CODE, title,
STRING_CODE, stitle,
STRING_CODE, "",
STRING_CODE, bookLocator,
OID_CODE, "0.0", /* pointer to Book/CCF/DOC object */
OID_CODE, oid_buf,
NULL);
}
}
if ( dupID ) {
throw(Unexpected(
form("Number of duplicated section ID found = %d", dupID)
));
}
delete ncf;
node_dict.clearAndDestroy();
}
//-------------------------------------------------------------------------
static void
usage(const char *progname)
{
fprintf(stderr, "usage: %s [-compressed] [-load-style] <bookcasename> <bookcasedir>\n", progname);
exit(1);
}
//-------------------------------------------------------------------------
main(int argc, char **argv)
{
INIT_EXCEPTIONS();
set_new_handler( FreeStoreException );
int ret = 1;
const char *progname = argv[0];
int compressed = 0;
int load_style_only = 0;
#ifdef FISH_DEBUG
DBUG_PROCESS(argv[0]);
if(getenv("FISH_DBUG")) DBUG_PUSH(getenv("FISH_DBUG"));
#endif
argv++;
argc--;
while(argc > 0 && argv[0][0] == '-'){
const char *opt = argv[0];
argv++;
argc--;
if(strcmp(opt, "-compressed") == 0){
compressed = 1;
}
else if ( strcmp(opt, "-load-style") == 0 ) {
load_style_only = 1;
}
else {
usage(progname);
}
}
if(argc == 2){
const char *base_name = argv[0];
const char *bookcaseDir = argv[1];
try{
BookCaseDB db(bookcaseDir);
if ( load_style_only ) {
writeStyleSheets(db);
}
else {
buildNCF(db, base_name, compressed);
}
ret = 0;
}
catch(PosixError&, pe){
fprintf(stderr, "%s: error on %s: %s\n",
progname, bookcaseDir, pe.msg());
}
catch(Unexpected&, pe) {
fprintf(stderr, "(ERROR) %s\n\n", pe.msg() );
}
catch(mmdbException&, e) {
cerr << e;
}
catch_any() {
fprintf(stderr, "*** Internal Error ***: unexpected exception\n");
abort();
}end_try;
}else{
usage(progname);
}
return ret;
}

View File

@@ -0,0 +1,436 @@
/* $XConsortium: NodeData.C /main/4 1996/09/24 16:55:25 cde-hal $
*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
/* exported interfaces... */
#include "NodeData.h"
/* imported interfaces... */
#include <iostream.h>
#include <stream.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include "Token.h"
#include "FlexBuffer.h"
#include "NodeTask.h"
#include "SearchEng.h"
#include "OLAF.h"
#include "SGMLName.h"
#include "OL-Data.h"
#include "BookTasks.h"
#include "DataBase.h"
#include "BookCaseDB.h"
#include "GraphicsTask.h"
#include "Dispatch.h"
#ifdef UseQSearch
#include "QSearch.h"
#else
#ifdef FULCRUM
#include "Fulcrum.h"
#else
#ifdef DTSEARCH
#include "AusText.h"
#endif
#endif
#endif
// Debugging macro
#ifdef DEBUG
#define DBG(level) if ( dbgLevel >= level)
#else
#define DBG(level) if (0)
#endif
static int dbgLevel=-1;
extern void ReplaceIdIdRef( NodeData *, char *, int );
//----------------------------------------------------------------
void
replace_entity( FlexBuffer *buf , const char *str)
{
int len = strlen( str );
int i;
const char *ptr;
for ( i = 0, ptr = str;
i < len;
i++, ptr++ ) {
switch ( *ptr )
{
case '\n':
buf->writeStr("&lnfeed;");
break;
case '&':
buf->writeStr("&amp;");
break;
case '\240':
buf->writeStr("&nbsp;");
break;
case '<':
buf->writeStr("&lt;");
break;
default:
buf->put( *ptr );
}
}
}
//--------------------------------------------------------------------
void
NodeData::write_start_tag( const Token &t, FlexBuffer *buffer )
{
const AttributeRec *LinkRec = t.LookupAttr( OLAF::OL_idref );
const AttributeRec *IdRec = t.LookupAttr( OLAF::OL_id );
const AttributeRec *XRefRec = t.LookupAttr( OLAF::OL_XRef );
const AttributeRec *GraphicExist = t.LookupAttr( OLAF::OL_Graphic );
if ( t.LookupAttr( OLAF::OL_Ignore ) ) {
if ( IdRec ) {
buffer->writeStr("<%BOGUS><#><#OL-ID>");
char *str = form("%d", seq_no );
buffer->writeStr( str );
buffer->writeStr( "</#OL-ID><#LAST>0</#LAST></#></%BOGUS>" );
seq_no++;
addSubTask( new OL_Data ( t, OLAF::OL_id, REMOVE_SPACES ) );
return;
}
}
if ( Dispatch::OutsideIgnoreScope() ) {
/* write the start tag */
char *str = form("<%s>", t.giName() );
buffer->writeStr( str );
/* write out all the attribute name and value */
// if ( t.GetFirstAttr() || LinkRec || IdRec || GraphicExist ) {
// Always output the attribute tag container because we'll always have
// position data.
buffer->writeStr ( "<#>" );
// }
for ( const AttributeRec *a = t.GetFirstAttr();
a;
a = t.GetNextAttr(a) ) {
/* write the start tag */
const char *attName = SGMLName::lookup( a->getAttrName() );
/* write the attribute start tag */
char *start_tag = form("<%s>",attName);
buffer->writeStr( start_tag );
/* write the attribute value */
replace_entity ( buffer, a->getAttrValueString() );
/* write the attribute end tag */
char *end_tag = form("</%s>", attName );
buffer->writeStr( end_tag );
}
if ( LinkRec ) {
char *str = form ( "<#OL-IDREF>%d</#OL-IDREF>", seq_no );
buffer->writeStr(str);
seq_no++;
addSubTask( new OL_Data ( t, OLAF::OL_idref, REMOVE_SPACES ) );
}
if ( GraphicExist ) {
char *str = form("<#GRAPHIC>%d</#GRAPHIC>", seq_no );
buffer->writeStr( str );
seq_no++;
current_graphics_id = new OL_Data(t, OLAF::OL_id, GENERATE_ID);
addSubTask( current_graphics_id );
}
if ( IdRec ) {
char *str = form("<#OL-ID>%d</#OL-ID>", seq_no );
buffer->writeStr( str );
seq_no++;
addSubTask( new OL_Data ( t, OLAF::OL_id, REMOVE_SPACES ) );
}
if ( XRefRec ) {
char *str = form("<#OL-XREF>%d</#OL-XREF>", seq_no );
buffer->writeStr( str );
seq_no++;
addSubTask( new OL_Data ( t, OLAF::OL_XRef, REMOVE_SPACES ) );
}
if ( GraphicExist ) {
/*
* delay the writing of </#> until potential search terms are generated
*/
return;
}
// if ( t.GetFirstAttr() || LinkRec || IdRec ) {
buffer->writeStr("<#LAST>0</#LAST></#>");
// }
}
}
//---------------------------------------------------------------------
static void
write_end_tag( const Token &t, FlexBuffer *buffer)
{
if ( Dispatch::OutsideIgnoreScope() ) {
char *str = form("</%s>", t.giName() );
buffer->writeStr( str );
}
}
//---------------------------------------------------------------------
NodeData::NodeData( NodeTask *parent, const Token &t)
{
char *dbgStr;
dbgStr = getenv ( "OL_DEBUG");
dbgLevel = ( dbgStr ? atoi(dbgStr) : 0 );
f_node = parent;
f_base = t.level();
CollectObject = -1;
NodeBuffer = new FlexBuffer();
DbBuffer = new FlexBuffer();
seq_no = 0;
current_graphics_id = NULL;
/* f_search is managed explicitly */
/* This probably has to be #ifdef FULCRUM */
#ifdef FULCRUM
f_search = new Fulcrum ( this, t );
#else
#ifdef UseQSearch
f_search = new QSearch ( this, t );
#else
#ifdef DTSEARCH
f_search = new AusText( this, t );
#endif
#endif
#endif
write_start_tag ( t, NodeBuffer );
}
//---------------------------------------------------------------------
NodeData::~NodeData()
{
assert(f_base < 0); /* for debugging NodeTask/NodeData interaction */
reset();
delete NodeBuffer;
delete DbBuffer;
}
//---------------------------------------------------------------------
void
NodeData::markup( const Token &t )
{
if ( f_base > 0 ) {
ComplexTask::markup(t);
if ( f_search ) {
f_search->markup( t );
}
if ( t.type() == START ) {
if ( CollectObject >= 0 ) {
write_start_tag ( t, internal_buffer );
}
else {
if ( t.LookupAttr( OLAF::OL_Graphic ) ) {
CollectObject = t.level();
internal_buffer = new FlexBuffer();
assert(internal_buffer != NULL);
}
write_start_tag ( t, NodeBuffer );
}
}
else if ( t.type() == END ) {
if ( Dispatch::OutsideIgnoreScope() ) {
if ( CollectObject >= 0 ) {
if ( t.level() == CollectObject ) {
if ( f_search->HasSearchTerms() ) {
FlexBuffer *buffer = (FlexBuffer *)
f_search->DumpSearchTerms();
/*
* write out the searchable terms in attribute format
*/
NodeBuffer->writeStr("<#TERMS>");
NodeBuffer->write ( buffer->GetBuffer(),
buffer->GetSize() );
NodeBuffer->writeStr("</#TERMS>");
}
NodeBuffer->writeStr("<#LAST>0</#LAST></#>");
/* write out all the other data/tags that are found within the
* graphic tags
*/
*NodeBuffer = *NodeBuffer + *internal_buffer;
write_end_tag ( t, NodeBuffer );
current_graphics_id = NULL;
CollectObject = -1;
delete internal_buffer;
}
else {
write_end_tag ( t, internal_buffer );
}
}
else { /* ie not collecting oject */
write_end_tag( t , NodeBuffer);
}
if ( f_base == t.level() ) {
write_record();
reset();
}
}
} /* if ( t.type() == END ) */
} /* if ( f_base > 0 ) */
}
//---------------------------------------------------------------------
void
NodeData::reset()
{
f_base = -1;
NodeBuffer->reset();
DbBuffer->reset();
if ( f_search ) {
delete f_search;
f_search = NULL;
}
ComplexTask::removeAllSubTasks();
}
//---------------------------------------------------------------------
void
NodeData::data ( const char *str, size_t t )
{
if ( f_base > 0 ) {
ComplexTask::data( str, t );
if ( f_search ) {
f_search->data( str, t );
}
if ( Dispatch::OutsideIgnoreScope() ) {
if (CollectObject < 0) {
replace_entity( NodeBuffer, str );
}
else {
replace_entity( internal_buffer, str );
}
}
}
}
//---------------------------------------------------------------------
void
NodeData::write_record()
{
DBG(20) printf("Node Before replacement is %s\n", NodeBuffer->GetBuffer());
ReplaceIdIdRef( this, (char *)NodeBuffer->GetBuffer(),
NodeBuffer->GetSize() );
/*
* write out the whole record
*/
const char *TocLocator = f_node->book()->locator();
const char *NodeLocator = f_node->locator();
DBTable *tbl = f_node->book()->bookcase()->table(BookCaseDB::NodeSGML);
tbl->insert(STRING_CODE, TocLocator,
STRING_CODE, NodeLocator,
-STRING_CODE, DbBuffer->GetBuffer(), DbBuffer->GetSize(),
NULL);
/*
DBTable *ltab = f_node->book()->bookcase()->table(BookCaseDB::Link);
for ( int i = 0; i < ComplexTask::used; i++ ) {
OL_Data *Task = ( OL_Data * )ComplexTask::subtask(i);
ltab->insert( STRING_CODE, NodeLocator,
INTEGER_CODE, StartingSeqNo + i,
STRING_CODE, Task->content(),
NULL
);
}
*/
}
//---------------------------------------------------------------------
const char *
NodeData::graphics_id()
{
if ( !current_graphics_id ) {
throw(Unexpected("Graphics ID not available"));
}
if ( current_graphics_id->ContentIsEmpty() ) {
throw(Unexpected("An ID could not be found for the graphical object"));
}
return ( current_graphics_id->content() );
}

View File

@@ -0,0 +1,46 @@
/* $XConsortium: NodeData.h /main/2 1996/07/18 16:47:34 drk $ */
// NodeData.h
#ifndef NODEDATA_HEADER
#define NODEDATA_HEADER
#include "Task.h"
class Token;
class FlexBuffer;
class NodeTask;
class SearchEngine;
class OL_Data;
class NodeData : public ComplexTask {
friend int nodedatalex();
public:
NodeData( NodeTask *, const Token & );
~NodeData();
void markup( const Token & );
void data(const char *, size_t );
NodeTask *node() const { return f_node; }
const char *graphics_id();
protected:
NodeTask *f_node;
FlexBuffer *NodeBuffer;
int CollectObject;
int f_base;
SearchEngine *f_search;
void write_record();
void reset();
private:
int seq_no;
FlexBuffer *DbBuffer;
FlexBuffer *internal_buffer;
OL_Data *current_graphics_id;
void write_start_tag( const Token &t, FlexBuffer *buf );
};
#endif

View File

@@ -0,0 +1,111 @@
/* $XConsortium: NodeParser.C /main/6 1996/08/21 15:47:06 drk $ */
#include <stdio.h>
#include "dti_cc/CC_Stack.h"
#include "Exceptions.hh"
#include "DataBase.h"
#include "Dispatch.h"
#include "SearchPath.h"
#include "Task.h"
#include "BookTasks.h"
#include "OLAF.h"
#ifdef FISH_DEBUG
#include "dbug.h" /* Fred Fish's dbug.h */
#endif
#include "Handler.h"
//---------------------------------------------------------------------
int main(int argc, char **argv)
{
INIT_EXCEPTIONS();
/* can't seem to get C++ initialization stuff to do this... */
OLAF::init();
set_new_handler( FreeStoreException );
int ret = 1;
#ifdef FISH_DEBUG
DBUG_PROCESS(argv[0]);
if(getenv("FISH_DBUG")) DBUG_PUSH(getenv("FISH_DBUG"));
#endif
if(argc == 4){
const char *toc_option = argv[1];
const char *infolib = argv[2];
const char *srcdir = argv[3];
Dispatch::tmpdir = infolib;
Dispatch::srcdir = srcdir;
if ( !strcmp(toc_option, "toc") ) {
Dispatch::tocgen_only = 1;
}
else if ( !strcmp(toc_option, "all") ) {
Dispatch::tocgen_only = 0;
}
else {
fprintf(stderr, "usage: NodeParse [ tocgen_only | all ] <database-dir> <source-dir>\n");
exit(1);
}
/*
* Add the . directory as a default if the file is not found in scrdir
*/
SearchPath *sptable = new SearchPath( srcdir, ".", 0 );
Dispatch::search_path_table = sptable;
Task *t = new BookCaseTask( infolib );
Stack<int> *istack = new Stack<int>;
Dispatch::setRoot(t, istack);
try{
extern int yylex();
yylex();
ret = 0;
}
catch(Unexpected&, u)
{
try {
Dispatch::tok->reportError(Token::User, Token::Fatal,
"markup error: %s", u.msg());
}
catch(ErrorReported&, e)
{
if ( e.f_severity == Token::Fatal ) {
exit(1);
}
}end_try;
}
catch(PosixError&, pe)
{
fprintf(stderr, "(ERROR) %s\n", pe.msg() );
exit(1);
}
catch(ErrorReported&, e)
{
if ( e.f_severity == Token::Fatal ) {
exit(1);
}
}end_try;
}else{
fprintf(stderr, "usage: NodeParse [ tocgen_only | all ] <database-dir> <source-dir>\n");
}
return ret;
}

Some files were not shown because too many files have changed in this diff Show More