mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-13 17:06:15 +00:00
Split SMLoc out in its own header so that it can
be used independently of SourceMgr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93780 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6a19947dd6
commit
1ae486a4a0
43
include/llvm/Support/SMLoc.h
Normal file
43
include/llvm/Support/SMLoc.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
//===- SMLoc.h - Manager for Source Buffers & Diagnostics -------*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file declares the SMLoc class. This class encapsulates a location in
|
||||||
|
// source code for use in diagnostics.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef SUPPORT_SMLOC_H
|
||||||
|
#define SUPPORT_SMLOC_H
|
||||||
|
|
||||||
|
namespace llvm {
|
||||||
|
|
||||||
|
// SMLoc - Represents a location in source code.
|
||||||
|
class SMLoc {
|
||||||
|
const char *Ptr;
|
||||||
|
public:
|
||||||
|
SMLoc() : Ptr(0) {}
|
||||||
|
SMLoc(const SMLoc &RHS) : Ptr(RHS.Ptr) {}
|
||||||
|
|
||||||
|
bool isValid() const { return Ptr != 0; }
|
||||||
|
|
||||||
|
bool operator==(const SMLoc &RHS) const { return RHS.Ptr == Ptr; }
|
||||||
|
bool operator!=(const SMLoc &RHS) const { return RHS.Ptr != Ptr; }
|
||||||
|
|
||||||
|
const char *getPointer() const { return Ptr; }
|
||||||
|
|
||||||
|
static SMLoc getFromPointer(const char *Ptr) {
|
||||||
|
SMLoc L;
|
||||||
|
L.Ptr = Ptr;
|
||||||
|
return L;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
//
|
||||||
// This file declares the SMLoc, SMDiagnostic and SourceMgr classes. This
|
// This file declares the SMDiagnostic and SourceMgr classes. This
|
||||||
// provides a simple substrate for diagnostics, #include handling, and other low
|
// provides a simple substrate for diagnostics, #include handling, and other low
|
||||||
// level things for simple parsers.
|
// level things for simple parsers.
|
||||||
//
|
//
|
||||||
@ -16,6 +16,8 @@
|
|||||||
#ifndef SUPPORT_SOURCEMGR_H
|
#ifndef SUPPORT_SOURCEMGR_H
|
||||||
#define SUPPORT_SOURCEMGR_H
|
#define SUPPORT_SOURCEMGR_H
|
||||||
|
|
||||||
|
#include "llvm/Support/SMLoc.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
@ -25,26 +27,6 @@ namespace llvm {
|
|||||||
class SourceMgr;
|
class SourceMgr;
|
||||||
class SMDiagnostic;
|
class SMDiagnostic;
|
||||||
class raw_ostream;
|
class raw_ostream;
|
||||||
|
|
||||||
class SMLoc {
|
|
||||||
const char *Ptr;
|
|
||||||
public:
|
|
||||||
SMLoc() : Ptr(0) {}
|
|
||||||
SMLoc(const SMLoc &RHS) : Ptr(RHS.Ptr) {}
|
|
||||||
|
|
||||||
bool isValid() const { return Ptr != 0; }
|
|
||||||
|
|
||||||
bool operator==(const SMLoc &RHS) const { return RHS.Ptr == Ptr; }
|
|
||||||
bool operator!=(const SMLoc &RHS) const { return RHS.Ptr != Ptr; }
|
|
||||||
|
|
||||||
const char *getPointer() const { return Ptr; }
|
|
||||||
|
|
||||||
static SMLoc getFromPointer(const char *Ptr) {
|
|
||||||
SMLoc L;
|
|
||||||
L.Ptr = Ptr;
|
|
||||||
return L;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// SourceMgr - This owns the files read by a parser, handles include stacks,
|
/// SourceMgr - This owns the files read by a parser, handles include stacks,
|
||||||
/// and handles diagnostic wrangling.
|
/// and handles diagnostic wrangling.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user