1 // 2 // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 #ifndef COMPILER_PREPROCESSOR_SOURCE_LOCATION_H_ 8 #define COMPILER_PREPROCESSOR_SOURCE_LOCATION_H_ 9 10 namespace pp 11 { 12 13 struct SourceLocation 14 { SourceLocationSourceLocation15 SourceLocation() 16 : file(0), 17 line(0) 18 { 19 } SourceLocationSourceLocation20 SourceLocation(int f, int l) 21 : file(f), 22 line(l) 23 { 24 } 25 equalsSourceLocation26 bool equals(const SourceLocation &other) const 27 { 28 return (file == other.file) && (line == other.line); 29 } 30 31 int file; 32 int line; 33 }; 34 35 inline bool operator==(const SourceLocation &lhs, const SourceLocation &rhs) 36 { 37 return lhs.equals(rhs); 38 } 39 40 inline bool operator!=(const SourceLocation &lhs, const SourceLocation &rhs) 41 { 42 return !lhs.equals(rhs); 43 } 44 45 } // namespace pp 46 #endif // COMPILER_PREPROCESSOR_SOURCE_LOCATION_H_ 47