source: git/modules/tools/modgen.h @ dcafdb

spielwiese
Last change on this file since dcafdb was 6c8772, checked in by Kai Krüger <krueger@…>, 25 years ago
Major rewrite of modgen git-svn-id: file:///usr/local/Singular/svn/trunk@2972 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2 *  $Id: modgen.h,v 1.4 1999-03-31 22:03:23 krueger Exp $
3 *
4 */
5
6#define MOD_GEN_VERSION "0.2"
7
8#define BUFLEN 128
9#define TMPL_HEAD ""
10#define TMPL_FOOT ""
11
12class paramdef;
13class procdef;
14class moddef;
15class cfiles;
16
17typedef paramdef * paramdefv;
18typedef procdef * procdefv;
19typedef cfiles * cfilesv;
20typedef moddef * moddefv;
21
22class paramdef {
23 public:
24  paramdefv next;
25  char *name;
26  char *typname;
27  int  typ;
28};
29
30class procdef {
31 public:
32  procdefv next;
33  char *procname;
34  char *funcname;
35  int is_static;
36  paramdef  return_val;
37  paramdefv param;
38  int       paramcnt;
39  char *c_code;
40};
41
42class cfiles {
43  public:
44  cfilesv next;
45  char *filename;
46};
47
48class moddef {
49 public:
50  char * name;
51  unsigned int major, minor, level;
52  char * version;
53  char * revision;
54  char * info;
55  char * helpfile;
56  procdefv procs;
57  int      proccnt;
58  cfilesv  files;
59  int      filecnt;
60};
61
62/*
63 *
64 */
65extern int IsCmd(char *n, int & tok);
66extern char * decl2str(int n, char *name);
67
68extern void PrintProclist(moddefv module);
69extern void Add2proclist(moddefv module, char *name, char *ret_val,
70                           char *ret_typname, int ret_typ);
71extern void generate_mod(moddefv module);
72extern void AddParam(moddefv module, char *name, char *typname, int typ);
73extern void mod_create_makefile(moddefv module);
74extern void Add2files(moddefv module, char *buff);
75
76extern void generate_function(procdefv pi, FILE *fp);
77extern void mod_write_header(FILE *fp, char *module);
78extern void generate_header(procdefv pi, FILE *fp);
79extern void write_header(FILE *fp, char *module, char *comment="");
80extern void make_version(char *p, moddefv module);
81
Note: See TracBrowser for help on using the repository browser.