mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-14 21:35:49 +00:00
Estimated hours taken: 0.5 Branches: main Fix compilation problems in the extras distribution caused by recent changes. extras/stream/stream.m: Provide a definition for the type stream/1. extras/*/*.m: Conform to the recent changes to the standard library.
This directory contains an XML parsing library. The parser is implemented using higher order parsing combinators. It follows the grammar in the XML 1.0 recommendation (see http://www.w3c.org for more on the recommendation). Unfortunately this means that it isn't quite conformant because the english text of the recommendation contradicts the given grammar in a number of places, some of which I have fixed, and some I will fix when I know how to. The parser includes external parsed entities, but doesn't deal very well with non-parsed external entities very well yet (due to some of the afore-mentioned contradictions in the recommendation). It is non-validating at this stage, but it does parse the DTD and expand entity and parameter-entity references. The files in this directory are: README this file. xml.m a wrapper module xml.cat.m implements catalog file parsing xml.doc.m defines the types for representing documents xml.dtd.m defines the types for representing DTDs xml.encoding.m implements algorithms used for manipulating different encoding mechanisms (eg ASCII, UTF-8) xml.parse.m the main parser xml.parse.chars.m a piece of the parser which is split off for compile time performance unicode.m defines a bunch of functions that return the unicode number for various ascii characters parsing.m defines the parsing combinators used by the parser tryit.m a sample driver program which parses documents and prints any error messages Mmakefile a control file for mmake to build the sample program samples a directory including instructions on how to run the XML parser and some sample files