extras/xml/parsing.m:
extras/xml/unicode.m:
extras/xml/xml.cat.m:
extras/xml/xml.doc.m:
extras/xml/xml.dtd.m:
extras/xml/xml.encoding.m:
extras/xml/xml.m:
extras/xml/xml.ns.m:
extras/xml/xml.parse.chars.m:
extras/xml/xml.parse.m:
Use predmode declarations when possible.
Flatten camelCase.
Add prefixes to the names of function symbols and fields
if this avoid ambiguity, either with other parts of this code,
or with standard Mercury function symbols or predicates.
Replace uses of graphic characters such as ',' and '-' as
general purpose function symbols with normal, alphanumeric
function symbols. (Uses of graphic characters to stand for themselves
in xml.parse.chars.m are unaffected.)
Replace uses of graphic symbols such as ',' '->' and '[|]' as type names.
Improve some other names as well.
Convert (C->T;E) to (if C then T else E).
Replace tabs with spaces.
Delete unused imports.
Make the order of definitions match the order of declarations.
extras/xml/tryit.m:
Put the code for handling a single command line argument into its own
predicate.
Replace see/seen with read_named_file_as_string.
Avoid using !IO to pass around the parser state.
Instead of writing out the parse tree as a single very long line,
convert both the DTD and the HTML code to a prettyprinter doc,
and print that. This makes the output actually readable, and
also makes it usefully diffable as well.
extras/xml/Mmakefile:
Replace the old do-nothing check action with one that actually does
check whether the code in this directory can do at least one simple task,
the one mentioned in in samples/README. It would be nice of we had
more tests, more extensive tests, or (preferably) both, but that would
require someone who knows the code significantly better than I do.
Add a rule for making the tags file.
Compile the modules in this directory with the same default mmc flags
as we use in the compiler directory.
extras/xml/XML_FLAGS:
The default flags for modules in this directory.
extras/xml/Mercury.options:
The non-default flags for modules in this directory.
extras/xml/samples/newsarticles.exp:
The expected output of running the updated tryit program on the
(just one) sample input in this directory.
extras/xml/README:
extras/xml/samples/README:
Replace some obsolete references, and improve formatting.
Discussion of these changes can be found on the Mercury developers
mailing list archives from June 2018.
COPYING.LIB:
Add a special linking exception to the LGPL.
*:
Update references to COPYING.LIB.
Clean up some minor errors that have accumulated in copyright
messages.
boehm_gc/.gitignore:
Ignore .obj files
extras/xml/xml.dtd.m:
extras/xml/xml.parse.m:
Change the name of functor ('1') in the multiplicity/0 type
to one. The former name does not (yet) work with the C# grade.
samples/.gitignore:
Ignore library output and sample executables.
samples/c_interface/standalone_c/.gitignore:
Ignore mercury_lib_int output files.
samples/c_interface/standalone_c/Makefile:
chmod 0644.
samples/c_interface/.gitignore:
Ignore object files and executables.
samples/java_interface/.gitignore:
Ignore Java class files and executables.
samples/lazy_list/.gitignore:
samples/muz/.gitignore:
samples/rot13/.gitignore:
Ignore executables.
samples/rot13/rot13_concise.m:
Update call to index_det to use string.det_index.
Added comments to clarify type inference.
samples/solutions/.gitignore:
Ignore executables.
samples/solutions/all_solutions.m:
samples/solutions/n_solutions.m:
samples/solutions/one_solution.m:
samples/solutions/some_solutions.m:
chmod 0644.
samples/solver_types/.gitignore:
Ignore executables.
samples/solver_types/sudoku.m:
Output the solution in a 3x3 grid.
Estimated hours taken: 0.1
Branches: main, release
extras/xml/*.m:
Remove some non-abstract instance declarations from module
interfaces; the compiler no longer supports them.
Replace uses of ':' as a module qualifier.
Remove duplicate module imports.
Estimated hours taken: 100
Add an XML parser to the extras directory
extras/xml/README:
A short readme describing the parser.
extras/xml/Mmake:
The Mmake file for the sample program.
extras/xml/tryit.m:
A sample program that just parses the files named on the command line.
extras/xml/xml*.m:
The parser itself.
extras/xml/unicode.m:
A bunch of functions that return the unicode values for numerous ascii
symbols.
extras/xml/parsing.m:
The parsing combinator set used by the xml parser.