source: git/dyn_modules/tools/modgen.h @ 6ce030f

spielwiese
Last change on this file since 6ce030f was 6ce030f, checked in by Oleksandr Motsak <motsak@…>, 12 years ago
removal of the $Id$ svn tag from everywhere NOTE: the git SHA1 may be used instead (only on special places) NOTE: the libraries Singular/LIB/*.lib still contain the marker due to our current use of svn
  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2 *
3 */
4
5#define MOD_GEN_VERSION "0.2"
6
7#define BUFLEN 128
8#define TMPL_HEAD ""
9#define TMPL_FOOT ""
10
11class paramdef;
12class procdef;
13class moddef;
14class cfiles;
15
16typedef paramdef * paramdefv;
17typedef procdef * procdefv;
18typedef cfiles * cfilesv;
19typedef moddef * moddefv;
20
21class paramdef {
22 public:
23  paramdefv next;
24  char *name;
25  char *typname;
26  int  typ;
27};
28
29class procdef {
30 public:
31  procdefv next;
32  char *procname;
33  char *funcname;
34  int is_static;
35  paramdef  return_val;
36  paramdefv param;
37  int       paramcnt;
38  char *c_code;
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.