4
Copyright (c) 2021 МГТУ им. Н.Э. Баумана, кафедра ИУ-6, Михаил Фетисов,
6
https://bmstu.codes/lsx/simodo/loom
9
#include "simodo/ast/generator/FormationFlow.h"
15
FormationFlow::FormationFlow()
17
_flow.push_back(&_tree.mutable_root());
18
_flow.back()->_branches.reserve(8);
21
void FormationFlow::addNode(const std::u16string & host,
23
const inout::Token & op_symbol,
24
const inout::Token & bound)
26
assert(!_flow.empty());
28
// Создаём ноду, остаёмся в старой
29
_flow.back()->_branches.emplace_back(host, op, op_symbol, bound);
32
void FormationFlow::addNode_StepInto(const std::u16string & host,
34
const inout::Token & op_symbol,
35
const inout::Token & bound)
37
assert(!_flow.empty());
39
// Создаём ноду и переключаемся на неё
40
_flow.back()->_branches.emplace_back(host, op, op_symbol, bound);
41
_flow.push_back( &(_flow.back()->_branches.back()) );
44
bool FormationFlow::goParent()
46
assert(!_flow.empty());
51
// Возвращаемся на вышестоящую ноду
56
void FormationFlow::addFile(const std::string & file_path)
58
_tree._files.push_back(file_path);