DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d5ce0568f⟧ TextFile

    Length: 918 (0x396)
    Types: TextFile
    Notes: UNIX file
    Names: »bcsymtbl.h«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦f4b8d8c84⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »cmd/bc/bcsymtbl.h« 

TextFile

/*
 *	The typedef type is an enum used to store the type of a symbol.
 */

typedef enum {
	UNDEFINED,	SCALAR,		ARRAY,		FUNCTION
} type;


/*
 *	The typedef func is a struct used to hold all the information
 *	about a function definition.
 */

typedef struct {
	code	*body;		/* body of function */
	int	nparams,	/* number of parameters */
		nautos;		/* number of auto variables */
	type	*types;		/* vector of parameter and auto types */
} func;


/*
 *	The typedef globalv is a union used to store the global value of
 *	a symbol.
 */

typedef union {
	array	arvalue;
	rvalue	rvalue;
	func	fvalue;
}	globalv;


/*
 *	The typedef dicent is a struct used to maintain a string table which
 *	contains all identifiers ever seen.
 */

typedef struct dicent {
	struct dicent *left, *right;
	type	globalt, localt;	/* global and local type */
	globalv	globalv;
	int	localv;			/* frame pointer offset */
	char	word[];
} dicent;