eRPC Generator (erpcgen)  Rev. 1.7.2
NXP Semiconductors
DataType.h
1 /*
2  * Copyright (c) 2014, Freescale Semiconductor, Inc.
3  * Copyright 2016 NXP
4  * All rights reserved.
5  *
6  *
7  * SPDX-License-Identifier: BSD-3-Clause
8  */
9 
10 #ifndef _EMBEDDED_RPC__DATATYPE_H_
11 #define _EMBEDDED_RPC__DATATYPE_H_
12 
13 #include "Symbol.h"
14 #include <string>
15 
17 // Classes
19 
20 namespace erpcgen {
21 
25 class DataType : public Symbol
26 {
27 public:
32  {
33  kAliasType,
34  kArrayType,
35  kBuiltinType,
36  kEnumType,
37  kFunctionType,
38  kListType,
39  kStructType,
40  kUnionType,
41  kVoidType
42  };
43 
51  DataType(_data_type dataType)
52  : Symbol(kTypenameSymbol)
53  , m_dataType(dataType)
54  {
55  }
56 
65  DataType(const std::string &name, _data_type dataType)
66  : Symbol(kTypenameSymbol, name)
67  , m_dataType(dataType)
68  {
69  }
70 
80  DataType(const std::string &name, _data_type dataType, symbol_type_t symbolType)
81  : Symbol(symbolType, name)
82  , m_dataType(dataType)
83  {
84  }
85 
95  DataType(const Token &tok, _data_type dataType, symbol_type_t symbolType)
96  : Symbol(symbolType, tok)
97  , m_dataType(dataType)
98  {
99  }
100 
106  _data_type getDataType() const { return m_dataType; }
107 
116 
126 
132  virtual bool isAlias() const { return false; }
133 
139  virtual bool isArray() const { return false; }
140 
146  virtual bool isBinary() const { return false; }
147 
153  virtual bool isBool() const { return false; }
154 
160  virtual bool isBuiltin() const { return false; }
161 
167  virtual bool isEnum() const { return false; }
168 
174  virtual bool isFunction() const { return false; }
175 
181  virtual bool isList() const { return false; }
182 
188  virtual bool isScalar() const { return false; }
189 
195  virtual bool isString() const { return false; }
196 
202  virtual bool isStruct() const { return false; }
203 
209  virtual bool isUnion() const { return false; }
210 
216  virtual bool isVoid() const { return false; }
217 
218 protected:
220 };
221 
222 } // namespace erpcgen
223 
224 #endif // _EMBEDDED_RPC__DATATYPE_H_
DataType(const std::string &name, _data_type dataType, symbol_type_t symbolType)
Constructor.
Definition: DataType.h:80
virtual bool isBool() const
This function return "false" value as default for identify bool type.
Definition: DataType.h:153
virtual bool isString() const
This function return "false" value as default for identify string type.
Definition: DataType.h:195
virtual bool isVoid() const
This function return "false" value as default for identify void type.
Definition: DataType.h:216
_data_type m_dataType
Definition: DataType.h:219
Base class for all named declarations in the IDL.
Definition: Symbol.h:27
virtual bool isScalar() const
This function return "false" value as default for identify scalar builtin type.
Definition: DataType.h:188
DataType * getTrueContainerDataType()
This function returns pointer to true data type (enum, builtin, structs) except lists and arrays...
Definition: Type.cpp:473
DataType * getTrueDataType()
This function returns pointer to true data type instead of alias.
Definition: Type.cpp:459
virtual bool isFunction() const
This function return "false" value as default for identify function type.
Definition: DataType.h:174
virtual bool isStruct() const
This function return "false" value as default for identify struct type.
Definition: DataType.h:202
virtual bool isBinary() const
This function return "false" value as default for identify binary type.
Definition: DataType.h:146
_data_type getDataType() const
This function returns data type.
Definition: DataType.h:106
Base class for data types.
Definition: DataType.h:25
Encapsulates all information about a token.
Definition: Token.h:60
DataType(_data_type dataType)
Constructor.
Definition: DataType.h:51
virtual bool isBuiltin() const
This function return "false" value as default for identify builtin type.
Definition: DataType.h:160
DataType(const std::string &name, _data_type dataType)
Constructor.
Definition: DataType.h:65
virtual bool isAlias() const
This function return "false" value as default for identify alias type.
Definition: DataType.h:132
_data_type
Supported data types.
Definition: DataType.h:31
virtual bool isEnum() const
This function return "false" value as default for identify enum type.
Definition: DataType.h:167
virtual bool isArray() const
This function return "false" value as default for identify array type.
Definition: DataType.h:139
virtual bool isList() const
This function return "false" value as default for identify list type.
Definition: DataType.h:181
virtual bool isUnion() const
This function return "false" value as default for identify union type.
Definition: DataType.h:209
symbol_type_t
Supported symbol types.
Definition: Symbol.h:33
Definition: AstNode.h:25
DataType(const Token &tok, _data_type dataType, symbol_type_t symbolType)
Constructor.
Definition: DataType.h:95