mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
SourceManager.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <cstddef>
6
#include <string>
7
#include <string_view>
8
#include <utility>
9
#include <vector>
10
11
#include "
mini-llvm/utils/Compiler.h
"
12
13
namespace
mini_llvm
{
14
15
class
MINI_LLVM_EXPORT
SourceManager
{
16
public
:
17
void
setSource
(std::string
source
);
18
19
const
std::string &
source
() const & {
20
return
source_;
21
}
22
23
std::string &&
source
() && {
24
return
std::move(source_);
25
}
26
27
size_t
numLines
()
const
{
28
return
lineStarts_.size();
29
}
30
31
std::string_view
line
(
size_t
lineNum)
const
;
32
33
std::pair<size_t, size_t>
lineColumnNum
(
size_t
location)
const
;
34
35
private
:
36
std::string source_;
37
std::vector<size_t> lineStarts_;
38
std::vector<size_t> lineEnds_;
39
};
40
41
}
// namespace mini_llvm
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
mini_llvm::SourceManager
Definition
SourceManager.h:15
mini_llvm::SourceManager::setSource
void setSource(std::string source)
mini_llvm::SourceManager::source
const std::string & source() const &
Definition
SourceManager.h:19
mini_llvm::SourceManager::lineColumnNum
std::pair< size_t, size_t > lineColumnNum(size_t location) const
mini_llvm::SourceManager::line
std::string_view line(size_t lineNum) const
mini_llvm::SourceManager::source
std::string && source() &&
Definition
SourceManager.h:23
mini_llvm::SourceManager::numLines
size_t numLines() const
Definition
SourceManager.h:27
mini_llvm
Definition
GraphColoringAllocator.h:13
include
mini-llvm
common
SourceManager.h
Generated by
1.17.0