summaryrefslogtreecommitdiff
path: root/odb/semantics/fundamental.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-03-23 12:34:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-03-23 12:34:58 +0200
commit64ff415ed33a733f9a297b1526403bfb8f391c63 (patch)
treed0f02c10e2bc9c068538719186f0683e7743e314 /odb/semantics/fundamental.hxx
parent4867605e59aa35e588f6f812c42ea95dffc0bbb3 (diff)
Semantic graph and parsing code
Currently covers/handles namespace, class definitions (including bases and data members), and typedefs in namespace-scopes.
Diffstat (limited to 'odb/semantics/fundamental.hxx')
-rw-r--r--odb/semantics/fundamental.hxx113
1 files changed, 113 insertions, 0 deletions
diff --git a/odb/semantics/fundamental.hxx b/odb/semantics/fundamental.hxx
new file mode 100644
index 0000000..aa8225a
--- /dev/null
+++ b/odb/semantics/fundamental.hxx
@@ -0,0 +1,113 @@
+// file : odb/semantics/fundamental.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_SEMANTICS_FUNDAMENTAL_HXX
+#define ODB_SEMANTICS_FUNDAMENTAL_HXX
+
+#include <semantics/elements.hxx>
+
+namespace semantics
+{
+ //
+ // Fundamental C++ types.
+ //
+
+ class fund_type: public type {};
+
+ struct fund_void: fund_type
+ {
+ fund_void (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_bool: fund_type
+ {
+ fund_bool (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ //
+ // Integral.
+ //
+
+ struct fund_char: fund_type
+ {
+ fund_char (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_wchar: fund_type
+ {
+ fund_wchar (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_signed_char: fund_type
+ {
+ fund_signed_char (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_unsigned_char: fund_type
+ {
+ fund_unsigned_char (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_short: fund_type
+ {
+ fund_short (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_unsigned_short: fund_type
+ {
+ fund_unsigned_short (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_int: fund_type
+ {
+ fund_int (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_unsigned_int: fund_type
+ {
+ fund_unsigned_int (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_long: fund_type
+ {
+ fund_long (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_unsigned_long: fund_type
+ {
+ fund_unsigned_long (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_long_long: fund_type
+ {
+ fund_long_long (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_unsigned_long_long: fund_type
+ {
+ fund_unsigned_long_long (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ //
+ // Real.
+ //
+
+ struct fund_float: fund_type
+ {
+ fund_float (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_double: fund_type
+ {
+ fund_double (): node (path ("<fundamental>"), 0, 0) {}
+ };
+
+ struct fund_long_double: fund_type
+ {
+ fund_long_double (): node (path ("<fundamental>"), 0, 0) {}
+ };
+}
+
+#endif // ODB_SEMANTICS_FUNDAMENTAL_HXX