source: CMT/v1r25p20140131/source/cmt_constituent.h

Last change on this file was 664, checked in by rybkin, 10 years ago

merge -r 646:663 HEAD

  • 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// Modified by Grigory Rybkin
5// See the complete license in cmt_license.txt "http://www.cecill.info".
6//-----------------------------------------------------------
7
8#ifndef __cmt_constituent_h__
9#define __cmt_constituent_h__
10
11#include "cmt_parser.h"
12#include "cmt_system.h"
13#include "cmt_fragment.h"
14#include "cmt_group.h"
15
16class Constituent
17{
18public:
19  typedef cmt_vector<Constituent> ConstituentVector;
20  static void action (ConstituentType type,
21                      const CmtSystem::cmt_string_vector& words);
22  static Constituent* find (const cmt_string& name);
23  static Constituent* add (ConstituentType type,
24                           const cmt_string& name,
25                           const cmt_string& generator);
26  static Constituent* add_for_action (const Symbol& action);
27  //static Constituent* add_for_action (const cmt_string& name);
28  static void show (const cmt_string& name);
29  static void parse_all ();
30  static void show_all ();
31  static void show_names ();
32  static void build_all_makefiles (bool simulation);
33  static void build_all_msdev_files (bool simulation);
34  static void build_all_vsnet_files (bool simulation); 
35  static void clear_all ();
36  static ConstituentVector& constituents ();
37
38public:
39  Constituent ();
40  ~Constituent ();
41  void parse ();
42
43  virtual void clear ();
44  virtual void build_makefile (bool simulation) const;
45  virtual void build_msdev_file (bool simulation) const;
46  virtual void build_vsnet_file (bool simulation) const;
47  virtual void show (ostream& out = cout) const;
48  //  virtual void show () const;
49
50  cmt_string name;
51  cmt_string generator;
52  ConstituentType type;
53  Group* group;
54  cmt_string suffix;
55  CmtSystem::cmt_string_vector modules;
56  bool need_OS9;
57  bool windows;
58  bool no_static;
59  bool no_share;
60  bool need_prototypes;
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.