File: SrcPos.h

package info (click to toggle)
storm-lang 0.7.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 52,100 kB
  • sloc: ansic: 261,471; cpp: 140,438; sh: 14,891; perl: 9,846; python: 2,525; lisp: 2,504; asm: 860; makefile: 678; pascal: 70; java: 52; xml: 37; awk: 12
file content (34 lines) | stat: -rw-r--r-- 750 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include "Utils/Path.h"

/**
 * Position in a source file.
 */
class SrcPos {
public:
	// Unknown position.
	explicit SrcPos();

	// Give a path-id and an offset.
	SrcPos(nat fileId, nat pos);

	// No file and no offset.
	static const nat invalid = -1;

	// File #.
	nat fileId;

	// Character offsets (newlines count as 1 character regardless of their representation)
	nat pos;

	// All files.
	static vector<Path> files;

	// First file that should be exported and not just used.
	static nat firstExport;

	inline bool operator ==(const SrcPos &o) const { return fileId == o.fileId && pos == o.pos; }
	inline bool operator !=(const SrcPos &o) const { return !(*this == o); }
};

wostream &operator <<(wostream &to, const SrcPos &pos);