Skip to content

Commit 896e268

Browse files
committed
factor out module list output
This extracts the code for displaying lists of modules in various formats (plain text, XML, JSON) into a common class.
1 parent 618dd08 commit 896e268

File tree

10 files changed

+31
-174
lines changed

10 files changed

+31
-174
lines changed

src/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ ifneq ($(BUILD_ENV),MSVC)
2121
ebmc.dir: ic3.dir
2222
endif
2323

24-
hw-cbmc.dir: trans-word-level.dir trans-netlist.dir verilog.dir \
24+
hw-cbmc.dir: ebmc.dir trans-word-level.dir trans-netlist.dir verilog.dir \
2525
vhdl.dir smvlang.dir cprover.dir temporal-logic.dir
2626

2727
vlindex.dir: ebmc.dir cprover.dir verilog.dir

src/ebmc/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ SRC = \
3636
ranking_function.cpp \
3737
report_results.cpp \
3838
show_formula_solver.cpp \
39+
show_modules.cpp \
3940
show_properties.cpp \
4041
show_trans.cpp \
4142
tautology_check.cpp \

src/ebmc/build_transition_system.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ Author: Daniel Kroening, dkr@amazon.com
2020
#include <langapi/mode.h>
2121
#include <smvlang/smv_ebmc_language.h>
2222
#include <trans-word-level/show_module_hierarchy.h>
23-
#include <trans-word-level/show_modules.h>
2423

2524
#include "ebmc_error.h"
2625
#include "ebmc_language_file.h"
2726
#include "ebmc_version.h"
2827
#include "output_file.h"
28+
#include "show_modules.h"
2929
#include "transition_system.h"
3030

3131
#include <fstream>
@@ -228,22 +228,25 @@ int get_transition_system(
228228

229229
if(cmdline.isset("show-modules"))
230230
{
231-
show_modules(transition_system.symbol_table, std::cout);
231+
show_modulest::from_symbol_table(transition_system.symbol_table)
232+
.plain_text(std::cout);
232233
return 0;
233234
}
234235

235236
if(cmdline.isset("modules-xml"))
236237
{
237238
auto filename = cmdline.get_value("modules-xml");
238-
auto outfile = output_filet{filename};
239-
show_modules_xml(transition_system.symbol_table, outfile.stream());
239+
auto out_file = output_filet{filename};
240+
show_modulest::from_symbol_table(transition_system.symbol_table)
241+
.xml(out_file.stream());
240242
return 0;
241243
}
242244

243245
if(cmdline.isset("json-modules"))
244246
{
245247
auto out_file = output_filet{cmdline.get_value("json-modules")};
246-
json_modules(transition_system.symbol_table, out_file.stream());
248+
show_modulest::from_symbol_table(transition_system.symbol_table)
249+
.json(out_file.stream());
247250
return 0;
248251
}
249252

src/ebmc/transition_system.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ Author: Daniel Kroening, dkr@amazon.com
2020
#include <langapi/language_util.h>
2121
#include <langapi/mode.h>
2222
#include <trans-word-level/show_module_hierarchy.h>
23-
#include <trans-word-level/show_modules.h>
2423
#include <verilog/verilog_types.h>
2524

2625
#include "ebmc_error.h"

src/hw-cbmc/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ OBJ+= $(CPROVER_DIR)/goto-checker/goto-checker$(LIBEXT) \
3434
$(CPROVER_DIR)/solvers/solvers$(LIBEXT) \
3535
$(CPROVER_DIR)/util/util$(LIBEXT) \
3636
$(CPROVER_DIR)/json/json$(LIBEXT) \
37+
../ebmc/show_modules$(OBJEXT) \
3738
../temporal-logic/temporal-logic$(LIBEXT) \
3839
../trans-netlist/trans_trace$(OBJEXT) \
3940
../trans-word-level/trans-word-level$(LIBEXT)

src/hw-cbmc/hw_cbmc_parse_options.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ Author: Daniel Kroening, kroening@kroening.com
1919
#include <goto-programs/show_properties.h>
2020

2121
#include <ansi-c/goto-conversion/goto_convert_functions.h>
22+
#include <ebmc/show_modules.h>
2223
#include <goto-checker/all_properties_verifier_with_trace_storage.h>
2324
#include <goto-checker/goto_verifier.h>
2425
#include <goto-checker/multi_path_symex_checker.h>
2526
#include <goto-checker/solver_factory.h>
2627
#include <langapi/mode.h>
27-
#include <trans-word-level/show_modules.h>
2828
#include <trans-word-level/trans_trace_word_level.h>
2929
#include <trans-word-level/unwind.h>
3030

@@ -246,7 +246,8 @@ int hw_cbmc_parse_optionst::get_modules(std::list<exprt> &bmc_constraints) {
246246
}
247247
else if(cmdline.isset("show-modules"))
248248
{
249-
show_modules(goto_model.symbol_table, std::cout);
249+
show_modulest::from_symbol_table(goto_model.symbol_table)
250+
.plain_text(std::cout);
250251
return 0; // done
251252
}
252253

src/smvlang/smv_ebmc_language.cpp

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Author: Daniel Kroening, dkr@amazon.com
1616
#include <util/unicode.h>
1717

1818
#include <ebmc/ebmc_error.h>
19+
#include <ebmc/output_file.h>
20+
#include <ebmc/show_modules.h>
1921
#include <ebmc/transition_system.h>
2022

2123
#include "smv_parser.h"
@@ -70,31 +72,30 @@ std::optional<transition_systemt> smv_ebmc_languaget::transition_system()
7072
return {};
7173
}
7274

73-
if(cmdline.isset("show-modules"))
75+
if(
76+
cmdline.isset("show-modules") || cmdline.isset("modules-xml") ||
77+
cmdline.isset("json-modules"))
7478
{
75-
std::size_t count = 0;
76-
auto &out = std::cout;
79+
show_modulest show_modules;
7780

7881
for(const auto &module : parse_tree.module_list)
79-
{
80-
count++;
82+
show_modules.modules.emplace_back(
83+
module.name, module.base_name, "SMV", module.source_location);
8184

82-
out << "Module " << count << ":" << '\n';
85+
auto filename = cmdline.value_opt("outfile").value_or("-");
86+
output_filet output_file{filename};
87+
auto &out = output_file.stream();
8388

84-
out << " Location: " << module.source_location << '\n';
85-
out << " Identifier: " << module.name << '\n';
86-
out << " Name: " << module.base_name << '\n' << '\n';
87-
}
89+
if(cmdline.isset("show-modules"))
90+
show_modules.plain_text(out);
91+
else if(cmdline.isset("modules-xml"))
92+
show_modules.xml(out);
93+
else if(cmdline.isset("json-modules"))
94+
show_modules.json(out);
8895

8996
return {};
9097
}
9198

92-
if(cmdline.isset("modules-xml") || cmdline.isset("json-modules"))
93-
{
94-
//show_modules(cmdline, message_handler);
95-
return {};
96-
}
97-
9899
if(cmdline.isset("show-module-hierarchy"))
99100
{
100101
//show_module_hierarchy(cmdline, message_handler);

src/trans-word-level/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ SRC = counterexample_word_level.cpp \
66
trans_trace_word_level.cpp \
77
instantiate_word_level.cpp \
88
sequence.cpp \
9-
show_modules.cpp \
109
show_module_hierarchy.cpp \
1110
unwind.cpp \
1211
word_level_trans.cpp

src/trans-word-level/show_modules.cpp

Lines changed: 0 additions & 128 deletions
This file was deleted.

src/trans-word-level/show_modules.h

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)