6 #include <libdbc/message.hpp>
15 virtual ~
Parser() =
default;
17 virtual void parse_file(
const std::string& file) = 0;
18 virtual void parse_file(std::istream& file) = 0;
27 void parse_file(
const std::string& file_name)
override;
28 void parse_file(std::istream& stream)
override;
30 std::string get_version()
const;
31 std::vector<std::string> get_nodes()
const;
32 std::vector<Libdbc::Message> get_messages()
const;
34 Message::ParseSignalsStatus parse_message(uint32_t message_id,
const std::vector<uint8_t>& data, std::vector<double>& out_values);
36 std::vector<std::string> unused_lines()
const;
40 std::vector<std::string> nodes;
41 std::vector<Libdbc::Message> messages;
43 std::regex version_re;
44 std::regex bit_timing_re;
45 std::regex name_space_re;
47 std::regex message_re;
51 std::vector<std::string> missed_lines;
53 void parse_dbc_header(std::istream& file_stream);
54 void parse_dbc_nodes(std::istream& file_stream);
55 void parse_dbc_messages(
const std::vector<std::string>& lines);
57 static std::string get_extension(
const std::string& file_name);