MimIR
0.5-dev
MimIR is my Intermediate Representation
Toggle main menu visibility
Loading...
Searching...
No Matches
dfa.cpp
Go to the documentation of this file.
1
#include "
automaton/dfa.h
"
2
3
#include <string>
4
5
#include "
automaton/automaton.h
"
6
7
namespace
automaton
{
8
9
void
DFANode::add_transition
(
const
DFANode
* to, std::uint16_t c) { transitions_[c] = to; }
10
11
const
DFANode
*
DFANode::get_transition
(std::uint16_t c)
const
{
12
if
(erroring_)
return
nullptr
;
13
if
(
auto
i = transitions_.find(c); i != transitions_.end())
return
i->second;
14
return
nullptr
;
15
}
16
17
template
class
AutomatonBase<DFANode>
;
18
19
void
DFANode::print
(std::ostream& os)
const
{
20
auto
print_char = [](std::uint16_t c) -> std::string {
21
if
(c >= 48 && c <= 122)
return
{
static_cast<
char
>
(c)};
22
return
std::to_string(c);
23
};
24
print_node
(os, *
this
, print_char);
25
}
26
27
}
// namespace automaton
automaton.h
automaton::AutomatonBase
Definition
automaton.h:21
automaton::DFANode::print
void print(std::ostream &os) const
Definition
dfa.cpp:19
automaton::DFANode::DFANode
DFANode(int id)
Definition
dfa.h:20
automaton::DFANode::get_transition
const DFANode * get_transition(std::uint16_t c) const
Definition
dfa.cpp:11
automaton::DFANode::add_transition
void add_transition(const DFANode *to, std::uint16_t c)
Definition
dfa.cpp:9
dfa.h
automaton
Definition
automaton.h:15
automaton::print_node
void print_node(std::ostream &os, const NodeType &node, std::invocable< std::uint64_t > auto print_char)
Definition
automaton.h:79
src
automaton
dfa.cpp
Generated by
1.18.0