Add PCRE2 support as an alternative to the original PCRE. PCRE2 is actively maintained and has a cleaner API than its predecessor. - Use a function interface around regular expressions to isolate and reduce the preprocessor #if/#endif forest. Abide by a single function declaration/implementation approach, vs. multiple function implentations within an #if/#endif forest. - Clean up the code so that work isn't recreated or duplicated, such as compiling regexps. Platform notes: - cmake: PCRE2 is the default RegEx support. To revert to PCRE, add "-DPREFER_PCRE" to the cmake configuration command line. - makefile: PCRE remains the default RegEx support out of respect for tradition (cue Chaim Topol singing "Tradition".) Enable PCRE2 by defining "USE_PCRE2=<some value>" from the make command line or shell environment. - Visual Studio Projects: Untouched. Externally built libraries provide regular expression support residing in a specific place in the file system, which is outside the control of SIMH proper. sim_defs.h: - Change EXPECT::size from int32 to size_t for increased cross-platform/64-bit compatibility (i.e., array indices and offsets should be size_t, where practicable.) - Add typedefs for EXPECT regex support independence: sim_regex_t, sim_re_capture_t. - Add regular expression context to EXPTAB that maintains state when processing the captured matches, making the function interface clean. Tracks intermediate state while processing captured matches.
Open SIMH machine simulator
This is the codebase of SIMH, a framework and collection of computer system simulators.
SIMH was created by Bob Supnik, originally at Digital Equipment Corporation, and extended by contributions of many other people. It is now an open source project, licensed under an MIT open source license (see LICENSE.txt for the specific wording). The project gatekeepers are the members of the SIMH Steering Group. We welcome and encourage contributions from all. Contributions will be covered by the project license.
The Open SIMH code base was taken from a code base maintained by Mark Pizzolato as of 12 May 2022. From that point onward there is no connection between that source and the Open SIMH code base. A detailed listing of features as of that point may be found in SIMH-V4-status.
PLEASE NOTE
Do not contribute material taken from github.com/simh/simh unless you are the author of the material in question.