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_SOURCELOCATION_H_ |
8 | #define COMPILER_PREPROCESSOR_SOURCELOCATION_H_ |
9 | |
10 | namespace angle |
11 | { |
12 | |
13 | namespace pp |
14 | { |
15 | |
16 | struct SourceLocation |
17 | { |
18 | SourceLocation() : file(0), line(0) {} |
19 | SourceLocation(int f, int l) : file(f), line(l) {} |
20 | |
21 | 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 | |