~ubuntu-branches/ubuntu/jaunty/aspectc++/jaunty

« back to all changes in this revision

Viewing changes to Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-07-07 14:41:02 UTC
  • mfrom: (1.1.3 upstream) (6.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080707144102-lzml7t07f3sl00r5
Tags: 1.0pre4~svn.20080711-1
* new upstream snapshot.
* include all upstream documentation. Clarifying emails regarding
  licensing has been included into debian/copyright.
* reformat description following recomendations of
  http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description
  (Closes: #480316)

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#ifndef __c_sem_decl_specs_h__
20
20
#define __c_sem_decl_specs_h__
21
21
 
 
22
/** \file
 
23
 *  Semantic declaration specifier analysis. */
 
24
 
22
25
#include "Puma/CTypeInfo.h"
23
26
#include "Puma/CTree.h"
24
27
 
27
30
 
28
31
class ErrorSink;
29
32
 
 
33
 
 
34
/** \class CSemDeclSpecs CSemDeclSpecs.h Puma/CSemDeclSpecs.h
 
35
 *  Class for analysing a sequence of declaration specifiers.
 
36
 *  The result of the analysis is a type, i.e. the type of 
 
37
 *  the declared entity (function, object, etc). */
30
38
class CSemDeclSpecs {
31
 
 
32
39
  // initialization context
33
40
  ErrorSink *_err;
34
41
  CT_DeclSpecSeq *_dss;
72
79
  CTypeInfo *create_qualifiers (CTypeInfo *type);
73
80
  
74
81
public:
75
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *, bool support_implicit_int = false);
 
82
  /** Constructor.
 
83
   *  \param es The error stream on which to report errors.
 
84
   *  \param dss The declaration specifier sequence to be analysed.
 
85
   *  \param support_implicit_int True if implicit type int shall be supported. */
 
86
  CSemDeclSpecs (ErrorSink *es, CT_DeclSpecSeq *dss, bool support_implicit_int = false);
 
87
  /** Destructor. Destroys the created type. */
76
88
  ~CSemDeclSpecs ();
77
89
 
 
90
  /** Get a copy of the resulting type. 
 
91
   *  \return The copy of the type. Has to be destroyed by the caller. */
78
92
  CTypeInfo *make_type () const;
 
93
  /** Get the declaration specifier sequence. */
79
94
  CT_DeclSpecSeq *DeclSpecSeq () const;
80
95
 
81
 
  bool declared (CT_PrimDeclSpec::Type) const;
 
96
  /** Check if the given declaration specifier was declared.
 
97
   *  \param dst The declaration specifier type. */
 
98
  bool declared (CT_PrimDeclSpec::Type dst) const;
 
99
  /** Check if a class was defined in the declaration specifier sequence. */
82
100
  bool defClass () const;
 
101
  /** Check if an union was defined in the declaration specifier sequence. */
83
102
  bool defUnion () const;
 
103
  /** Check if an enumeration was defined in the declaration specifier sequence. */
84
104
  bool defEnum () const;
85
105
};
86
106