BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
sfidl-clientcxx.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __SFIDL_CLIENTCXX_H__
3 #define __SFIDL_CLIENTCXX_H__
4 
5 #include "sfidl-cxxbase.hh"
6 #include "sfidl-namespace.hh"
7 
8 namespace Sfidl {
9 
11  protected:
12  NamespaceHelper nspace;
13 
14  using CodeGeneratorCBase::createTypeCode;
15  String createTypeCode (const String& type, const String& name,
16  TypeCodeModel model);
17 
18  String typeArg (const String& type);
19  String typeField (const String& type);
20  String typeRet (const String& type);
21  String funcNew (const String& type);
22  String funcCopy (const String& type);
23  String funcFree (const String& type);
24 
25  void printChoicePrototype (NamespaceHelper& nspace);
26  void printChoiceImpl (NamespaceHelper& nspace);
27  void printRecSeqForwardDecl (NamespaceHelper& nspace);
28  void printRecSeqDefinition (NamespaceHelper& nspace);
29  void printRecSeqImpl (NamespaceHelper& nspace);
30 
31  enum Style { STYLE_LOWER, STYLE_MIXED };
32  Style style;
33 
34  String makeStyleName (const String& name);
35  String makeProcName (const String& className, const String& procName);
36 
37  void printMethods (const Class& cdef);
38  void printProperties (const Class& cdef);
39 
40  public:
41  CodeGeneratorClientCxx (const Parser& parser) : CodeGeneratorCxxBase (parser), nspace (stdout), style (STYLE_LOWER) {
42  }
43  void help ();
44  bool run ();
45 
46  OptionVector getOptions();
47  void setOption (const String& option, const String& value);
48  };
49 };
50 
51 #endif /* __SFIDL_CLIENTCXX_H__ */
52 
53 /* vim:set ts=8 sts=2 sw=2: */
stdout
Definition: sfidl-clientcxx.hh:10
Definition: sfidl-namespace.hh:14
Definition: sfidl-parser.hh:166
Definition: sfidl-cxxbase.hh:11
The Sfidl namespace contains implementation and API of the Sfi IDL compiler.
Definition: sfidl-cbase.hh:14
Definition: sfidl-parser.hh:231
STL class.
STL class.