source: CMT/v1r25p20130606/source/cmt_constituent.h @ 668

Last change on this file since 668 was 588, checked in by rybkin, 13 years ago

See C.L. 465

  • 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 need_check;
61  bool build_triggers;
62  bool has_target_tag;
63  CmtSystem::cmt_string_vector excludes;
64  cmt_vector<cmt_regexp> exclude_exprs;
65
66  CmtSystem::cmt_string_vector selects;
67  cmt_vector<cmt_regexp> select_exprs;
68
69  CmtSystem::cmt_string_vector includes;
70  CmtSystem::cmt_string_vector imports;
71  Variable::VariableVector variables;
72
73private:
74  CmtSystem::cmt_string_vector parameters;
75
76};
77
78#endif
Note: See TracBrowser for help on using the repository browser.