43 #pragma clang diagnostic push 44 #pragma clang diagnostic ignored "-Wglobal-constructors" 45 #pragma clang diagnostic ignored "-Wexit-time-destructors" 49 const std::string error<eos>::error_message =
50 "expected end of statement ';' character";
53 const std::string error<opening_brace>::error_message =
54 "expected opening brace '{'";
57 const std::string error<closing_brace>::error_message =
58 "expected closing brace '}'";
61 const std::string error<unsupported_statement>::error_message =
62 "unsupported statement";
65 const std::string error<default_action_option>::error_message =
66 "expected 'accept' or 'reject'";
69 const std::string error<port>::error_message =
70 "expected a valid port number";
73 const std::string error<address>::error_message =
74 "expected a valid IP address";
77 const std::string error<max_bitrate>::error_message =
78 "expected a valid bitrate";
81 const std::string error<device>::error_message =
82 "expected a valid serial port device name";
85 const std::string error<baudrate>::error_message =
86 "expected a valid baud rate";
89 const std::string error<flow_control>::error_message =
90 "expected 'yes' or 'no'";
93 const std::string error<preload>::error_message =
94 "expected a valid MAVLink address";
97 const std::string error<chain_name>::error_message =
98 "expected a valid chain name";
101 const std::string error<chain>::error_message =
102 "expected a valid chain name";
105 const std::string error<call>::error_message =
106 "expected a valid chain name";
109 const std::string error<goto_>::error_message =
110 "expected a valid chain name";
113 const std::string error<invalid_rule>::error_message =
114 "expected a valid rule";
117 const std::string error<condition_value>::error_message =
118 "condition is empty or invalid";
121 const std::string error<dest>::error_message =
122 "expected a valid MAVLink subnet";
125 const std::string error<source>::error_message =
126 "expected a valid MAVLink subnet";
129 const std::string error<mavaddr>::error_message =
130 "expected a valid MAVLink address";
133 const std::string error<integer>::error_message =
134 "expected an integer";
137 const std::string error<priority>::error_message =
138 "expected priority level";
141 const std::string error<priority_keyword>::error_message =
142 "'with' keyword must be followed by the 'priority' keyword";
145 const std::string error<elements>::error_message =
146 "expected at least one valid statement or block";
149 #pragma clang diagnostic pop 168 const config::parse_tree::node &node,
169 bool print_location,
const std::string &prefix)
171 auto new_prefix = prefix;
177 new_prefix = prefix +
"| ";
179 auto node_name = node.name();
180 node_name.erase(0, 8);
181 const auto begin = node_name.find_first_not_of(
"_");
182 const auto end = node_name.find_last_not_of(
"_");
183 node_name = node_name.substr(begin, end - begin + 1);
188 os <<
":" << std::setfill(
'0') << std::setw(3)
189 << node.begin().line <<
": ";
193 os << prefix << node_name;
196 if (node.has_content())
198 os <<
" " << node.content() <<
"";
205 if (!node.children.empty())
207 for (
auto &up : node.children)
209 print_node(os, *up, print_location, new_prefix);
230 std::ostream &os,
const config::parse_tree::node &node)
std::ostream & print_node(std::ostream &os, const config::parse_tree::node &node, bool print_location, const std::string &prefix)
std::ostream & operator<<(std::ostream &os, const Action &action)