Table of Contents
2007-06-02: Tagged version 1.10
2007-06-01: Restructured for initial stand-alone release. The only user-visible change here is that -? is replaced with -h. An example of using sid with lex has been added. This is the first release of sid standa-alone under tendra.org.
1996-02-29: Added support for an unreachable code macro (instead of a comment) in the C output languages.
1994-07-22: Froze version 1.8.
1994-07-19: Added assignment as an alternative to identity binding.
1994-07-14: Added initialisers for non local variables.
1994-07-01: Added support for non local variables within rules. Froze version 1.7.
1994-06-22: Added support for language specific options. Added options to control prototyping, use of numeric identifiers and casting of substituted parameters for C output language.
1994-06-16: Added support for call by reference and action parameter mutation information.
1994-05-27: Changed the format of the C definition file to provide a parameter assignment operation (this should have been in from the start for consistent semantics). Also, the prefix section, maps section and all three assignment operation sections are now optional.
1994-05-26: Improved error messages. Made dump file be updated with information from the phase that failed in the case of an error (this is not always useful though - the grammar may be in a useless state after a failed transform; left recursion elimination is particularly bad for this).
1994-05-17: Added a stricter ANSI C language that uses numeric identifiers to keep the identifier length below 32 characters. Froze version 1.6.
1994-05-16: Changed the syntax of the input files so that the grammar looks more like a conventional programming language. Removed basics. Added a header file to the C language output.
1994-01-27: Added "--show-errors" option to show the error table status, and a "--help" option to show the command line syntax. Froze version 1.5.
1994-01-26: Changed command line syntax to be compatible with the TDF linker.
1994-01-25: Froze version 1.4.
1994-01-28: Added "#line" directives to header and trailer. Ensured that there is always a newline at the end of a code block.
1994-01-11: Added support for anonymous rules and in alternative exception handlers. Fixed cycle detection routine used in needed function computation. Froze version 1.3.
1994-01-08: Changed syntax of code blocks in action file. SID now inlines all actions, basics, assignments etc. and performs the substitutions. Substitutions allow for identifier and label substitution, as well as exception raising.
1994-01-04: Put name identifiers in a separate namespace. Stopped it being an error if the "-version" switch is used with no files specified.
1994-01-02: Added a test mode language. Froze version 1.2.
1994-01-01: Added exception handling instead of old error reporting mechanism.
1994-01-18: Added option of inlining rules that only contain basics. Changed output routines, so that parameters and results of inlined functions are substituted, rather than created and assigned to.
1994-01-17: Changed identifier prefixes. Made grammar printing mark inlinable rules with a '+'.
1994-01-16: Added predicate support. Improved factoring to allow alternatives with the same dataflow, but different names to be factored. Allowed types to be defined that were only the result types of terminals. Stopped rules being declared as entry points to the grammar multiple times.
1994-01-04: Fixed the cycle detection routines used in tail recursion detection. Froze version 1.1.
1994-01-02: Fixed the cycle detection routines used in left recursion detection. Fixed bug in outputting code for see through alternatives. Sorted error lists to make comparisons easier. Modified grammar printing to mark tail calls.