source: CMT/HEAD/source/cmt_constituent.h @ 629

Last change on this file since 629 was 629, checked in by rybkin, 11 years ago

See C.L. 500

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1//-----------------------------------------------------------
2// Copyright Christian Arnault LAL-Orsay CNRS
3// arnault@lal.in2p3.fr
4// See the complete license in cmt_license.txt "http://www.cecill.info".
5//-----------------------------------------------------------
6
7#ifndef __cmt_constituent_h__
8#define __cmt_constituent_h__
9
10#include "cmt_parser.h"
11#include "cmt_system.h"
12#include "cmt_fragment.h"
13#include "cmt_group.h"
14
15class Constituent
16{
17public:
18  typedef cmt_vector<Constituent> ConstituentVector;
19  static void action (ConstituentType type,
20                      const CmtSystem::cmt_string_vector& words);
21  static Constituent* find (const cmt_string& name);
22  static Constituent* add (ConstituentType type,
23                           const cmt_string& name,
24                           const cmt_string& generator);
25  static Constituent* add_for_action (const Symbol& action);
26  //static Constituent* add_for_action (const cmt_string& name);
27  static void show (const cmt_string& name);
28  static void parse_all ();
29  static void show_all ();
30  static void show_names ();
31  static void build_all_makefiles (bool simulation);
32  static void build_all_msdev_files (bool simulation);
33  static void build_all_vsnet_files (bool simulation); 
34  static void clear_all ();
35  static ConstituentVector& constituents ();
36
37public:
38  Constituent ();
39  ~Constituent ();
40  void parse ();
41
42  virtual void clear ();
43  virtual void build_makefile (bool simulation) const;
44  virtual void build_msdev_file (bool simulation) const;
45  virtual void build_vsnet_file (bool simulation) const;
46  virtual void show (ostream& out = cout) const;
47  //  virtual void show () const;
48
49  cmt_string name;
50  cmt_string generator;
51  ConstituentType type;
52  Group* group;
53  cmt_string suffix;
54  CmtSystem::cmt_string_vector modules;
55  bool need_OS9;
56  bool windows;
57  bool no_static;
58  bool no_share;
59  bool need_prototypes;
60  bool has_modules;
61  bool need_check;
62  bool build_triggers;
63  bool has_target_tag;
64  CmtSystem::cmt_string_vector excludes;
65  cmt_vector<cmt_regexp> exclude_exprs;
66
67  CmtSystem::cmt_string_vector selects;
68  cmt_vector<cmt_regexp> select_exprs;
69
70  CmtSystem::cmt_string_vector includes;
71  CmtSystem::cmt_string_vector imports;
72  Variable::VariableVector variables;
73
74private:
75  CmtSystem::cmt_string_vector parameters;
76
77};
78
79#endif
Note: See TracBrowser for help on using the repository browser.