Primitives The following files contain the software tools primitives written in BDS C: TOOLS.H, DATE.BDS, FILE.BDS, RAWFILE.BDS, ARGS.BDS, MISC.BDS, STORAGE.BDS, STRING.BDS, CONVERT.BDS, SYMTAB.BDS, and PATTERN.BDS. The file TOOLS.H contains all global variables and declarations used by the BDS C version of the software tools primitives. This file must be used in ALL programs instead of BDSCIO.H. This file contains portions of BDSCIO.H and RATDEF. See the file TOOLS.H for more comments. The files FILE.BDS, RAWFILE.BDS, ARGS.BDS, MISC.BDS implement the I/O primitives and I/O redirection. (MISC.BDS contains some odds and ends.) I have been using them for several months now with no problems. The file STORAGE.BDS contains the dynamic storage allocation primitives. This file simply calls the BDS C allocation primitives. The file STRING.BDS contains string manipulation primitives. Not all the primitives on this file have been debugged. The file CONVERT.BDS contains various conversion utility routines. Not all of the routines on this file have been converted from RATFOR to BDS C. The ones that have not been converted are commented out. The file SYMTAB.BDS contains symbol table creation, deletion, and lookup routines. These routines are used by the ROFF program, but you still might want to revise them extensively. There are more comments on the file SYMTAB.BDS. The file PATTERN.BDS contains pattern-matching and set manipulation primitives. None of the primitives on this file have been completely converted to BDS C and debugged. Indeed, the primitives on this file are in various stages; some are mostly RATFOR still while others are mostly BDS C. The file TOOLIB1.BDS contains most of the library routines from STDLIB1.BDS and STDLIB2.BDS. Some of the routines were modified for use with the directed I/O routines. Some of the names of routines were changed to avoid conflicts. Some of the BDS C routines were deleted. See the comments on the file TOOLIB1.BDS for more details. The file TOOLIB2.CRL contains the object for all the BDS C routines which are written in assembly language. Note that some of the names in this file have been changed. This file was, of course, created with CLIB. The file COPY.BDS is a test propram for the primitives. The file ARGS.BDS also contains a main() function which is a test of I/O redirection. The file SYMTAB.BDS contains a main() function which is a test of the symbol table primitives. The .SUB files on this disk are SUBMIT files used to compile or link the primitives. The file TOOLS.SUB simply compiles all the primitives. The files LINKARGS.SUB, LINKCOPY.SUB, and SYMLINK.SUB link the files ARGS.BDS, COPY.BDS, and SYMTAB.BDS. Note that linking all the primitives together is fairly complicated at this stage. Utilities and documentation The file RAT2C.BDS is a filter which converts RATFOR-style comments into BDS C style comments. At present this program is the only tool that I have for converting RATFOR programs to C program. The file CONVR2C.DOC tells what has to be done to convert programs from RATFOR to C. You may be surprised (or shocked) to see how difficult it is. The file CHANGES.DOC tells what changes should or could be made to the primitives. The contents of this file are only opinions, but I hope they will form a starting point for future discussions. The file FILE.DOC tells how the primitives implement I/O redirection. Some of this information can also be found on TOOLS.H.