blob: d4c1a5e178833d4d5e1ce8f0a400de17082adaee [file] [log] [blame]
alokp@chromium.org2c958ee2012-05-17 20:35:42 +00001//
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
10namespace pp
11{
12
13struct SourceLocation
14{
Zhenyao Mod526f982014-05-13 14:51:19 -070015 SourceLocation()
16 : file(0),
17 line(0)
18 {
19 }
20 SourceLocation(int f, int l)
21 : file(f),
22 line(l)
23 {
24 }
alokp@chromium.org2c958ee2012-05-17 20:35:42 +000025
Zhenyao Mod526f982014-05-13 14:51:19 -070026 bool equals(const SourceLocation &other) const
alokp@chromium.org2c958ee2012-05-17 20:35:42 +000027 {
28 return (file == other.file) && (line == other.line);
29 }
30
31 int file;
32 int line;
33};
34
Zhenyao Mod526f982014-05-13 14:51:19 -070035inline bool operator==(const SourceLocation &lhs, const SourceLocation &rhs)
alokp@chromium.org2c958ee2012-05-17 20:35:42 +000036{
37 return lhs.equals(rhs);
38}
39
Zhenyao Mod526f982014-05-13 14:51:19 -070040inline bool operator!=(const SourceLocation &lhs, const SourceLocation &rhs)
alokp@chromium.org2c958ee2012-05-17 20:35:42 +000041{
42 return !lhs.equals(rhs);
43}
44
45} // namespace pp
46#endif // COMPILER_PREPROCESSOR_SOURCE_LOCATION_H_