1 // 2 // Copyright 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_SOURCELOCATION_H_ 8 #define COMPILER_PREPROCESSOR_SOURCELOCATION_H_ 9 10 namespace angle 11 { 12 13 namespace pp 14 { 15 16 struct SourceLocation 17 { SourceLocationSourceLocation18 SourceLocation() : file(0), line(0) {} SourceLocationSourceLocation19 SourceLocation(int f, int l) : file(f), line(l) {} 20 equalsSourceLocation21 bool equals(const SourceLocation &other) const 22 { 23 return (file == other.file) && (line == other.line); 24 } 25 26 int file; 27 int line; 28 }; 29 30 inline bool operator==(const SourceLocation &lhs, const SourceLocation &rhs) 31 { 32 return lhs.equals(rhs); 33 } 34 35 inline bool operator!=(const SourceLocation &lhs, const SourceLocation &rhs) 36 { 37 return !lhs.equals(rhs); 38 } 39 40 } // namespace pp 41 42 } // namespace angle 43 44 #endif // COMPILER_PREPROCESSOR_SOURCELOCATION_H_ 45