Column-oriented GPU-accelerated Database Management System
CoGaDB
|
00001 /* A Bison parser, made by GNU Bison 2.5. */ 00002 00003 /* Locations for Bison parsers in C++ 00004 00005 Copyright (C) 2002-2007, 2009-2011 Free Software Foundation, Inc. 00006 00007 This program is free software: you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation, either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00019 00020 /* As a special exception, you may create a larger work that contains 00021 part or all of the Bison parser skeleton and distribute that work 00022 under terms of your choice, so long as that work isn't itself a 00023 parser generator using the skeleton or a modified version thereof 00024 as a parser skeleton. Alternatively, if you modify or redistribute 00025 the parser skeleton itself, you may (at your option) remove this 00026 special exception, which will cause the skeleton and the resulting 00027 Bison output files to be licensed under the GNU General Public 00028 License without this special exception. 00029 00030 This special exception was added by the Free Software Foundation in 00031 version 2.2 of Bison. */ 00032 00038 #ifndef BISON_LOCATION_HH 00039 # define BISON_LOCATION_HH 00040 00041 # include <iostream> 00042 # include <string> 00043 # include "position.hh" 00044 00045 00046 /* Line 162 of location.cc */ 00047 #line 14 "src/sql/server/sql_parser.ypp" 00048 namespace CoGaDB { namespace SQL { 00049 00050 /* Line 162 of location.cc */ 00051 #line 52 "/home/sebastian/gpudbms/trunk/cogadb/src/sql/server/location.hh" 00052 00054 class location 00055 { 00056 public: 00057 00059 location () 00060 : begin (), end () 00061 { 00062 } 00063 00064 00066 inline void initialize (std::string* fn) 00067 { 00068 begin.initialize (fn); 00069 end = begin; 00070 } 00071 00074 public: 00076 inline void step () 00077 { 00078 begin = end; 00079 } 00080 00082 inline void columns (unsigned int count = 1) 00083 { 00084 end += count; 00085 } 00086 00088 inline void lines (unsigned int count = 1) 00089 { 00090 end.lines (count); 00091 } 00095 public: 00097 position begin; 00099 position end; 00100 }; 00101 00103 inline const location operator+ (const location& begin, const location& end) 00104 { 00105 location res = begin; 00106 res.end = end.end; 00107 return res; 00108 } 00109 00111 inline const location operator+ (const location& begin, unsigned int width) 00112 { 00113 location res = begin; 00114 res.columns (width); 00115 return res; 00116 } 00117 00119 inline location& operator+= (location& res, unsigned int width) 00120 { 00121 res.columns (width); 00122 return res; 00123 } 00124 00126 inline bool 00127 operator== (const location& loc1, const location& loc2) 00128 { 00129 return loc1.begin == loc2.begin && loc1.end == loc2.end; 00130 } 00131 00133 inline bool 00134 operator!= (const location& loc1, const location& loc2) 00135 { 00136 return !(loc1 == loc2); 00137 } 00138 00145 inline std::ostream& operator<< (std::ostream& ostr, const location& loc) 00146 { 00147 position last = loc.end - 1; 00148 ostr << loc.begin; 00149 if (last.filename 00150 && (!loc.begin.filename 00151 || *loc.begin.filename != *last.filename)) 00152 ostr << '-' << last; 00153 else if (loc.begin.line != last.line) 00154 ostr << '-' << last.line << '.' << last.column; 00155 else if (loc.begin.column != last.column) 00156 ostr << '-' << last.column; 00157 return ostr; 00158 } 00159 00160 00161 /* Line 271 of location.cc */ 00162 #line 14 "src/sql/server/sql_parser.ypp" 00163 } } // CoGaDB::SQL 00164 00165 /* Line 271 of location.cc */ 00166 #line 167 "/home/sebastian/gpudbms/trunk/cogadb/src/sql/server/location.hh" 00167 00168 #endif // not BISON_LOCATION_HH