isabelle-hacks/fxp/src/Parser/Params/hookData.sml

61 lines
2.5 KiB
Standard ML

structure HookData =
struct
type StartEnd = Errors.Position * Errors.Position
(*--------------------------------------------------------------------*)
(* a text declaration consists of a version info and an encoding decl.*)
(* an xml declaration has an additional standalone decl. *)
(*--------------------------------------------------------------------*)
type TextDecl = string option * string option
type XmlDecl = string option * string option * bool option
type XmlInfo = Uri.Uri * Encoding.Encoding * XmlDecl option
type ExtSubsetInfo = Uri.Uri * Encoding.Encoding * TextDecl option
type SubsetInfo = Errors.Position
type EndDtdInfo = Errors.Position
type ErrorInfo = Errors.Position * Errors.Error
type WarningInfo = Errors.Position * Errors.Warning
type NoFileInfo = string * string
type CommentInfo = StartEnd * UniChar.Vector
type ProcInstInfo = StartEnd * UniChar.Data * Errors.Position * UniChar.Vector
type DtdInfo = int * Base.ExternalId option
datatype AttPresent =
AP_IMPLIED
| AP_MISSING
| AP_DEFAULT of UniChar.Vector * UniChar.Vector * Base.AttValue option
| AP_PRESENT of UniChar.Vector * UniChar.Vector * Base.AttValue option
type AttSpec = int * AttPresent * (UniChar.Data * UniChar.Data) option
type AttSpecList = AttSpec list
type EndTagInfo = StartEnd * int * (int * UniChar.Data) option
type StartTagInfo = StartEnd * int * AttSpecList * UniChar.Data * bool
type WhiteInfo = UniChar.Vector
type CDataInfo = StartEnd * UniChar.Vector
type DataInfo = StartEnd * UniChar.Vector * bool
type CharRefInfo = StartEnd * UniChar.Char * UniChar.Vector
type GenRefInfo = StartEnd * int * Base.GenEntity * bool
type ParRefInfo = StartEnd * int * Base.ParEntity * bool
type EntEndInfo = Errors.Position
datatype MarkupDecl =
DEC_ATTLIST of int * (int * Base.AttType * Base.AttDefault) list * bool
| DEC_ELEMENT of int * Base.ContentSpec * bool
| DEC_GEN_ENT of int * Base.GenEntity * bool
| DEC_PAR_ENT of int * Base.ParEntity * bool
| DEC_NOTATION of int * Base.ExternalId * bool
type DeclInfo = StartEnd * MarkupDecl
fun isExtDecl decl =
case decl
of DEC_ATTLIST(_,_,ext) => ext
| DEC_ELEMENT(_,_,ext) => ext
| DEC_GEN_ENT(_,_,ext) => ext
| DEC_PAR_ENT(_,_,ext) => ext
| DEC_NOTATION(_,_,ext) => ext
end