tests/accumulator/*.m:
tests/analysis_*/*.m:
tests/benchmarks*/*.m:
tests/debugger*/*.{m,exp,inp}:
tests/declarative_debugger*/*.{m,exp,inp}:
tests/dppd*/*.m:
tests/exceptions*/*.m:
tests/general*/*.m:
tests/grade_subdirs*/*.m:
tests/hard_coded*/*.m:
Make these tests use four-space indentation, and ensure that
each module is imported on its own line. (I intend to use the latter
to figure out which subdirectories' tests can be executed in parallel.)
These changes usually move code to different lines. For the debugger tests,
specify the new line numbers in .inp files and expect them in .exp files.
Estimated hours taken: 16
Branches: main
Add support for "implementation-defined literals" $file, $line, $module,
$pred, $grade which are replaced constants by the compiler.
library/lexer.m:
Add a new type of token.
Read "$foo" as a `implementation_defined' token instead of two name
tokens.
library/term.m:
library/term_io.m:
Add a new type of constant, `implementation_defined'.
library/parser.m:
Handle `implementation_defined' tokens from the lexer.
compiler/check_hlds.m:
compiler/implementation_defined_literals.m:
compiler/mercury_compile.m:
Add a new pass to replace implementation-defined literals in program
clauses.
Call the new pass.
compiler/notes/compiler_design.html:
Document the new module.
compiler/prog_data.m:
Add a new option to `cons_id', namely `implementation_defined_const'.
compiler/typecheck.m:
Tell the typechecker the types of the supported implementation-defined
literals.
compiler/prog_io_util.m:
Make `convert_bound_inst' fail if implementation-defined literals
appear in inst definitions so that an error will be issued.
compiler/bytecode_gen.m:
compiler/ctgc.selector.m:
compiler/dead_proc_elim.m:
compiler/dependency_graph.m:
compiler/erl_unify_gen.m:
compiler/fact_table.m:
compiler/higher_order.m:
compiler/hlds_code_util.m:
compiler/hlds_out.m:
compiler/inst_check.m:
compiler/mercury_to_mercury.m:
compiler/mode_util.m:
compiler/module_qual.m:
compiler/prog_rep.m:
compiler/prog_type.m:
compiler/prog_util.m:
compiler/rbmm.execution_path.m:
compiler/unused_imports.m:
compiler/xml_documentation.m:
Conform to addition of `implementation_defined_const'.
doc/reference_manual.texi:
Document implementation-defined literals.
NEWS:
Announce the new feature.
tests/hard_coded/Mmakefile:
tests/hard_coded/impl_def_lex.exp:
tests/hard_coded/impl_def_lex.m:
tests/hard_coded/impl_def_lex_string.exp:
tests/hard_coded/impl_def_lex_string.m:
tests/hard_coded/impl_def_literal.exp:
tests/hard_coded/impl_def_literal.m:
tests/invalid/Mmakefile:
tests/invalid/impl_def_literal_syntax.err_exp:
tests/invalid/impl_def_literal_syntax.m:
tests/invalid/undef_impl_def_literal.err_exp:
tests/invalid/undef_impl_def_literal.m:
Add test cases.