source: git/modules/tools/modgen.h @ 4e859f5

spielwiese
Last change on this file since 4e859f5 was 4e859f5, checked in by Kai Krüger <krueger@…>, 25 years ago
major internal changes of handling definition git-svn-id: file:///usr/local/Singular/svn/trunk@2968 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2 *  $Id: modgen.h,v 1.3 1999-03-24 13:04:21 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};
40
41class cfiles {
42  public:
43  cfilesv next;
44  char *filename;
45};
46
47class moddef {
48 public:
49  char * name;
50  unsigned int major, minor, level;
51  char * version;
52  char * revision;
53  char * info;
54  char * helpfile;
55  procdefv procs;
56  int      proccnt;
57  cfilesv  files;
58  int      filecnt;
59};
60
61/*
62 *
63 */
64extern int IsCmd(char *n, int & tok);
65extern char * decl2str(int n, char *name);
66
67extern void PrintProclist(moddefv module);
68extern void Add2proclist(moddefv module, char *name, char *ret_val,
69                           char *ret_typname, int ret_typ);
70extern void generate_mod(moddefv module);
71extern void AddParam(moddefv module, char *name, char *typname, int typ);
72extern void mod_create_makefile(moddefv module);
73extern void Add2files(moddefv module, char *buff);
74
75extern void generate_function(procdefv pi, FILE *fp);
76extern void mod_write_header(FILE *fp, char *module);
77extern void generate_header(procdefv pi, FILE *fp);
78extern void write_header(FILE *fp, char *module, char *comment="");
79extern void make_version(char *p, moddefv module);
80
Note: See TracBrowser for help on using the repository browser.