Refactored JSON sequence diagram generator
This commit is contained in:
@@ -111,6 +111,8 @@ std::string to_string(message_t r)
|
||||
return "end switch";
|
||||
case message_t::kConditional:
|
||||
return "conditional";
|
||||
case message_t::kConditionalElse:
|
||||
return "conditional else";
|
||||
case message_t::kConditionalEnd:
|
||||
return "end conditional";
|
||||
default:
|
||||
|
||||
@@ -61,6 +61,7 @@ enum class message_t {
|
||||
kCase,
|
||||
kSwitchEnd,
|
||||
kConditional,
|
||||
kConditionalElse,
|
||||
kConditionalEnd,
|
||||
kNone
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -76,6 +76,28 @@ private:
|
||||
|
||||
mutable std::vector<std::reference_wrapper<nlohmann::json>>
|
||||
block_statements_stack_;
|
||||
|
||||
void process_call_message(const model::message &m,
|
||||
std::vector<common::model::diagram_element::id_t> &visited) const;
|
||||
|
||||
void process_if_message(const model::message &m) const;
|
||||
void process_else_if_message() const;
|
||||
void process_end_if_message() const;
|
||||
void process_end_conditional_message() const;
|
||||
void process_conditional_else_message() const;
|
||||
void process_conditional_message(const model::message &m) const;
|
||||
void process_end_switch_message() const;
|
||||
void process_case_message(const model::message &m) const;
|
||||
void process_switch_message(const model::message &m) const;
|
||||
void process_end_try_message() const;
|
||||
void process_catch_message() const;
|
||||
void process_try_message(const model::message &m) const;
|
||||
void process_end_do_message() const;
|
||||
void process_do_message(const model::message &m) const;
|
||||
void process_end_for_message() const;
|
||||
void process_for_message(const model::message &m) const;
|
||||
void process_end_while_message() const;
|
||||
void process_while_message(const model::message &m) const;
|
||||
};
|
||||
|
||||
} // namespace clanguml::sequence_diagram::generators::json
|
||||
|
||||
@@ -233,7 +233,7 @@ void generator::generate_activity(const activity &a, std::ostream &ostr,
|
||||
print_debug(m, ostr);
|
||||
ostr << "alt\n";
|
||||
}
|
||||
else if (m.type() == message_t::kElse) {
|
||||
else if (m.type() == message_t::kConditionalElse) {
|
||||
print_debug(m, ostr);
|
||||
ostr << "else\n";
|
||||
}
|
||||
|
||||
@@ -821,7 +821,7 @@ bool translation_unit_visitor::TraverseConditionalOperator(
|
||||
stmt->getTrueExpr());
|
||||
|
||||
if (current_caller_id != 0) {
|
||||
model::message m{message_t::kElse, current_caller_id};
|
||||
model::message m{message_t::kConditionalElse, current_caller_id};
|
||||
set_source_location(*stmt, m);
|
||||
diagram().add_message(std::move(m));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user