MimIR
0.5-dev
MimIR is my Intermediate Representation
Toggle main menu visibility
Loading...
Searching...
No Matches
normalizers.cpp
Go to the documentation of this file.
1
#include <
mim/world.h
>
2
3
#include "
mim/plug/option/option.h
"
4
5
namespace
mim::plug::option
{
6
7
const
Def
*
normalize_unwrap_unsafe
(
const
Def
*,
const
Def
*,
const
Def
* arg) {
8
if
(
auto
name = arg->isa<
Name
>()) arg = name->
op
();
9
if
(
auto
inj = arg->isa<
Inj
>(); inj && inj->
index
() ==
Opt_ctor::Some
)
return
inj->value();
10
11
return
nullptr
;
12
}
13
14
MIM_option_NORMALIZER_IMPL
15
16
}
// namespace mim::plug::option
mim::Def
Base class for all Defs.
Definition
def.h:289
mim::Def::op
const Def * op(size_t i) const noexcept
Definition
def.h:377
mim::Inj
Constructs a Join or Variant value.
Definition
union.h:60
mim::Inj::index
size_t index() const
The case of a Variant this injects into.
Definition
union.h:75
mim::Name
Nominal newtype term introduction.
Definition
nom.h:34
mim::plug::option
The option Plugin
Definition
normalizers.cpp:5
mim::plug::option::normalize_unwrap_unsafe
const Def * normalize_unwrap_unsafe(const Def *, const Def *, const Def *arg)
Definition
normalizers.cpp:7
MIM_option_NORMALIZER_IMPL
#define MIM_option_NORMALIZER_IMPL
Definition
autogen.h:53
option.h
mim::plug::option::Opt_ctor::Some
@ Some
Definition
autogen.h:18
world.h
src
mim
plug
option
normalizers.cpp
Generated by
1.18.0