1 /* lang.h -- Definitions used with language bindings
3 * Written by Scott Wood <scott@buserror.net>
11 // A subclass of this interface is passed to Symbol::output_lang(),
12 // which calls the appropriate type-specific method here. If the
13 // sym is a Datum, Method, or Param, no callback is made; the language
14 // binding is expected to handle it when iterating over the containing
15 // type's element list.
19 virtual ~LangCallback()
23 virtual void output(UserNameSpace *sym, int arg1, void *arg2) = 0;
24 virtual void output(Struct *sym, int arg1, void *arg2) = 0;
25 virtual void output(Interface *sym, int arg1, void *arg2) = 0;
26 virtual void output(BitField *sym, int arg1, void *arg2) = 0;
27 virtual void output(Enum *sym, int arg1, void *arg2) = 0;
28 virtual void output(BasicType *sym, int arg1, void *arg2) = 0;
29 virtual void output(Alias *sym, int arg1, void *arg2) = 0;
30 virtual void output(TypeDef *sym, int arg1, void *arg2) = 0;
31 virtual void output(Datum *sym, int arg1, void *arg2) = 0; // const only
43 virtual void output_root(UserNameSpace *ns, const char *dir) = 0;
44 virtual void output_server(UserNameSpace *ns, const char *dir) = 0;
47 extern Language *first_lang;