nixd
Toggle main menu visibility
Loading...
Searching...
No Matches
nixd
include
nixd
Controller
NixTU.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
nixd/Support/OwnedRegion.h
"
4
5
#include "
nixf/Basic/Diagnostic.h
"
6
#include "
nixf/Basic/Nodes/Basic.h
"
7
#include "
nixf/Sema/ParentMap.h
"
8
#include "
nixf/Sema/VariableLookup.h
"
9
10
#include <memory>
11
#include <optional>
12
#include <vector>
13
14
namespace
nixd
{
15
16
/// \brief Holds analyzed information about a document.
17
///
18
/// TU stands for "Translation Unit".
19
class
NixTU
{
20
std::vector<nixf::Diagnostic> Diagnostics;
21
std::shared_ptr<nixf::Node> AST;
22
std::optional<util::OwnedRegion> ASTByteCode;
23
std::unique_ptr<nixf::VariableLookupAnalysis> VLA;
24
std::unique_ptr<nixf::ParentMapAnalysis> PMA;
25
std::shared_ptr<const std::string> Src;
26
27
public
:
28
NixTU
() =
default
;
29
NixTU
(std::vector<nixf::Diagnostic> Diagnostics,
30
std::shared_ptr<nixf::Node> AST,
31
std::optional<util::OwnedRegion> ASTByteCode,
32
std::unique_ptr<nixf::VariableLookupAnalysis> VLA,
33
std::shared_ptr<const std::string> Src);
34
35
[[nodiscard]]
const
std::vector<nixf::Diagnostic> &
diagnostics
()
const
{
36
return
Diagnostics;
37
}
38
39
[[nodiscard]]
const
std::shared_ptr<nixf::Node> &
ast
()
const
{
return
AST; }
40
41
[[nodiscard]]
const
nixf::ParentMapAnalysis
*
parentMap
()
const
{
42
return
PMA.get();
43
}
44
45
[[nodiscard]]
const
nixf::VariableLookupAnalysis
*
variableLookup
()
const
{
46
return
VLA.get();
47
}
48
49
[[nodiscard]] std::string_view
src
()
const
{
return
*Src; }
50
};
51
52
}
// namespace nixd
Basic.h
Diagnostic.h
OwnedRegion.h
ParentMap.h
ParentMap analysis.
VariableLookup.h
Lookup variable names, from it's parent scope.
nixd::NixTU::diagnostics
const std::vector< nixf::Diagnostic > & diagnostics() const
Definition
NixTU.h:35
nixd::NixTU::NixTU
NixTU()=default
nixd::NixTU::src
std::string_view src() const
Definition
NixTU.h:49
nixd::NixTU::parentMap
const nixf::ParentMapAnalysis * parentMap() const
Definition
NixTU.h:41
nixd::NixTU::variableLookup
const nixf::VariableLookupAnalysis * variableLookup() const
Definition
NixTU.h:45
nixd::NixTU::ast
const std::shared_ptr< nixf::Node > & ast() const
Definition
NixTU.h:39
nixf::ParentMapAnalysis
Definition
ParentMap.h:15
nixf::VariableLookupAnalysis
Definition
VariableLookup.h:112
nixd
Definition
CommandLine/Configuration.h:9
Generated by
1.17.0