0.6.0
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
src
common
visitor
ast_id_mapper.cc
Go to the documentation of this file.
1
/**
2
* @file src/common/visitor/ast_id_mapper.cc
3
*
4
* Copyright (c) 2021-2025 Bartek Kryza <bkryza@gmail.com>
5
*
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
19
#include "
ast_id_mapper.h
"
20
21
namespace
clanguml::common::visitor
{
22
23
void
ast_id_mapper::add
(int64_t ast_id,
eid_t
global_id)
24
{
25
id_map_
[ast_id] = global_id;
26
}
27
28
std::optional<eid_t>
ast_id_mapper::get_global_id
(
eid_t
ast_id)
29
{
30
if
(ast_id.
is_global
())
31
return
{};
32
33
if
(
id_map_
.count(ast_id.
ast_local_value
()) == 0)
34
return
{};
35
36
return
id_map_
.at(ast_id.
ast_local_value
());
37
}
38
39
eid_t
ast_id_mapper::resolve_or
(
eid_t
id
)
40
{
41
if
(
id
.is_global())
42
return
id;
43
44
if
(
id_map_
.count(
id
.ast_local_value()) == 0)
45
return
id;
46
47
return
id_map_
.at(
id
.ast_local_value());
48
}
49
50
}
// namespace clanguml::common::visitor
Copyright © 2022-present
Bartek Kryza
Generated by
1.9.7