blob: af8a8d5d19cab2527a2db977c6dff2849ccb4255 [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
Geoff Lang0a73dd82014-11-19 16:18:08 -05007#ifndef COMPILER_PREPROCESSOR_SOURCELOCATION_H_
8#define COMPILER_PREPROCESSOR_SOURCELOCATION_H_
alokp@chromium.org2c958ee2012-05-17 20:35:42 +00009
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
Geoff Lang0a73dd82014-11-19 16:18:08 -050046
47#endif // COMPILER_PREPROCESSOR_SOURCELOCATION_H_