\hypertarget{dbc__parser_8h_source}{}\doxysection{dbc\+\_\+parser.\+h}
\mbox{\hyperlink{dbc__parser_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00001}00001 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00002}00002 \textcolor{comment}{ * @file dbc\_parser.h}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00003}00003 \textcolor{comment}{ * @brief}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00005}00005 \textcolor{comment}{ * Created: 2026-\/03-\/13}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00006}00006 \textcolor{comment}{ * Author: Deeaitch (Dim. Himro)}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00008}00008 \textcolor{comment}{ * Licensed under the MIT License.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00009}00009 \textcolor{comment}{ * See LICENSE file in the project root for full license text.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00010}00010 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00011}00011 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00012}00012 \textcolor{preprocessor}{\#ifndef DBC\_PARSER\_H}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00013}00013 \textcolor{preprocessor}{\#define DBC\_PARSER\_H}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00014}00014 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00015}00015 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00016}00016 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00017}00017 \textcolor{preprocessor}{\#include <cstdint>}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00018}00018 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00019}00019 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dbc__database_8h}{dbc\_database.h}}"{}}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00020}00020 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00021}00021 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00022}00022 \textcolor{comment}{ * @brief Minimal DBC parser.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00023}00023 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00024}00024 \textcolor{comment}{ * Supports:}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00025}00025 \textcolor{comment}{ * -\/ BO\_}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00026}00026 \textcolor{comment}{ * -\/ SG\_}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00027}00027 \textcolor{comment}{ * -\/ CM\_ BO\_}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00028}00028 \textcolor{comment}{ * -\/ CM\_ SG\_}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00029}00029 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00030}00030 \textcolor{comment}{ * Ignores:}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00031}00031 \textcolor{comment}{ * -\/ attributes}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00032}00032 \textcolor{comment}{ * -\/ multiplexing}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00033}00033 \textcolor{comment}{ * -\/ value tables}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00035}\mbox{\hyperlink{classDbcParser}{00035}} \textcolor{keyword}{class }\mbox{\hyperlink{classDbcParser}{DbcParser}} \{}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00036}00036   \textcolor{keyword}{public}:\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00037}00037 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00038}00038 \textcolor{comment}{     * @brief Parse DBC file.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00039}00039 \textcolor{comment}{     * @param filePath Path to input file.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00040}00040 \textcolor{comment}{     * @return Parsed database.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00041}00041 \textcolor{comment}{     * @throws std::runtime\_error on file or parse errors.}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00042}00042 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00043}00043     \mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} \mbox{\hyperlink{classDbcParser_aef72826942c9095d653fafa435855e56}{ParseFile}} (\textcolor{keyword}{const} std::string \&filePath) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00045}00045   \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00046}00046     \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDbcParser_ada086584d371c08dd93b75fb7965f13b}{IsFrameLine}} (\textcolor{keyword}{const} std::string \&line);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00047}00047     \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDbcParser_ace3d3432a55707bc286a994aa205fed1}{IsSignalLine}} (\textcolor{keyword}{const} std::string \&line);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00048}00048     \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDbcParser_ae3488a0a6c64dc95e4ed289e77579feb}{IsCommentLine}} (\textcolor{keyword}{const} std::string \&line);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00049}00049     \textcolor{keyword}{static} std::string \mbox{\hyperlink{classDbcParser_a1ae77c4c356af3d7b01a30044366f02b}{Trim}} (\textcolor{keyword}{const} std::string \&text);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00050}00050     \textcolor{keyword}{static} std::vector<std::string> \mbox{\hyperlink{classDbcParser_a0c1cc3c58f33473bf426a77b7a25c529}{SplitReceivers}} (\textcolor{keyword}{const} std::string \&text);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00051}00051     \textcolor{keyword}{static} std::uint32\_t \mbox{\hyperlink{classDbcParser_a8a7e8fc517e40beab87a8a1dbad2b324}{TryExtractPgn}} (std::uint32\_t canId, \textcolor{keywordtype}{bool} isExtended, \textcolor{keywordtype}{bool} \&hasPgn);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00053}00053     \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{classDbcParser_a94d140d9442e4989b5b2ea7662c2debf}{NormalizeCanId}} (std::uint32\_t rawCanId,}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00054}00054                                 std::uint32\_t \&normalizedCanId,}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00055}00055                                 \textcolor{keywordtype}{bool} \&isExtended);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00056}00056 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00057}00057     \textcolor{keyword}{static} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} \mbox{\hyperlink{classDbcParser_a6d73bb1885e59aecd8202e93a7cd392a}{ParseFrameLine}} (\textcolor{keyword}{const} std::string \&line);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00058}00058     \textcolor{keyword}{static} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} \mbox{\hyperlink{classDbcParser_a4cbce88d08b1f72903ecf1bce41de5d2}{ParseSignalLine}} (\textcolor{keyword}{const} std::string \&line);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00060}00060     \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{classDbcParser_aa662b34694fd8b3edd757f36cb064c5c}{ParseCommentLine}} (\textcolor{keyword}{const} std::string \&line, \mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} \&database);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00062}00062     \textcolor{keyword}{static} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} *\mbox{\hyperlink{classDbcParser_ab1fee32cb845573ce10949b4bec721f9}{FindFrameById}} (\mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} \&database,}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00063}00063                                      std::uint32\_t canId,}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00064}00064                                      \textcolor{keywordtype}{bool} isExtended);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00065}00065 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00066}00066     \textcolor{keyword}{static} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} *\mbox{\hyperlink{classDbcParser_ab7b95be4433c56cc855bedb08b96a71a}{FindSignalByName}} (\mbox{\hyperlink{structFrameInfo}{FrameInfo}} \&frame, \textcolor{keyword}{const} std::string \&signalName);}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00067}00067 \};}
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00069}00069 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* DBC\_PARSER\_H */}\textcolor{preprocessor}{}}

\end{DoxyCode}
