5 #include <libdbc/exceptions/error.hpp>
6 #include <libdbc/message.hpp>
7 #include <libdbc/signal.hpp>
8 #include <libdbc/utils/utils.hpp>
16 virtual ~
Parser() =
default;
18 virtual void parse_file(
const std::string& file) = 0;
29 virtual void parse_file(
const std::string& file)
final override;
31 std::string get_version()
const;
32 std::vector<std::string> get_nodes()
const;
33 std::vector<libdbc::Message> get_messages()
const;
35 Message::ParseSignalsStatus parseMessage(
const uint32_t
id,
const std::vector<uint8_t>& data, std::vector<double>& out_values);
39 std::vector<std::string> nodes;
40 std::vector<libdbc::Message> messages;
42 const std::regex version_re;
43 const std::regex bit_timing_re;
44 const std::regex name_space_re;
45 const std::regex node_re;
46 const std::regex message_re;
47 const std::regex signal_re;
49 void parse_dbc_header(std::istream& file_stream);
50 void parse_dbc_nodes(std::istream& file_stream);
51 void parse_dbc_messages(
const std::vector<std::string>& lines);