© , , , The TenDRA Project.
© , DERA.
© , DRA.
First published .
Revision History
kate | Include libexds as a partial archive, for convenience of building. My rationalle here is that SID and TLD are likely to be the only consumers for libexds, and so requiring its installation as a library seems excessive. However, it may still be installed separately, should anybody want that. | |
kate | Removed error file support, and hence the build-time dependency on Perl. | |
kate | Terminals (and only terminals) may now be optionally quoted. This acts as a convenience for terminals with mundane names, such as punctation symbols. For example, one might write | |
kate | Types may now be ignored in a similar way to actions and terminals, by prefixing a Ignored types may be present in ignored terminals and ignored actions, but are dissallowed elsewhere. | |
kate | Added BNF output as The output simply dumps the grammar contents, disregarding all the entries which do not pertain to grammatical constructs. The empty set is represented as This is our first non-C language. | |
kate | Introduced a new expansion within C actions, Since it is output using the same mechanism as references to terminals elsewhere in the generated parser, it is subject to the same expansion rules. More notably, this includes | |
kate | Introduced a new language-specific option, This is unrelated to This defaults to | |
kate | Action declarations may now be optionally ignored in much the same way as terminals may be, by prefixing a %productions% !<an-ignored-action>; This is particularly useful for several grammars which share the same actions, where not all of the grammars make use of the actions provided. | |
kate | Added a new language-specific option: Omitting these is desirable if the user wishes to define her own values for terminals, rather than using the SID-supplied macros. This is especially useful for sharing several grammars with the same actions, where the terminal values are to be centralised between the various parsers. | |
kévin | Added persistant variable support for C actions. | |
kate | Tagged version 1.10. The first stand-alone release of sid seperately to the TenDRA compiler. It is a code clean-up release; features are unchanged from 1.9. | |
kate | 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 stand-alone under tendra.org. | |
asmodai | Moved out SID to a standalone tool. | |
asmodai | Converted to a new build system. | |
DERA | SID 1.9; TenDRA 4.1.2 release. | |
smf | Added support for an unreachable code macro (instead of a comment) in the C output languages. | |
smf | Froze version 1.8. | |
smf | Added assignment as an alternative to identity binding. | |
smf | Added initialisers for non local variables. | |
smf | Added support for non local variables within rules. Froze version 1.7. | |
smf | Added support for language specific options. Added options to control prototyping, use of numeric identifiers and casting of substituted parameters for C output language. | |
smf | Added support for explicit call by reference and action parameter mutation information (rather than the inconsistent function call semantics of earlier versions). | |
smf | 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. | |
smf | 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). | |
smf | Added a stricter ANSI C language that uses numeric identifiers to keep the identifier length below 32 characters. Froze version 1.6. | |
smf | Changed the syntax of the input files so that the grammar looks more like a conventional programming language. Removed basics (replacing them with terminal symbols). Added a header file to the C language output. | |
smf | Added "--show-errors" option to show the error table status, and a "--help" option to show the command line syntax. Froze version 1.5. | |
smf | Changed command line syntax to be compatible with the TDF linker. | |
smf | Froze version 1.4. | |
smf | Added | |
smf | Added support for anonymous rules and in alternative exception handlers. Fixed cycle detection routine used in needed function computation. Froze version 1.3. | |
smf | 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. | |
smf | Put name identifiers in a separate namespace. Stopped it being an error if the "-version" switch is used with no files specified. | |
smf | Added a test mode language. Froze version 1.2. | |
smf | Added exception handling instead of old error reporting mechanism. | |
smf | 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. | |
smf | Changed identifier prefixes. Made grammar printing mark inlinable rules with a '+'. | |
smf | 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. | |
smf | Fixed the cycle detection routines used in tail recursion detection. Froze version 1.1. | |
smf | 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. | |
smf | SID 1.0; Initial version of the new sid. Adds dataflow and marginally improved error handling to the original version of sid. Also fixes some bugs in the algorithms used in the earlier version of sid. Froze version 1.0. This was the first version of sid to support attribute grammars. The output language was C. |