https://github.com/shader-slang/slang
Raw File
Tip revision: a2b8b4c20632d79721052abd232fe2d1bdf2700d authored by Tim Foley on 19 July 2017, 21:54:32 UTC
Merge pull request #127 from tfoleyNV/deployment
Tip revision: a2b8b4c
source-loc.h
// source-loc.h
#ifndef SLANG_SOURCE_LOC_H_INCLUDED
#define SLANG_SOURCE_LOC_H_INCLUDED

#include "../core/basic.h"

namespace Slang {

class CodePosition
{
public:
	int Line = -1, Col = -1, Pos = -1;
	String FileName;
	String ToString()
	{
		StringBuilder sb(100);
		sb << FileName;
		if (Line != -1)
			sb << "(" << Line << ")";
		return sb.ProduceString();
	}
	CodePosition() = default;
	CodePosition(int line, int col, int pos, String fileName)
	{
		Line = line;
		Col = col;
		Pos = pos;
		this->FileName = fileName;
	}
	bool operator < (const CodePosition & pos) const
	{
		return FileName < pos.FileName || (FileName == pos.FileName && Line < pos.Line) ||
			(FileName == pos.FileName && Line == pos.Line && Col < pos.Col);
	}
	bool operator == (const CodePosition & pos) const
	{
		return FileName == pos.FileName && Line == pos.Line && Col == pos.Col;
	}
};


} // namespace Slang

#endif
back to top