Commit bc99bb1a authored by Dominik Charousset's avatar Dominik Charousset

Fix parsing of maps in config files

parent a364e80a
...@@ -104,6 +104,7 @@ void read_ini_map(state<Iterator, Sentinel>& ps, Consumer&& consumer) { ...@@ -104,6 +104,7 @@ void read_ini_map(state<Iterator, Sentinel>& ps, Consumer&& consumer) {
auto alnum_or_dash = [](char x) { auto alnum_or_dash = [](char x) {
return isalnum(x) || x == '-' || x == '_'; return isalnum(x) || x == '-' || x == '_';
}; };
// clang-format off
start(); start();
state(init) { state(init) {
epsilon(await_key_name) epsilon(await_key_name)
...@@ -123,6 +124,7 @@ void read_ini_map(state<Iterator, Sentinel>& ps, Consumer&& consumer) { ...@@ -123,6 +124,7 @@ void read_ini_map(state<Iterator, Sentinel>& ps, Consumer&& consumer) {
state(await_assignment) { state(await_assignment) {
transition(await_assignment, " \t") transition(await_assignment, " \t")
transition(await_value, '=', consumer.key(std::move(key))) transition(await_value, '=', consumer.key(std::move(key)))
epsilon(await_value, '{', consumer.key(std::move(key)))
} }
// Reads the value in a "key=value" line. // Reads the value in a "key=value" line.
state(await_value) { state(await_value) {
...@@ -149,6 +151,7 @@ void read_ini_map(state<Iterator, Sentinel>& ps, Consumer&& consumer) { ...@@ -149,6 +151,7 @@ void read_ini_map(state<Iterator, Sentinel>& ps, Consumer&& consumer) {
//nop //nop
} }
fin(); fin();
// clang-format on
} }
template <class Iterator, class Sentinel, class Consumer> template <class Iterator, class Sentinel, class Consumer>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment