From b949a1f3dca2a7bf90f22df548a02194a4fd3267 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 21 Mar 2018 14:13:29 -0700 Subject: [PATCH] ircd::json: Checkpoint output grammar cleanup. --- ircd/json.cc | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/ircd/json.cc b/ircd/json.cc index 6f31e2107..e073018d6 100644 --- a/ircd/json.cc +++ b/ircd/json.cc @@ -226,35 +226,34 @@ struct ircd::json::output ,"name" }; - const rule value - { - (&object << object) - | (&array << array) - | (&literal << literal) - | ("e << chars << "e) - | (&number << number) - | (&string << string) - ,"value" - }; - - const rule member - { - name << name_sep << value - ,"member" - }; - - const rule object + rule object { object_begin << -(member % value_sep) << object_end ,"object" }; - const rule array + rule array { array_begin << -(value % value_sep) << array_end ,"array" }; + rule member + { + name << name_sep << value + ,"member" + }; + + rule value + { + (&object << object) + | (&array << array) + | (&literal << literal) + | (&number << number) + | (&string << string) + ,"value" + }; + output() :output::base_type{rule<>{}} {}