Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one
3
 * or more contributor license agreements. See the NOTICE file
4
 * distributed with this work for additional information
5
 * regarding copyright ownership. The ASF licenses this file
6
 * to you under the Apache License, Version 2.0 (the
7
 * "License"); you may not use this file except in compliance
8
 * with the License. You may obtain a copy of the License at
9
 *
10
 *   http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing,
13
 * software distributed under the License is distributed on an
14
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
 * KIND, either express or implied. See the License for the
16
 * specific language governing permissions and limitations
17
 * under the License.
18
 */
19
 
20
#ifndef T_ENUM_H
21
#define T_ENUM_H
22
 
23
#include "t_enum_value.h"
24
#include <vector>
25
 
26
/**
27
 * An enumerated type. A list of constant objects with a name for the type.
28
 *
29
 */
30
class t_enum : public t_type {
31
 public:
32
  t_enum(t_program* program) :
33
    t_type(program) {}
34
 
35
  void set_name(const std::string& name) {
36
    name_ = name;
37
  }
38
 
39
  void append(t_enum_value* constant) {
40
    constants_.push_back(constant);
41
  }
42
 
43
  const std::vector<t_enum_value*>& get_constants() {
44
    return constants_;
45
  }
46
 
47
  bool is_enum() const {
48
    return true;
49
  }
50
 
51
  virtual std::string get_fingerprint_material() const {
52
    return "enum";
53
  }
54
 
55
 private:
56
  std::vector<t_enum_value*> constants_;
57
};
58
 
59
#endif