home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-05-30 | 1.3 KB | 38 lines | [TEXT/MPS ] |
- typedef struct location { /* identify lines of source */
- char *filename;
- int lineno;
- } Location;
-
- typedef enum parttype {STRING=1, MODULE, NEWLINE} Parttype;
-
- struct modpart {
- Parttype ptype; /* type of fragment: STRING, MODULE, NEWLINE */
- char *contents;
- Location loc; /* for String, where's it from ? */
- struct modpart *next;
- };
- typedef struct module {
- char *name;
- int usecount;
- struct modpart *head, *tail;
- } *Module;
- Module newmodule(char *modname); /* create a new, blank module */
- #define addstring(MP,S,L) add_part(MP,S,STRING,&L)
- /* add a string to a module definition (stripping final newline) */
- #define addmodule(MP,S) add_part(MP,S,MODULE,0)
- /* add a module reference to a module definition (stripping final newline) */
- #define addnewline(MP) add_part(MP,0,NEWLINE,0)
- void add_part (Module mp, char *s, Parttype type, Location *loc);
- typedef struct parent {
- Module this;
- struct parent *parent;
- } *Parent;
-
- int expand (Module mp, int indent, int partial_distance, Parent parent,
- char *locformat, FILE *out);
- /* expand a module, writing to file out */
- void resetloc(void);
- int printloc(FILE *fp, char *fmt, Location loc, int partial);
- void remove_final_newline (Module mp);
- /* remove trailing newline that must be in module */
-