aboutsummaryrefslogtreecommitdiff
path: root/odb/sql-token.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-14 16:36:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-21 15:40:00 +0200
commitf14743ef28248ea8a8ad9bae1c7c3d6a354da257 (patch)
treebcfa7088ae70d7fff9656b102c7c5a9d9ad17f73 /odb/sql-token.cxx
parentadd8086259fb21f1e42aba6546c55e607d87ce93 (diff)
Add support for SQLite type system, adjust code generators
Diffstat (limited to 'odb/sql-token.cxx')
-rw-r--r--odb/sql-token.cxx44
1 files changed, 44 insertions, 0 deletions
diff --git a/odb/sql-token.cxx b/odb/sql-token.cxx
new file mode 100644
index 0000000..fe6b836
--- /dev/null
+++ b/odb/sql-token.cxx
@@ -0,0 +1,44 @@
+// file : odb/sql-token.cxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+// license : GNU GPL v3; see accompanying LICENSE file
+
+#include <iostream>
+
+#include <odb/sql-token.hxx>
+
+using namespace std;
+
+static char punctuation_literals[] = {';', ',', '(', ')', '='};
+
+ostream&
+operator<< (ostream& os, sql_token const& t)
+{
+ switch (t.type ())
+ {
+ case sql_token::t_eos:
+ {
+ os << "<end-of-stream>";
+ break;
+ }
+ case sql_token::t_identifier:
+ {
+ os << t.identifier ();
+ break;
+ }
+ case sql_token::t_punctuation:
+ {
+ os << punctuation_literals[t.punctuation ()];
+ break;
+ }
+ case sql_token::t_string_lit:
+ case sql_token::t_int_lit:
+ case sql_token::t_float_lit:
+ {
+ os << t.literal ();
+ break;
+ }
+ }
+
+ return os;
+}