summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2023-11-18 17:53:35 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2023-11-19 19:27:29 +0900
commitc0a6f1b84c84749908961579b84513fd9f9d9eac (patch)
treeace7ba60cb031acd3a1f4ff10f7bbc5668fa801f /debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli
parent52e5ffe140f0f4402e97936447bc9a606045d2b5 (diff)
downloadextra-dependencies-c0a6f1b84c84749908961579b84513fd9f9d9eac.tar.gz
extra-dependencies-c0a6f1b84c84749908961579b84513fd9f9d9eac.zip
uncrustify-trinity: updated based on upstream version 0.78.0
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli')
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/I-842.cfg0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.txt2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_d.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_nd.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/replace.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/tracking_space.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/truncate.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/unmatched_close_pp.cfg0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-3310.c0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-842.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/backup.h-save4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/class_enum_struct_union.cpp134
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/in_fcn_def.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/logger.cs4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/replace.list2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrc.cpp16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrcP.cpp19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/tracking_space.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/truncate.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/unmatched_close_pp.cpp12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/21.txt2007
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/25.txt226
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/28.txt430
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/31.txt924
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/36.txt19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/66.txt839
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/9.txt1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/92.txt196
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/Debug_tracking_space.html23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/I-842.txt0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/backup.h4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.csv685
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.txt692
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/copyright-header.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/help.txt85
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/in_fcn_def.txt62
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/logger_cs_L_99.txt8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/p.txt148
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/pc-.txt10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/replace.txt2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/truncate.txt16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/universalindent.cfg7585
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/unmatched_close_pp.txt0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/v-out.txt1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/xyz-err.txt2
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py940
47 files changed, 15170 insertions, 0 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/I-842.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/I-842.cfg
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/I-842.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.cfg
new file mode 100644
index 00000000..13d5020b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.cfg
@@ -0,0 +1 @@
+cmt_insert_file_header = copyright-header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.txt
new file mode 100644
index 00000000..f96c1ae8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/copyright-header.txt
@@ -0,0 +1,2 @@
+// Copyright $(year)
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_d.cfg
new file mode 100644
index 00000000..ddd51138
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_d.cfg
@@ -0,0 +1,7 @@
+# should create a warning and not appear in the actual config
+not_existing_option = 1
+
+# option with default setting, depending on uncrustify call can
+# be omitted, if not it should stay the same
+# non default counter = 0
+input_tab_size = 8 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_nd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_nd.cfg
new file mode 100644
index 00000000..1fe66176
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/mini_nd.cfg
@@ -0,0 +1,8 @@
+include "mini_d.cfg"
+
+# option with non default setting, should stay the same
+# non default counter = 1
+newlines = crlf
+
+# decode (or not) the flags as a new line.
+debug_decode_the_flags = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/replace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/replace.cfg
new file mode 100644
index 00000000..16473bf2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/replace.cfg
@@ -0,0 +1,4 @@
+indent_columns = 3
+indent_with_tabs = 0
+sp_arith = force
+sp_assign = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/tracking_space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/tracking_space.cfg
new file mode 100644
index 00000000..8b37aa38
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/tracking_space.cfg
@@ -0,0 +1,4 @@
+indent_with_tabs = 0
+indent_columns = 3
+sp_arith = force
+sp_assign = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/truncate.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/truncate.cfg
new file mode 100644
index 00000000..cc48c57e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/truncate.cfg
@@ -0,0 +1 @@
+debug_truncate = 38
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/unmatched_close_pp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/unmatched_close_pp.cfg
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/config/unmatched_close_pp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-3310.c b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-3310.c
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-3310.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-842.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-842.cpp
new file mode 100644
index 00000000..7f7bcaf3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/I-842.cpp
@@ -0,0 +1,9 @@
+namespace Namespace
+{
+ // class Class {
+ public void foo()
+ {
+
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/backup.h-save b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/backup.h-save
new file mode 100644
index 00000000..9a66578c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/backup.h-save
@@ -0,0 +1,4 @@
+int main()
+{
+ a=b+c;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/class_enum_struct_union.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/class_enum_struct_union.cpp
new file mode 100644
index 00000000..6a72c823
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/class_enum_struct_union.cpp
@@ -0,0 +1,134 @@
+ /**
+ * the enum (and variable declarations thereof) could be of
+ * the following forms:
+ *
+ * "enum type [: integral_type] { ... } [x, ...]"
+ * "enum type [: integral_type]"
+ * "enum class type [: integral_type] { ... } [x, ...]"
+ * "enum class type [: integral_type]"
+ * "enum [: integral_type] { ... } x, ..."
+ */
+
+ /**
+ * the class/struct (and variable declarations thereof) could be of
+ * the following forms:
+ *
+ * template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }
+ * template<...> class/struct[<...>] [macros/attributes ...] type
+ * class/struct[ [macros/attributes ...] type [: bases ...] { } [x, ...]
+ * class/struct [macros/attributes ...] type [x, ...]
+ * class/struct [macros/attributes ...] [: bases] { } x, ...
+ */
+
+#define ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
+
+#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))
+#define API_EXPORT __attribute__ ((visibility("default")))
+#elif defined _WIN32
+#define API_EXPORT __declspec(dllexport)
+#else
+#define API_EXPORT
+#endif
+
+namespace outer_namespace
+{
+
+namespace inner_namespace
+{
+
+class Base1 { };
+
+template<typename> class Base2 { };
+
+}
+
+}
+
+// template<...> class/struct[<...>] [macros/attributes ...] type : bases ... { }
+template<typename, typename ...>
+class API_EXPORT __attribute__((__deprecated__)) ALIGNAS(4) c1
+: public outer_namespace::inner_namespace::Base1,
+ public outer_namespace::inner_namespace::Base2<outer_namespace::inner_namespace::Base1>
+{
+
+};
+
+// template<...> class/struct[<...>] [macros/attributes ...] type { }
+template<typename, typename ...>
+class API_EXPORT c2
+{
+public:
+
+ template<typename T>
+ struct inner_class
+ {
+ static inner_class<T> *m_inner_class;
+ };
+};
+
+template<> template<> struct API_EXPORT c2<int>::inner_class<int> *c2<int>::inner_class<int>::m_inner_class = nullptr;
+
+// template<...> class/struct[<...>] [macros/attributes ...] type
+template<typename, typename ...>
+class API_EXPORT c2;
+
+// class/struct [macros/attributes ...] type : bases ... { } x, ...
+class API_EXPORT __attribute__((__deprecated__)) ALIGNAS(4) c3
+: public outer_namespace::inner_namespace::Base2<int>,
+ public c2<int>::inner_class<int>
+{
+public:
+ c3(int x = 0, int y = 0, int z = 0) : m_x(x), m_y(y), m_z(z) { }
+
+ int m_x;
+ int m_y;
+ int m_z;
+} c31, *c32 = nullptr, *c33[] = { nullptr, nullptr }, c34{ 0, 1, 2}, * const c35(nullptr), c16(0, 1, 2);
+
+// class/struct [macros/attributes ...] type x, ...
+class __attribute__((__deprecated__)) API_EXPORT ALIGNAS(4) c3 c41, *c42 = c32 ? c32 : nullptr, *c43[] = { nullptr, nullptr }, c44{ 0, 1, 2}, * const c45(nullptr), c46(0, 1, 2);
+
+// class/struct [macros/attributes ...] type : bases ... { } x, ...
+class ALIGNAS(4) API_EXPORT __attribute__((__deprecated__))
+: public outer_namespace::inner_namespace::Base1
+{
+public:
+ int m_x;
+ int m_y;
+ int m_z;
+} c51, *c52 = nullptr, *c53[] = { nullptr, nullptr };
+
+
+// enum type : integral_type { ... } x, ...
+enum e1 : long long { a1, b1, d1 } e11, e12, e13;
+
+// enum type : integral_type { ... }
+enum e2 : unsigned int { a2, b2, d2 };
+
+// enum type : integral_type
+enum e3 : short;
+
+// enum type x, ...
+enum e3 e31, e32;
+
+// enum class type : integral_type { ... } x, ...
+enum class e4 : long long { a4, b4, d4 } e41, e42, e43, e44;
+
+// enum class type : integral_type { ... }
+enum class e5 : unsigned int { a5, b5, d5 };
+
+// enum class type : integral_type
+enum class e6 : short;
+
+// enum class type
+enum class e7;
+
+// enum : integral_type { ... } x, ...
+enum : long long { a8, b8, c8 } e81, e82;
+
+// enum { ... } x, ...
+enum { a9, b9, c9 } e91, e92;
+
+union API_EXPORT u1 { int x; long y; } u11, *u12 = nullptr, *u13{0};
+
+union API_EXPORT u1 u21;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/in_fcn_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/in_fcn_def.cpp
new file mode 100644
index 00000000..d0ba6b3c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/in_fcn_def.cpp
@@ -0,0 +1,5 @@
+void (*fnPtr)(int i, double d);
+void function(int i, double d);
+typedef void (*fnPtr)(int i, double d);
+typedef void function(int i, double d);
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/logger.cs
new file mode 100644
index 00000000..defede8a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/logger.cs
@@ -0,0 +1,4 @@
+// Turning on sp_inside_braces=add fixes it, but also changes a lot of initializer code we don't want to touch (like x = {1}). May need special support, or perhaps there's a bug..
+// long comment line(s), such as here, might be too long to produce a correct LOG-file such as
+// with the use of option -L A
+// in such a case, the output of the log will be cut.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/replace.list b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/replace.list
new file mode 100644
index 00000000..009e6f33
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/replace.list
@@ -0,0 +1,2 @@
+input/I-3310.c
+input/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrc.cpp
new file mode 100644
index 00000000..1a22f6d9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrc.cpp
@@ -0,0 +1,16 @@
+struct TelegramIndex
+{
+TelegramIndex(const char* pN, unsigned long nI) :
+pTelName(pN),
+nTelIndex(n)
+{
+}
+
+~TelegramIndex()
+{
+}
+
+const char* const pTelName;
+unsigned long nTelIndex;
+};
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrcP.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrcP.cpp
new file mode 100644
index 00000000..85e36674
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/testSrcP.cpp
@@ -0,0 +1,19 @@
+#define x s23_foo += \
+s8_foo * s16_bar;
+
+struct TelegramIndex
+{
+TelegramIndex(const char* pN, unsigned long nI) :
+pTelName(pN),
+nTelIndex(n)
+{
+}
+
+~TelegramIndex()
+{
+}
+
+const char* const pTelName;
+unsigned long nTelIndex;
+};
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/tracking_space.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/tracking_space.cpp
new file mode 100644
index 00000000..5b0b8aa1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/tracking_space.cpp
@@ -0,0 +1,11 @@
+{
+ a = b + 111-55;
+}
+template<typename...A, int...B>
+struct foo1:foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ bool b = x > 1;
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/truncate.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/truncate.cpp
new file mode 100644
index 00000000..7ef9530d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/truncate.cpp
@@ -0,0 +1,4 @@
+// 1 6789A123456789B123456789c123456789d123456789 123456789 123456789 123
+// 2 6789A123456789B123456789c123456789
+// 3 6789A123456789B123456789c12345678
+// 4 6789A123456789B123456789c1234567
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/unmatched_close_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/unmatched_close_pp.cpp
new file mode 100644
index 00000000..b79d12fd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/input/unmatched_close_pp.cpp
@@ -0,0 +1,12 @@
+#ifndef _Include_H
+#define _Include_H
+namespace Namespace
+{
+ // class Class {
+ public void foo()
+ {
+
+ }
+ }
+}
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/21.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/21.txt
new file mode 100644
index 00000000..2df9b875
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/21.txt
@@ -0,0 +1,2007 @@
+log_rule(indent_text : rule is 'indent_columns'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 1, pc->GetColumn() is 1, pc->Text() is 'struct, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 1, indent_column set to 1, for 'struct'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 2, pc->GetColumn() is 1, pc->Text() is '{, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 2, indent_column set to 1, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 3, pc->GetColumn() is 1, pc->Text() is 'TelegramIndex, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 3, indent_column set to 9, for 'TelegramIndex'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_class_colon'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 4, pc->GetColumn() is 1, pc->Text() is 'pTelName, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 4, indent_column set to 17, for 'pTelName'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 5, pc->GetColumn() is 1, pc->Text() is 'nTelIndex, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 5, indent_column set to 17, for 'nTelIndex'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 6, pc->GetColumn() is 1, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 6, indent_column set to 9, for '{'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 7, pc->GetColumn() is 1, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 7, indent_column set to 9, for '}'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 9, pc->GetColumn() is 1, pc->Text() is '~, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 9, indent_column set to 9, for '~'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 10, pc->GetColumn() is 1, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 10, indent_column set to 9, for '{'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 11, pc->GetColumn() is 1, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 11, indent_column set to 9, for '}'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 13, pc->GetColumn() is 1, pc->Text() is 'const, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 13, indent_column set to 9, for 'const'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 14, pc->GetColumn() is 1, pc->Text() is 'unsigned, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 14, indent_column set to 9, for 'unsigned'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 15, pc->GetColumn() is 1, pc->Text() is '}, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 15, indent_column set to 1, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_columns'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 1, pc->GetColumn() is 1, pc->Text() is 'struct, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 1, indent_column set to 1, for 'struct'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 2, pc->GetColumn() is 1, pc->Text() is '{, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 2, indent_column set to 1, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 3, pc->GetColumn() is 9, pc->Text() is 'TelegramIndex, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 3, indent_column set to 9, for 'TelegramIndex'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_class_colon'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 4, pc->GetColumn() is 17, pc->Text() is 'pTelName, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 4, indent_column set to 17, for 'pTelName'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 5, pc->GetColumn() is 17, pc->Text() is 'nTelIndex, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 5, indent_column set to 17, for 'nTelIndex'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 6, pc->GetColumn() is 9, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 6, indent_column set to 9, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 7, pc->GetColumn() is 9, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 7, indent_column set to 9, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 9, pc->GetColumn() is 9, pc->Text() is '~, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 9, indent_column set to 9, for '~'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 10, pc->GetColumn() is 9, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 10, indent_column set to 9, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 11, pc->GetColumn() is 9, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 11, indent_column set to 9, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 13, pc->GetColumn() is 9, pc->Text() is 'const, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 13, indent_column set to 9, for 'const'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 14, pc->GetColumn() is 9, pc->Text() is 'unsigned, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 14, indent_column set to 9, for 'unsigned'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 15, pc->GetColumn() is 1, pc->Text() is '}, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig line is 15, indent_column set to 1, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is false
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/25.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/25.txt
new file mode 100644
index 00000000..cf117b66
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/25.txt
@@ -0,0 +1,226 @@
+Newline loop start: 0
+log_rule(newlines_cleanup_braces : rule is 'nl_struct_brace'
+log_rule(newlines_struct_union : rule is 'nl_define_macro'
+log_rule(newlines_cleanup_braces : rule is 'nl_ds_struct_enum_cmt'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_brace_pair : rule is 'nl_define_macro'
+log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
+log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
+newline_add_between : start->Text() is ';', type is SEMICOLON, orig line is 14, orig col is 24
+newline_add_between : and end->Text() is '}', orig line is 15, orig col is 1
+ [CallStack]
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_before_opening_brace_func_class_def'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_brace_pair : rule is 'nl_define_macro'
+log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace_cond'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace'
+log_rule(newlines_brace_pair : rule is 'nl_collapse_empty_body'
+log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig line is 6, orig col is 1
+newline_add_between : and end->Text() is '}', orig line is 7, orig col is 1
+ [CallStack]
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig line is 6, orig col is 1
+newline_add_between : and end->Text() is '}', orig line is 7, orig col is 1
+ [CallStack]
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_brace_close'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_before_opening_brace_func_class_def'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_brace_pair : rule is 'nl_define_macro'
+log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace_cond'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace'
+log_rule(newlines_brace_pair : rule is 'nl_collapse_empty_body'
+log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig line is 10, orig col is 1
+newline_add_between : and end->Text() is '}', orig line is 11, orig col is 1
+ [CallStack]
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig line is 10, orig col is 1
+newline_add_between : and end->Text() is '}', orig line is 11, orig col is 1
+ [CallStack]
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_brace_close'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
+log_rule(newline_var_def_blk : rule is 'nl_var_def_blk_start'
+log_rule(newline_var_def_blk : rule is 'nl_var_def_blk_in'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_proto'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_proto'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_proto'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_proto'
+log_rule(newlines_class_colon_pos : rule is 'pos_class_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_class_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_class_init_args'
+log_rule(newlines_class_colon_pos : rule is 'pos_class_comma'
+log_rule(newlines_class_colon_pos : rule is 'align_constr_value_span'
+log_rule(newlines_class_colon_pos : rule is 'pos_constr_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_constr_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_constr_init_args'
+log_rule(newlines_class_colon_pos : rule is 'pos_constr_comma'
+log_rule(newlines_class_colon_pos : rule is 'align_constr_value_span'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(do_blank_lines : rule is 'nl_after_class'
+log_rule(do_blank_lines : rule is 'nl_after_struct'
+log_rule(newlines_functions_remove_extra_blank_lines : rule is 'nl_max_blank_in_func'
+newlines_functions_remove_extra_blank_lines : nl_max_blank_in_func is zero
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/28.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/28.txt
new file mode 100644
index 00000000..f08fdda1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/28.txt
@@ -0,0 +1,430 @@
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(tokenize : rule is 'newlines'
+brace_cleanup : orig line is 1, orig col is 1, Text() 'struct', type is STRUCT, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 1, orig col is 1, type is STRUCT, tos is 0, TOS.type is EOF, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 1, type is STRUCT, Text() is 'struct'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+brace_cleanup : orig line is 1, orig col is 8, Text() 'TelegramIndex', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 1, orig col is 8, type is TYPE, tos is 0, TOS.type is EOF, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 1, type is TYPE, Text() is 'TelegramIndex'
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 2, expression count is 2
+brace_cleanup : orig line is 1, orig col is 21, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 2, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 2, orig col is 1, type is BRACE_OPEN, tos is 0, TOS.type is EOF, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 2, type is BRACE_OPEN, Text() is '{'
+parse_cleanup : frame statement count is 2, expression count is 2
+parse_cleanup : frame statement count is 3, expression count is 3
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 2, orig col is 2, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 3, orig col is 1, Text() 'TelegramIndex', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is WORD, Text() is 'TelegramIndex'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+brace_cleanup : orig line is 3, orig col is 14, Text() '(', type is PAREN_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 14, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 3, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 2, expression count is 2
+brace_cleanup : orig line is 3, orig col is 15, Text() 'const', type is QUALIFIER, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 15, type is QUALIFIER, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is QUALIFIER, Text() is 'const'
+parse_cleanup : frame statement count is 2, expression count is 0
+parse_cleanup : frame statement count is 3, expression count is 1
+brace_cleanup : orig line is 3, orig col is 21, Text() 'char', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 21, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is TYPE, Text() is 'char'
+parse_cleanup : frame statement count is 3, expression count is 1
+parse_cleanup : frame statement count is 4, expression count is 2
+brace_cleanup : orig line is 3, orig col is 25, Text() '*', type is PTR_TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 25, type is PTR_TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 3, type is PTR_TYPE, Text() is '*'
+parse_cleanup : frame statement count is 4, expression count is 2
+parse_cleanup : frame statement count is 5, expression count is 3
+brace_cleanup : orig line is 3, orig col is 27, Text() 'pN', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 27, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is WORD, Text() is 'pN'
+parse_cleanup : frame statement count is 5, expression count is 3
+parse_cleanup : frame statement count is 6, expression count is 4
+brace_cleanup : orig line is 3, orig col is 29, Text() ',', type is COMMA, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 29, type is COMMA, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 3, type is COMMA, Text() is ','
+parse_cleanup : frame statement count is 6, expression count is 4
+parse_cleanup : frame statement count is 7, expression count is 5
+brace_cleanup : orig line is 3, orig col is 31, Text() 'unsigned', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 31, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is TYPE, Text() is 'unsigned'
+parse_cleanup : frame statement count is 7, expression count is 0
+parse_cleanup : frame statement count is 8, expression count is 1
+brace_cleanup : orig line is 3, orig col is 40, Text() 'long', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 40, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is TYPE, Text() is 'long'
+parse_cleanup : frame statement count is 8, expression count is 1
+parse_cleanup : frame statement count is 9, expression count is 2
+brace_cleanup : orig line is 3, orig col is 45, Text() 'nI', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 45, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 3, type is WORD, Text() is 'nI'
+parse_cleanup : frame statement count is 9, expression count is 2
+parse_cleanup : frame statement count is 10, expression count is 3
+brace_cleanup : orig line is 3, orig col is 47, Text() ')', type is PAREN_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 47, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 3, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frame statement count is 10, expression count is 3
+parse_cleanup : frame statement count is 11, expression count is 4
+brace_cleanup : orig line is 3, orig col is 49, Text() ':', type is COLON, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 3, orig col is 49, type is COLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 3, type is COLON, Text() is ':'
+parse_cleanup : frame statement count is 11, expression count is 4
+parse_cleanup : frame statement count is 12, expression count is 5
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 3, orig col is 50, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 4, orig col is 1, Text() 'pTelName', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 4, orig col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 4, type is WORD, Text() is 'pTelName'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+brace_cleanup : orig line is 4, orig col is 9, Text() '(', type is PAREN_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 4, orig col is 9, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 4, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 2, expression count is 2
+brace_cleanup : orig line is 4, orig col is 10, Text() 'pN', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 4, orig col is 10, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 4, type is WORD, Text() is 'pN'
+parse_cleanup : frame statement count is 2, expression count is 0
+parse_cleanup : frame statement count is 3, expression count is 1
+brace_cleanup : orig line is 4, orig col is 12, Text() ')', type is PAREN_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 4, orig col is 12, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 4, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frame statement count is 3, expression count is 1
+parse_cleanup : frame statement count is 4, expression count is 2
+brace_cleanup : orig line is 4, orig col is 13, Text() ',', type is COMMA, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 4, orig col is 13, type is COMMA, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 4, type is COMMA, Text() is ','
+parse_cleanup : frame statement count is 4, expression count is 2
+parse_cleanup : frame statement count is 5, expression count is 3
+brace_cleanup : orig line is 4, orig col is 14, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 5, orig col is 1, Text() 'nTelIndex', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 5, orig col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 5, type is WORD, Text() is 'nTelIndex'
+parse_cleanup : frame statement count is 5, expression count is 0
+parse_cleanup : frame statement count is 6, expression count is 1
+brace_cleanup : orig line is 5, orig col is 10, Text() '(', type is PAREN_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 5, orig col is 10, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 5, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frame statement count is 6, expression count is 1
+parse_cleanup : frame statement count is 7, expression count is 2
+brace_cleanup : orig line is 5, orig col is 11, Text() 'n', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 5, orig col is 11, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 5, type is WORD, Text() is 'n'
+parse_cleanup : frame statement count is 7, expression count is 0
+parse_cleanup : frame statement count is 8, expression count is 1
+brace_cleanup : orig line is 5, orig col is 12, Text() ')', type is PAREN_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 5, orig col is 12, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 5, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frame statement count is 8, expression count is 1
+parse_cleanup : frame statement count is 9, expression count is 2
+brace_cleanup : orig line is 5, orig col is 13, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 6, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 6, orig col is 1, type is BRACE_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 6, type is BRACE_OPEN, Text() is '{'
+parse_cleanup : frame statement count is 9, expression count is 2
+parse_cleanup : frame statement count is 10, expression count is 3
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 6, orig col is 2, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 7, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 7, orig col is 1, type is BRACE_CLOSE, tos is 2, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 7, type is BRACE_CLOSE, Text() is '}'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 7, orig col is 2, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 9, orig col is 1, Text() '~', type is INV, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 9, orig col is 1, type is INV, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 9, type is INV, Text() is '~'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+brace_cleanup : orig line is 9, orig col is 2, Text() 'TelegramIndex', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 9, orig col is 2, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 9, type is WORD, Text() is 'TelegramIndex'
+parse_cleanup : frame statement count is 1, expression count is 0
+parse_cleanup : frame statement count is 2, expression count is 1
+brace_cleanup : orig line is 9, orig col is 15, Text() '(', type is PAREN_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 9, orig col is 15, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 9, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frame statement count is 2, expression count is 1
+parse_cleanup : frame statement count is 3, expression count is 2
+brace_cleanup : orig line is 9, orig col is 16, Text() ')', type is PAREN_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 9, orig col is 16, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 9, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frame statement count is 3, expression count is 0
+parse_cleanup : frame statement count is 4, expression count is 1
+brace_cleanup : orig line is 9, orig col is 17, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 10, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 10, orig col is 1, type is BRACE_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 10, type is BRACE_OPEN, Text() is '{'
+parse_cleanup : frame statement count is 4, expression count is 1
+parse_cleanup : frame statement count is 5, expression count is 2
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 10, orig col is 2, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 11, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 11, orig col is 1, type is BRACE_CLOSE, tos is 2, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 11, type is BRACE_CLOSE, Text() is '}'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 11, orig col is 2, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 13, orig col is 1, Text() 'const', type is QUALIFIER, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 13, orig col is 1, type is QUALIFIER, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 13, type is QUALIFIER, Text() is 'const'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+brace_cleanup : orig line is 13, orig col is 7, Text() 'char', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 13, orig col is 7, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 13, type is TYPE, Text() is 'char'
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 2, expression count is 2
+brace_cleanup : orig line is 13, orig col is 11, Text() '*', type is PTR_TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 13, orig col is 11, type is PTR_TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 13, type is PTR_TYPE, Text() is '*'
+parse_cleanup : frame statement count is 2, expression count is 2
+parse_cleanup : frame statement count is 3, expression count is 3
+brace_cleanup : orig line is 13, orig col is 13, Text() 'const', type is QUALIFIER, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 13, orig col is 13, type is QUALIFIER, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 13, type is QUALIFIER, Text() is 'const'
+parse_cleanup : frame statement count is 3, expression count is 3
+parse_cleanup : frame statement count is 4, expression count is 4
+brace_cleanup : orig line is 13, orig col is 19, Text() 'pTelName', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 13, orig col is 19, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 13, type is WORD, Text() is 'pTelName'
+parse_cleanup : frame statement count is 4, expression count is 4
+parse_cleanup : frame statement count is 5, expression count is 5
+brace_cleanup : orig line is 13, orig col is 27, Text() ';', type is SEMICOLON, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 13, orig col is 27, type is SEMICOLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 13, type is SEMICOLON, Text() is ';'
+parse_cleanup : frame statement count is 5, expression count is 5
+parse_cleanup : frame statement count is 6, expression count is 6
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 13, orig col is 28, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 14, orig col is 1, Text() 'unsigned', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 14, orig col is 1, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 14, type is TYPE, Text() is 'unsigned'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+brace_cleanup : orig line is 14, orig col is 10, Text() 'long', type is TYPE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 14, orig col is 10, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 14, type is TYPE, Text() is 'long'
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 2, expression count is 2
+brace_cleanup : orig line is 14, orig col is 15, Text() 'nTelIndex', type is WORD, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 14, orig col is 15, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x0:]
+parse_cleanup : orig line is 14, type is WORD, Text() is 'nTelIndex'
+parse_cleanup : frame statement count is 2, expression count is 2
+parse_cleanup : frame statement count is 3, expression count is 3
+brace_cleanup : orig line is 14, orig col is 24, Text() ';', type is SEMICOLON, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 14, orig col is 24, type is SEMICOLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 14, type is SEMICOLON, Text() is ';'
+parse_cleanup : frame statement count is 3, expression count is 3
+parse_cleanup : frame statement count is 4, expression count is 4
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 14, orig col is 25, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+brace_cleanup : orig line is 15, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 15, orig col is 1, type is BRACE_CLOSE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 15, type is BRACE_CLOSE, Text() is '}'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 15, orig col is 2, Text() ';', type is SEMICOLON, PRE is false
+brace_cleanup : pp level is 0
+parse_cleanup : orig line is 15, orig col is 2, type is SEMICOLON, tos is 0, TOS.type is EOF, TOS.stage is NONE, chunk flags: [0x200000000:PUNCTUATOR]
+parse_cleanup : orig line is 15, type is SEMICOLON, Text() is ';'
+parse_cleanup : frame statement count is 0, expression count is 0
+parse_cleanup : frame statement count is 1, expression count is 1
+parse_cleanup : frame statement count is 0, expression count is 0
+brace_cleanup : orig line is 15, orig col is 3, <Newline>, PRE is false
+brace_cleanup : pp level is 0
+parameter_pack_cleanup : orig line is 1, orig col is 1, Text() 'struct', type is STRUCT, PRE is false
+parameter_pack_cleanup : orig line is 1, orig col is 8, Text() 'TelegramIndex', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 1, orig col is 21, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 2, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 2, orig col is 2, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 1, Text() 'TelegramIndex', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 14, Text() '(', type is PAREN_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 15, Text() 'const', type is QUALIFIER, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 21, Text() 'char', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 25, Text() '*', type is PTR_TYPE, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 27, Text() 'pN', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 29, Text() ',', type is COMMA, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 31, Text() 'unsigned', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 40, Text() 'long', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 45, Text() 'nI', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 47, Text() ')', type is PAREN_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 49, Text() ':', type is COLON, PRE is false
+parameter_pack_cleanup : orig line is 3, orig col is 50, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 4, orig col is 1, Text() 'pTelName', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 4, orig col is 9, Text() '(', type is PAREN_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 4, orig col is 10, Text() 'pN', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 4, orig col is 12, Text() ')', type is PAREN_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 4, orig col is 13, Text() ',', type is COMMA, PRE is false
+parameter_pack_cleanup : orig line is 4, orig col is 14, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 5, orig col is 1, Text() 'nTelIndex', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 5, orig col is 10, Text() '(', type is PAREN_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 5, orig col is 11, Text() 'n', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 5, orig col is 12, Text() ')', type is PAREN_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 5, orig col is 13, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 6, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 6, orig col is 2, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 7, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 7, orig col is 2, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 9, orig col is 1, Text() '~', type is INV, PRE is false
+parameter_pack_cleanup : orig line is 9, orig col is 2, Text() 'TelegramIndex', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 9, orig col is 15, Text() '(', type is PAREN_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 9, orig col is 16, Text() ')', type is PAREN_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 9, orig col is 17, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 10, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+parameter_pack_cleanup : orig line is 10, orig col is 2, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 11, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 11, orig col is 2, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 1, Text() 'const', type is QUALIFIER, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 7, Text() 'char', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 11, Text() '*', type is PTR_TYPE, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 13, Text() 'const', type is QUALIFIER, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 19, Text() 'pTelName', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 27, Text() ';', type is SEMICOLON, PRE is false
+parameter_pack_cleanup : orig line is 13, orig col is 28, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 14, orig col is 1, Text() 'unsigned', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 14, orig col is 10, Text() 'long', type is TYPE, PRE is false
+parameter_pack_cleanup : orig line is 14, orig col is 15, Text() 'nTelIndex', type is WORD, PRE is false
+parameter_pack_cleanup : orig line is 14, orig col is 24, Text() ';', type is SEMICOLON, PRE is false
+parameter_pack_cleanup : orig line is 14, orig col is 25, <Newline>, PRE is false
+parameter_pack_cleanup : orig line is 15, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+parameter_pack_cleanup : orig line is 15, orig col is 2, Text() ';', type is SEMICOLON, PRE is false
+parameter_pack_cleanup : orig line is 15, orig col is 3, <Newline>, PRE is false
+log_rule(enum_cleanup : rule is 'mod_enum_last_comma'
+newline_var_def_blk : orig line is 1, orig col is 1, Text() 'struct', type is STRUCT, PRE is false
+newline_var_def_blk : orig line is 15, orig col is 3, <Newline>, PRE is false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/31.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/31.txt
new file mode 100644
index 00000000..515b6978
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/31.txt
@@ -0,0 +1,924 @@
+indent_text : orig line is 1, orig col is 1, Text() 'struct', type is STRUCT, PRE is false
+indent_text : orig line is 1, orig col is 1, column is 1, for 'struct'
+ chunk flags: [0xe0000:FORCE_SPACE,STMT_START,EXPR_START]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 1, Text() is 'struct', type is STRUCT
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+reindent_line : orig line is 1, orig col is 1, on 'struct' [STRUCT/NONE] => 1
+ [CallStack]
+indent_text : pc orig line is 1, orig col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : orig line is 1, orig col is 8, Text() 'TelegramIndex', type is TYPE, PRE is false
+indent_text : orig line is 1, orig col is 8, column is 8, for 'TelegramIndex'
+ chunk flags: [0x0:]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 21, Text() is '', type is NEWLINE
+indent_text : orig line is 1, orig col is 21, <Newline>, PRE is false
+indent_text : orig line is 1, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 21, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 2, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig line is 2, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+indent_text : orig line is 2, orig col is 1, column is 1, for '{'
+ chunk flags: [0x200000400:IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 2, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 1, ... indent is 9
+indent_text : orig line is 2, orig col is 1, Text() is '{', parent type is STRUCT
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 2, orig col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
+ [CallStack]
+indent_text : pc orig line is 2, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 2, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 2, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 3, orig col is 1, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig line is 3, orig col is 1, Text() 'TelegramIndex', type is FUNC_CLASS_DEF, PRE is false
+indent_text : orig line is 3, orig col is 1, column is 1, for 'TelegramIndex'
+ chunk flags: [0xc0402:IN_STRUCT,IN_CLASS,STMT_START,EXPR_START]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 3, orig col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
+ [CallStack]
+indent_text : pc orig line is 3, orig col is 14, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 3, orig col is 14, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 3, orig col is 14, column is 22, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 15, Text() is 'const', type is QUALIFIER
+indent_text : orig line is 3, orig col is 15, Text() 'const', type is QUALIFIER, PRE is false
+indent_text : orig line is 3, orig col is 15, column is 23, for 'const'
+ chunk flags: [0xa0512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 21, Text() is 'char', type is TYPE
+indent_text : orig line is 3, orig col is 21, Text() 'char', type is TYPE, PRE is false
+indent_text : orig line is 3, orig col is 21, column is 29, for 'char'
+ chunk flags: [0x800512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_TYPE]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 25, Text() is '*', type is PTR_TYPE
+indent_text : orig line is 3, orig col is 25, Text() '*', type is PTR_TYPE, PRE is false
+indent_text : orig line is 3, orig col is 25, column is 33, for '*'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 27, Text() is 'pN', type is WORD
+indent_text : orig line is 3, orig col is 27, Text() 'pN', type is WORD, PRE is false
+indent_text : orig line is 3, orig col is 27, column is 35, for 'pN'
+ chunk flags: [0x1000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 29, Text() is ',', type is COMMA
+indent_text : orig line is 3, orig col is 29, Text() ',', type is COMMA, PRE is false
+indent_text : orig line is 3, orig col is 29, column is 37, for ','
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 31, Text() is 'unsigned', type is TYPE
+indent_text : orig line is 3, orig col is 31, Text() 'unsigned', type is TYPE, PRE is false
+indent_text : orig line is 3, orig col is 31, column is 39, for 'unsigned'
+ chunk flags: [0x8a0512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START,VAR_TYPE]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 40, Text() is 'long', type is TYPE
+indent_text : orig line is 3, orig col is 40, Text() 'long', type is TYPE, PRE is false
+indent_text : orig line is 3, orig col is 40, column is 48, for 'long'
+ chunk flags: [0x820512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 45, Text() is 'nI', type is WORD
+indent_text : orig line is 3, orig col is 45, Text() 'nI', type is WORD, PRE is false
+indent_text : orig line is 3, orig col is 45, column is 53, for 'nI'
+ chunk flags: [0x1000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 3, orig col is 47, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 3, orig col is 47, column is 55, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 3, orig col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 3, orig col is 49, Text() is ':', type is CONSTR_COLON
+indent_text : orig line is 3, orig col is 49, Text() ':', type is CONSTR_COLON, PRE is false
+indent_text : orig line is 3, orig col is 49, column is 57, for ':'
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 3, orig col is 50, Text() is '', type is NEWLINE
+indent_text : orig line is 3, orig col is 50, <Newline>, PRE is false
+indent_text : orig line is 3, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 3, orig col is 50, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : orig line is 4, orig col is 1, Text() 'pTelName', type is FUNC_CTOR_VAR, PRE is false
+indent_text : orig line is 4, orig col is 1, column is 1, for 'pTelName'
+ chunk flags: [0xc0502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,STMT_START,EXPR_START]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 4, orig col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc orig line is 4, orig col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 4, orig col is 9, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 4, orig col is 9, column is 25, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc orig line is 4, orig col is 10, Text() is 'pN', type is WORD
+indent_text : orig line is 4, orig col is 10, Text() 'pN', type is WORD, PRE is false
+indent_text : orig line is 4, orig col is 10, column is 26, for 'pN'
+ chunk flags: [0x80512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 4, orig col is 12, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 4, orig col is 12, column is 28, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 13, Text() is ',', type is COMMA
+indent_text : orig line is 4, orig col is 13, Text() ',', type is COMMA, PRE is false
+indent_text : orig line is 4, orig col is 13, column is 29, for ','
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 13, Text() is ',', type is COMMA
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 14, Text() is '', type is NEWLINE
+indent_text : orig line is 4, orig col is 14, <Newline>, PRE is false
+indent_text : orig line is 4, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 14, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : orig line is 5, orig col is 1, Text() 'nTelIndex', type is FUNC_CTOR_VAR, PRE is false
+indent_text : orig line is 5, orig col is 1, column is 1, for 'nTelIndex'
+ chunk flags: [0x80502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 5, orig col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc orig line is 5, orig col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 5, orig col is 10, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 5, orig col is 10, column is 26, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc orig line is 5, orig col is 11, Text() is 'n', type is WORD
+indent_text : orig line is 5, orig col is 11, Text() 'n', type is WORD, PRE is false
+indent_text : orig line is 5, orig col is 11, column is 27, for 'n'
+ chunk flags: [0x80512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 5, orig col is 12, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 5, orig col is 12, column is 28, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 13, Text() is '', type is NEWLINE
+indent_text : orig line is 5, orig col is 13, <Newline>, PRE is false
+indent_text : orig line is 5, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 13, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 6, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig line is 6, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+indent_text : orig line is 6, orig col is 1, column is 1, for '{'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 6, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : pc orig line is 6, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig line is 6, orig col is 1, Text() is '{', parent type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 6, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 6, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 6, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 6, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 7, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig line is 7, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+indent_text : orig line is 7, orig col is 1, column is 1, for '}'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 7, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 7, orig col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig line is 7, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 7, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 7, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 7, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 9, orig col is 1, Text() is '~', type is DESTRUCTOR
+indent_text : orig line is 9, orig col is 1, Text() '~', type is DESTRUCTOR, PRE is false
+indent_text : orig line is 9, orig col is 1, column is 1, for '~'
+ chunk flags: [0x2000c0402:IN_STRUCT,IN_CLASS,STMT_START,EXPR_START,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 9, orig col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 9, orig col is 2, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig line is 9, orig col is 2, Text() 'TelegramIndex', type is FUNC_CLASS_DEF, PRE is false
+indent_text : orig line is 9, orig col is 2, column is 10, for 'TelegramIndex'
+ chunk flags: [0x80402:IN_STRUCT,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 9, orig col is 15, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 9, orig col is 15, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 9, orig col is 15, column is 23, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc orig line is 9, orig col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 9, orig col is 16, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 9, orig col is 16, column is 24, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc orig line is 9, orig col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 9, orig col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 9, orig col is 17, Text() is '', type is NEWLINE
+indent_text : orig line is 9, orig col is 17, <Newline>, PRE is false
+indent_text : orig line is 9, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 10, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig line is 10, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+indent_text : orig line is 10, orig col is 1, column is 1, for '{'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig line is 10, orig col is 1, Text() is '{', parent type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 10, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 10, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 10, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 10, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 11, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig line is 11, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+indent_text : orig line is 11, orig col is 1, column is 1, for '}'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 11, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 11, orig col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig line is 11, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 11, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 11, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 11, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 1, Text() is 'const', type is QUALIFIER
+indent_text : orig line is 13, orig col is 1, Text() 'const', type is QUALIFIER, PRE is false
+indent_text : orig line is 13, orig col is 1, column is 1, for 'const'
+ chunk flags: [0x8e0402:IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 13, orig col is 1, on 'const' [QUALIFIER/NONE] => 9
+ [CallStack]
+indent_text : pc orig line is 13, orig col is 7, Text() is 'char', type is TYPE
+indent_text : orig line is 13, orig col is 7, Text() 'char', type is TYPE, PRE is false
+indent_text : orig line is 13, orig col is 7, column is 15, for 'char'
+ chunk flags: [0x800402:IN_STRUCT,IN_CLASS,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 11, Text() is '*', type is PTR_TYPE
+indent_text : orig line is 13, orig col is 11, Text() '*', type is PTR_TYPE, PRE is false
+indent_text : orig line is 13, orig col is 11, column is 19, for '*'
+ chunk flags: [0x200800402:IN_STRUCT,IN_CLASS,VAR_TYPE,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 13, Text() is 'const', type is QUALIFIER
+indent_text : orig line is 13, orig col is 13, Text() 'const', type is QUALIFIER, PRE is false
+indent_text : orig line is 13, orig col is 13, column is 21, for 'const'
+ chunk flags: [0x820402:IN_STRUCT,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 19, Text() is 'pTelName', type is WORD
+indent_text : orig line is 13, orig col is 19, Text() 'pTelName', type is WORD, PRE is false
+indent_text : orig line is 13, orig col is 19, column is 27, for 'pTelName'
+ chunk flags: [0x3000402:IN_STRUCT,IN_CLASS,VAR_DEF,VAR_1ST]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 27, Text() is ';', type is SEMICOLON
+indent_text : orig line is 13, orig col is 27, Text() ';', type is SEMICOLON, PRE is false
+indent_text : orig line is 13, orig col is 27, column is 35, for ';'
+ chunk flags: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 28, Text() is '', type is NEWLINE
+indent_text : orig line is 13, orig col is 28, <Newline>, PRE is false
+indent_text : orig line is 13, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 1, Text() is 'unsigned', type is TYPE
+indent_text : orig line is 14, orig col is 1, Text() 'unsigned', type is TYPE, PRE is false
+indent_text : orig line is 14, orig col is 1, column is 1, for 'unsigned'
+ chunk flags: [0x8e0402:IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 14, orig col is 1, on 'unsigned' [TYPE/NONE] => 9
+ [CallStack]
+indent_text : pc orig line is 14, orig col is 10, Text() is 'long', type is TYPE
+indent_text : orig line is 14, orig col is 10, Text() 'long', type is TYPE, PRE is false
+indent_text : orig line is 14, orig col is 10, column is 18, for 'long'
+ chunk flags: [0x820402:IN_STRUCT,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 15, Text() is 'nTelIndex', type is WORD
+indent_text : orig line is 14, orig col is 15, Text() 'nTelIndex', type is WORD, PRE is false
+indent_text : orig line is 14, orig col is 15, column is 23, for 'nTelIndex'
+ chunk flags: [0x3000402:IN_STRUCT,IN_CLASS,VAR_DEF,VAR_1ST]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 24, Text() is ';', type is SEMICOLON
+indent_text : orig line is 14, orig col is 24, Text() ';', type is SEMICOLON, PRE is false
+indent_text : orig line is 14, orig col is 24, column is 32, for ';'
+ chunk flags: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 25, Text() is '', type is NEWLINE
+indent_text : orig line is 14, orig col is 25, <Newline>, PRE is false
+indent_text : orig line is 14, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 15, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig line is 15, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+indent_text : orig line is 15, orig col is 1, column is 1, for '}'
+ chunk flags: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 15, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 15, orig col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig line is 15, orig col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
+ [CallStack]
+indent_text : pc orig line is 15, orig col is 2, Text() is ';', type is SEMICOLON
+indent_text : orig line is 15, orig col is 2, Text() ';', type is SEMICOLON, PRE is false
+indent_text : orig line is 15, orig col is 2, column is 2, for ';'
+ chunk flags: [0x200000000:PUNCTUATOR]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 15, orig col is 2, Text() is ';', type is SEMICOLON
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 15, orig col is 3, Text() is '', type is NEWLINE
+indent_text : orig line is 15, orig col is 3, <Newline>, PRE is false
+indent_text : orig line is 15, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 15, orig col is 3, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 0, orig col is 0, Text() is '', type is NONE
+indent_text : before quick_align_again
+reindent_line : orig line is 2, orig col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
+ [CallStack]
+reindent_line : orig line is 3, orig col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
+ [CallStack]
+reindent_line : orig line is 4, orig col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+reindent_line : orig line is 5, orig col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+reindent_line : orig line is 6, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 7, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 9, orig col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 10, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 11, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 13, orig col is 1, on 'const' [QUALIFIER/NONE] => 9
+ [CallStack]
+reindent_line : orig line is 14, orig col is 1, on 'unsigned' [TYPE/NONE] => 9
+ [CallStack]
+reindent_line : orig line is 15, orig col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
+ [CallStack]
+indent_text : after quick_align_again
+indent_text : orig line is 1, orig col is 1, Text() 'struct', type is STRUCT, PRE is false
+indent_text : orig line is 1, orig col is 1, column is 1, for 'struct'
+ chunk flags: [0xe0000:FORCE_SPACE,STMT_START,EXPR_START]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 1, Text() is 'struct', type is STRUCT
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+reindent_line : orig line is 1, orig col is 1, on 'struct' [STRUCT/NONE] => 1
+ [CallStack]
+indent_text : pc orig line is 1, orig col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : orig line is 1, orig col is 8, Text() 'TelegramIndex', type is TYPE, PRE is false
+indent_text : orig line is 1, orig col is 8, column is 8, for 'TelegramIndex'
+ chunk flags: [0x0:]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 21, Text() is '', type is NEWLINE
+indent_text : orig line is 1, orig col is 21, <Newline>, PRE is false
+indent_text : orig line is 1, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 1, orig col is 21, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 2, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig line is 2, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+indent_text : orig line is 2, orig col is 1, column is 1, for '{'
+ chunk flags: [0x200000400:IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 2, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 1, ... indent is 9
+indent_text : orig line is 2, orig col is 1, Text() is '{', parent type is STRUCT
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 2, orig col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
+ [CallStack]
+indent_text : pc orig line is 2, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 2, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 2, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 3, orig col is 1, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig line is 3, orig col is 1, Text() 'TelegramIndex', type is FUNC_CLASS_DEF, PRE is false
+indent_text : orig line is 3, orig col is 1, column is 9, for 'TelegramIndex'
+ chunk flags: [0xc0402:IN_STRUCT,IN_CLASS,STMT_START,EXPR_START]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 3, orig col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
+ [CallStack]
+indent_text : pc orig line is 3, orig col is 14, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 3, orig col is 14, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 3, orig col is 14, column is 22, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 15, Text() is 'const', type is QUALIFIER
+indent_text : orig line is 3, orig col is 15, Text() 'const', type is QUALIFIER, PRE is false
+indent_text : orig line is 3, orig col is 15, column is 23, for 'const'
+ chunk flags: [0xa0512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 21, Text() is 'char', type is TYPE
+indent_text : orig line is 3, orig col is 21, Text() 'char', type is TYPE, PRE is false
+indent_text : orig line is 3, orig col is 21, column is 29, for 'char'
+ chunk flags: [0x800512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_TYPE]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 25, Text() is '*', type is PTR_TYPE
+indent_text : orig line is 3, orig col is 25, Text() '*', type is PTR_TYPE, PRE is false
+indent_text : orig line is 3, orig col is 25, column is 33, for '*'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 27, Text() is 'pN', type is WORD
+indent_text : orig line is 3, orig col is 27, Text() 'pN', type is WORD, PRE is false
+indent_text : orig line is 3, orig col is 27, column is 35, for 'pN'
+ chunk flags: [0x1000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 29, Text() is ',', type is COMMA
+indent_text : orig line is 3, orig col is 29, Text() ',', type is COMMA, PRE is false
+indent_text : orig line is 3, orig col is 29, column is 37, for ','
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 31, Text() is 'unsigned', type is TYPE
+indent_text : orig line is 3, orig col is 31, Text() 'unsigned', type is TYPE, PRE is false
+indent_text : orig line is 3, orig col is 31, column is 39, for 'unsigned'
+ chunk flags: [0x8a0512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START,VAR_TYPE]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 40, Text() is 'long', type is TYPE
+indent_text : orig line is 3, orig col is 40, Text() 'long', type is TYPE, PRE is false
+indent_text : orig line is 3, orig col is 40, column is 48, for 'long'
+ chunk flags: [0x820512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 45, Text() is 'nI', type is WORD
+indent_text : orig line is 3, orig col is 45, Text() 'nI', type is WORD, PRE is false
+indent_text : orig line is 3, orig col is 45, column is 53, for 'nI'
+ chunk flags: [0x1000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 3, orig col is 47, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 3, orig col is 47, column is 55, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc orig line is 3, orig col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 3, orig col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 3, orig col is 49, Text() is ':', type is CONSTR_COLON
+indent_text : orig line is 3, orig col is 49, Text() ':', type is CONSTR_COLON, PRE is false
+indent_text : orig line is 3, orig col is 49, column is 57, for ':'
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 3, orig col is 50, Text() is '', type is NEWLINE
+indent_text : orig line is 3, orig col is 50, <Newline>, PRE is false
+indent_text : orig line is 3, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 3, orig col is 50, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : orig line is 4, orig col is 1, Text() 'pTelName', type is FUNC_CTOR_VAR, PRE is false
+indent_text : orig line is 4, orig col is 1, column is 17, for 'pTelName'
+ chunk flags: [0xc0502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,STMT_START,EXPR_START]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 4, orig col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc orig line is 4, orig col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 4, orig col is 9, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 4, orig col is 9, column is 25, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc orig line is 4, orig col is 10, Text() is 'pN', type is WORD
+indent_text : orig line is 4, orig col is 10, Text() 'pN', type is WORD, PRE is false
+indent_text : orig line is 4, orig col is 10, column is 26, for 'pN'
+ chunk flags: [0x80512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 4, orig col is 12, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 4, orig col is 12, column is 28, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 4, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 13, Text() is ',', type is COMMA
+indent_text : orig line is 4, orig col is 13, Text() ',', type is COMMA, PRE is false
+indent_text : orig line is 4, orig col is 13, column is 29, for ','
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 13, Text() is ',', type is COMMA
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 14, Text() is '', type is NEWLINE
+indent_text : orig line is 4, orig col is 14, <Newline>, PRE is false
+indent_text : orig line is 4, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 4, orig col is 14, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : orig line is 5, orig col is 1, Text() 'nTelIndex', type is FUNC_CTOR_VAR, PRE is false
+indent_text : orig line is 5, orig col is 1, column is 17, for 'nTelIndex'
+ chunk flags: [0x80502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 5, orig col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc orig line is 5, orig col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 5, orig col is 10, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 5, orig col is 10, column is 26, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc orig line is 5, orig col is 11, Text() is 'n', type is WORD
+indent_text : orig line is 5, orig col is 11, Text() 'n', type is WORD, PRE is false
+indent_text : orig line is 5, orig col is 11, column is 27, for 'n'
+ chunk flags: [0x80512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 5, orig col is 12, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 5, orig col is 12, column is 28, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 5, orig col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 13, Text() is '', type is NEWLINE
+indent_text : orig line is 5, orig col is 13, <Newline>, PRE is false
+indent_text : orig line is 5, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 5, orig col is 13, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 6, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig line is 6, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+indent_text : orig line is 6, orig col is 1, column is 9, for '{'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 6, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : pc orig line is 6, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig line is 6, orig col is 1, Text() is '{', parent type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 6, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 6, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 6, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 6, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 7, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig line is 7, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+indent_text : orig line is 7, orig col is 1, column is 9, for '}'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 7, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 7, orig col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig line is 7, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 7, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 7, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 7, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 9, orig col is 1, Text() is '~', type is DESTRUCTOR
+indent_text : orig line is 9, orig col is 1, Text() '~', type is DESTRUCTOR, PRE is false
+indent_text : orig line is 9, orig col is 1, column is 9, for '~'
+ chunk flags: [0x2000c0402:IN_STRUCT,IN_CLASS,STMT_START,EXPR_START,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 9, orig col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 9, orig col is 2, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig line is 9, orig col is 2, Text() 'TelegramIndex', type is FUNC_CLASS_DEF, PRE is false
+indent_text : orig line is 9, orig col is 2, column is 10, for 'TelegramIndex'
+ chunk flags: [0x80402:IN_STRUCT,IN_CLASS,EXPR_START]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 9, orig col is 15, Text() is '(', type is FPAREN_OPEN
+indent_text : orig line is 9, orig col is 15, Text() '(', type is FPAREN_OPEN, PRE is false
+indent_text : orig line is 9, orig col is 15, column is 23, for '('
+ chunk flags: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc orig line is 9, orig col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig line is 9, orig col is 16, Text() ')', type is FPAREN_CLOSE, PRE is false
+indent_text : orig line is 9, orig col is 16, column is 24, for ')'
+ chunk flags: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc orig line is 9, orig col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc orig line is 9, orig col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 9, orig col is 17, Text() is '', type is NEWLINE
+indent_text : orig line is 9, orig col is 17, <Newline>, PRE is false
+indent_text : orig line is 9, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 10, orig col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig line is 10, orig col is 1, Text() '{', type is BRACE_OPEN, PRE is false
+indent_text : orig line is 10, orig col is 1, column is 9, for '{'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig line is 10, orig col is 1, Text() is '{', parent type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig line is 10, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 10, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 10, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 10, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 11, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig line is 11, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+indent_text : orig line is 11, orig col is 1, column is 9, for '}'
+ chunk flags: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 11, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc orig line is 11, orig col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig line is 11, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc orig line is 11, orig col is 2, Text() is '', type is NEWLINE
+indent_text : orig line is 11, orig col is 2, <Newline>, PRE is false
+indent_text : orig line is 11, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 1, Text() is 'const', type is QUALIFIER
+indent_text : orig line is 13, orig col is 1, Text() 'const', type is QUALIFIER, PRE is false
+indent_text : orig line is 13, orig col is 1, column is 9, for 'const'
+ chunk flags: [0x8e0402:IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 13, orig col is 1, on 'const' [QUALIFIER/NONE] => 9
+ [CallStack]
+indent_text : pc orig line is 13, orig col is 7, Text() is 'char', type is TYPE
+indent_text : orig line is 13, orig col is 7, Text() 'char', type is TYPE, PRE is false
+indent_text : orig line is 13, orig col is 7, column is 15, for 'char'
+ chunk flags: [0x800402:IN_STRUCT,IN_CLASS,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 11, Text() is '*', type is PTR_TYPE
+indent_text : orig line is 13, orig col is 11, Text() '*', type is PTR_TYPE, PRE is false
+indent_text : orig line is 13, orig col is 11, column is 19, for '*'
+ chunk flags: [0x200800402:IN_STRUCT,IN_CLASS,VAR_TYPE,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 13, Text() is 'const', type is QUALIFIER
+indent_text : orig line is 13, orig col is 13, Text() 'const', type is QUALIFIER, PRE is false
+indent_text : orig line is 13, orig col is 13, column is 21, for 'const'
+ chunk flags: [0x820402:IN_STRUCT,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 19, Text() is 'pTelName', type is WORD
+indent_text : orig line is 13, orig col is 19, Text() 'pTelName', type is WORD, PRE is false
+indent_text : orig line is 13, orig col is 19, column is 27, for 'pTelName'
+ chunk flags: [0x3000402:IN_STRUCT,IN_CLASS,VAR_DEF,VAR_1ST]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 27, Text() is ';', type is SEMICOLON
+indent_text : orig line is 13, orig col is 27, Text() ';', type is SEMICOLON, PRE is false
+indent_text : orig line is 13, orig col is 27, column is 35, for ';'
+ chunk flags: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 13, orig col is 28, Text() is '', type is NEWLINE
+indent_text : orig line is 13, orig col is 28, <Newline>, PRE is false
+indent_text : orig line is 13, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 1, Text() is 'unsigned', type is TYPE
+indent_text : orig line is 14, orig col is 1, Text() 'unsigned', type is TYPE, PRE is false
+indent_text : orig line is 14, orig col is 1, column is 9, for 'unsigned'
+ chunk flags: [0x8e0402:IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig line is 14, orig col is 1, on 'unsigned' [TYPE/NONE] => 9
+ [CallStack]
+indent_text : pc orig line is 14, orig col is 10, Text() is 'long', type is TYPE
+indent_text : orig line is 14, orig col is 10, Text() 'long', type is TYPE, PRE is false
+indent_text : orig line is 14, orig col is 10, column is 18, for 'long'
+ chunk flags: [0x820402:IN_STRUCT,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 15, Text() is 'nTelIndex', type is WORD
+indent_text : orig line is 14, orig col is 15, Text() 'nTelIndex', type is WORD, PRE is false
+indent_text : orig line is 14, orig col is 15, column is 23, for 'nTelIndex'
+ chunk flags: [0x3000402:IN_STRUCT,IN_CLASS,VAR_DEF,VAR_1ST]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 24, Text() is ';', type is SEMICOLON
+indent_text : orig line is 14, orig col is 24, Text() ';', type is SEMICOLON, PRE is false
+indent_text : orig line is 14, orig col is 24, column is 32, for ';'
+ chunk flags: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 14, orig col is 25, Text() is '', type is NEWLINE
+indent_text : orig line is 14, orig col is 25, <Newline>, PRE is false
+indent_text : orig line is 14, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 15, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig line is 15, orig col is 1, Text() '}', type is BRACE_CLOSE, PRE is false
+indent_text : orig line is 15, orig col is 1, column is 1, for '}'
+ chunk flags: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 15, orig col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc orig line is 15, orig col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig line is 15, orig col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
+ [CallStack]
+indent_text : pc orig line is 15, orig col is 2, Text() is ';', type is SEMICOLON
+indent_text : orig line is 15, orig col is 2, Text() ';', type is SEMICOLON, PRE is false
+indent_text : orig line is 15, orig col is 2, column is 2, for ';'
+ chunk flags: [0x200000000:PUNCTUATOR]
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 15, orig col is 2, Text() is ';', type is SEMICOLON
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 15, orig col is 3, Text() is '', type is NEWLINE
+indent_text : orig line is 15, orig col is 3, <Newline>, PRE is false
+indent_text : orig line is 15, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 15, orig col is 3, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc orig line is 0, orig col is 0, Text() is '', type is NONE
+indent_text : before quick_align_again
+reindent_line : orig line is 2, orig col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
+ [CallStack]
+reindent_line : orig line is 3, orig col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
+ [CallStack]
+reindent_line : orig line is 4, orig col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+reindent_line : orig line is 5, orig col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+reindent_line : orig line is 6, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 7, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 9, orig col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 10, orig col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 11, orig col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+reindent_line : orig line is 13, orig col is 1, on 'const' [QUALIFIER/NONE] => 9
+ [CallStack]
+reindent_line : orig line is 14, orig col is 1, on 'unsigned' [TYPE/NONE] => 9
+ [CallStack]
+reindent_line : orig line is 15, orig col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
+ [CallStack]
+indent_text : after quick_align_again
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/36.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/36.txt
new file mode 100644
index 00000000..ed6495d5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/36.txt
@@ -0,0 +1,19 @@
+fix_fcn_def_params : Text() '(', type is PAREN_OPEN, on orig line 3, level is 1
+fix_fcn_def_params : looking at, Text() 'const' on orig line 3, level 2
+fix_fcn_def_params : looking at, Text() 'char' on orig line 3, level 2
+fix_fcn_def_params : looking at, Text() '*' on orig line 3, level 2
+fix_fcn_def_params : looking at, Text() 'pN' on orig line 3, level 2
+fix_fcn_def_params : looking at, Text() ',' on orig line 3, level 2
+mark_variable_stack : parameter on orig line 3, orig col 27:
+mark_variable_stack : parameter on orig line 3, orig col 27: <char> as TYPE
+mark_variable_stack : parameter on orig line 3, orig col 27: <pN> as VAR
+fix_fcn_def_params : looking at, Text() 'unsigned' on orig line 3, level 2
+fix_fcn_def_params : looking at, Text() 'long' on orig line 3, level 2
+fix_fcn_def_params : looking at, Text() 'nI' on orig line 3, level 2
+fix_fcn_def_params : bailed on Text() ')', on orig line 3
+mark_variable_stack : parameter on orig line 3, orig col 45:
+mark_variable_stack : parameter on orig line 3, orig col 45: <long> as TYPE
+mark_variable_stack : parameter on orig line 3, orig col 45: <unsigned> as TYPE
+mark_variable_stack : parameter on orig line 3, orig col 45: <nI> as VAR
+fix_fcn_def_params : Text() '(', type is PAREN_OPEN, on orig line 9, level is 1
+fix_fcn_def_params : bailed on Text() ')', on orig line 9
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/66.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/66.txt
new file mode 100644
index 00000000..7ce67542
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/66.txt
@@ -0,0 +1,839 @@
+space_text : orig line is 1, orig col is 1, 'struct' type is STRUCT
+space_text : back-to-back words need a space: pc->Text() 'struct', next->Text() 'TelegramIndex'
+space_text : orig line is 1, orig col is 1, pc-Text() 'struct', type is STRUCT
+do_space : orig line 1, orig col 1, first text 'struct', type STRUCT
+do_space : first orig line is 1, orig col is 1, Text() is 'struct', [STRUCT/NONE] <===>
+ second orig line is 1, orig col is 8, Text() is 'TelegramIndex', [TYPE/STRUCT] : rule ADD from add_space_table @ 236.[ ]
+ensure_force_space : force between 'struct' and 'TelegramIndex'
+space_text : orig line is 1, orig col is 1, pc-Text() 'struct', type is STRUCT
+space_text : rule = ADD @ 1 => 8
+space_text : orig line is 1, orig col is 8, 'TelegramIndex' type is TYPE
+space_text : orig line is 1, orig col is 8, pc-Text() 'TelegramIndex', type is TYPE
+do_space : orig line 1, orig col 8, first text 'TelegramIndex', type TYPE
+space_text : orig line is 1, orig col is 8, pc-Text() 'TelegramIndex', type is TYPE
+space_text : rule = REMOVE @ 0 => 21
+space_text : orig line is 1, orig col is 21, <Newline>, nl is 1
+space_text : orig line is 2, orig col is 1, '{' type is BRACE_OPEN
+space_text : orig line is 2, orig col is 1, pc-Text() '{', type is BRACE_OPEN
+do_space : orig line 2, orig col 1, first text '{', type BRACE_OPEN
+space_text : orig line is 2, orig col is 1, pc-Text() '{', type is BRACE_OPEN
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 2, orig col is 2, <Newline>, nl is 1
+space_text : orig line is 3, orig col is 1, 'TelegramIndex' type is FUNC_CLASS_DEF
+space_text : orig line is 3, orig col is 1, pc-Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : orig line 3, orig col 1, first text 'TelegramIndex', type FUNC_CLASS_DEF
+do_space : first orig line is 3, orig col is 1, Text() is 'TelegramIndex', [FUNC_CLASS_DEF/NONE] <===>
+ second orig line is 3, orig col is 14, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+space_text : orig line is 3, orig col is 1, pc-Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+space_text : rule = IGNORE @ 0 => 14
+space_text : orig line is 3, orig col is 14, '(' type is FPAREN_OPEN
+space_text : orig line is 3, orig col is 14, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig line 3, orig col 14, first text '(', type FPAREN_OPEN
+do_space : first orig line is 3, orig col is 14, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second orig line is 3, orig col is 15, Text() is 'const', [QUALIFIER/NONE] : rule sp_inside_fparen[ ]
+space_text : orig line is 3, orig col is 14, pc-Text() '(', type is FPAREN_OPEN
+space_text : rule = IGNORE @ 0 => 15
+space_text : orig line is 3, orig col is 15, 'const' type is QUALIFIER
+space_text : back-to-back words need a space: pc->Text() 'const', next->Text() 'char'
+space_text : orig line is 3, orig col is 15, pc-Text() 'const', type is QUALIFIER
+do_space : orig line 3, orig col 15, first text 'const', type QUALIFIER
+do_space : first orig line is 3, orig col is 15, Text() is 'const', [QUALIFIER/NONE] <===>
+ second orig line is 3, orig col is 21, Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'const' and 'char'
+space_text : orig line is 3, orig col is 15, pc-Text() 'const', type is QUALIFIER
+space_text : rule = FORCE @ 1 => 21
+space_text : orig line is 3, orig col is 21, 'char' type is TYPE
+space_text : orig line is 3, orig col is 21, pc-Text() 'char', type is TYPE
+do_space : orig line 3, orig col 21, first text 'char', type TYPE
+do_space : first orig line is 3, orig col is 21, Text() is 'char', [TYPE/NONE] <===>
+ second orig line is 3, orig col is 25, Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+space_text : orig line is 3, orig col is 21, pc-Text() 'char', type is TYPE
+space_text : rule = IGNORE @ 0 => 25
+space_text : orig line is 3, orig col is 25, '*' type is PTR_TYPE
+space_text : orig line is 3, orig col is 25, pc-Text() '*', type is PTR_TYPE
+do_space : orig line 3, orig col 25, first text '*', type PTR_TYPE
+do_space : first orig line is 3, orig col is 25, Text() is '*', [PTR_TYPE/NONE] <===>
+ second orig line is 3, orig col is 27, Text() is 'pN', [WORD/NONE] : rule sp_after_ptr_star[ ]
+space_text : orig line is 3, orig col is 25, pc-Text() '*', type is PTR_TYPE
+space_text : rule = IGNORE @ 1 => 27
+space_text : orig line is 3, orig col is 27, 'pN' type is WORD
+space_text : orig line is 3, orig col is 27, pc-Text() 'pN', type is WORD
+do_space : orig line 3, orig col 27, first text 'pN', type WORD
+do_space : first orig line is 3, orig col is 27, Text() is 'pN', [WORD/NONE] <===>
+ second orig line is 3, orig col is 29, Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+space_text : orig line is 3, orig col is 27, pc-Text() 'pN', type is WORD
+space_text : rule = REMOVE @ 0 => 29
+space_text : orig line is 3, orig col is 29, ',' type is COMMA
+space_text : orig line is 3, orig col is 29, pc-Text() ',', type is COMMA
+do_space : orig line 3, orig col 29, first text ',', type COMMA
+do_space : first orig line is 3, orig col is 29, Text() is ',', [COMMA/NONE] <===>
+ second orig line is 3, orig col is 31, Text() is 'unsigned', [TYPE/NONE] : rule sp_after_comma[ ]
+space_text : orig line is 3, orig col is 29, pc-Text() ',', type is COMMA
+space_text : rule = IGNORE @ 1 => 31
+space_text : orig line is 3, orig col is 31, 'unsigned' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'unsigned', next->Text() 'long'
+space_text : orig line is 3, orig col is 31, pc-Text() 'unsigned', type is TYPE
+do_space : orig line 3, orig col 31, first text 'unsigned', type TYPE
+do_space : first orig line is 3, orig col is 31, Text() is 'unsigned', [TYPE/NONE] <===>
+ second orig line is 3, orig col is 40, Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'unsigned' and 'long'
+space_text : orig line is 3, orig col is 31, pc-Text() 'unsigned', type is TYPE
+space_text : rule = FORCE @ 1 => 40
+space_text : orig line is 3, orig col is 40, 'long' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'long', next->Text() 'nI'
+space_text : orig line is 3, orig col is 40, pc-Text() 'long', type is TYPE
+do_space : orig line 3, orig col 40, first text 'long', type TYPE
+do_space : first orig line is 3, orig col is 40, Text() is 'long', [TYPE/NONE] <===>
+ second orig line is 3, orig col is 45, Text() is 'nI', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'long' and 'nI'
+space_text : orig line is 3, orig col is 40, pc-Text() 'long', type is TYPE
+space_text : rule = FORCE @ 1 => 45
+space_text : orig line is 3, orig col is 45, 'nI' type is WORD
+space_text : orig line is 3, orig col is 45, pc-Text() 'nI', type is WORD
+do_space : orig line 3, orig col 45, first text 'nI', type WORD
+do_space : first orig line is 3, orig col is 45, Text() is 'nI', [WORD/NONE] <===>
+ second orig line is 3, orig col is 47, Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparen[ ]
+space_text : orig line is 3, orig col is 45, pc-Text() 'nI', type is WORD
+space_text : rule = IGNORE @ 0 => 47
+space_text : orig line is 3, orig col is 47, ')' type is FPAREN_CLOSE
+space_text : orig line is 3, orig col is 47, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig line 3, orig col 47, first text ')', type FPAREN_CLOSE
+do_space : first orig line is 3, orig col is 47, Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] <===>
+ second orig line is 3, orig col is 49, Text() is ':', [CONSTR_COLON/NONE] : rule sp_before_constr_colon[ ]
+space_text : orig line is 3, orig col is 47, pc-Text() ')', type is FPAREN_CLOSE
+space_text : rule = ADD @ 1 => 49
+space_text : orig line is 3, orig col is 49, ':' type is CONSTR_COLON
+space_text : orig line is 3, orig col is 49, pc-Text() ':', type is CONSTR_COLON
+do_space : orig line 3, orig col 49, first text ':', type CONSTR_COLON
+space_text : orig line is 3, orig col is 49, pc-Text() ':', type is CONSTR_COLON
+space_text : rule = REMOVE @ 0 => 50
+space_text : orig line is 3, orig col is 50, <Newline>, nl is 1
+space_text : orig line is 4, orig col is 1, 'pTelName' type is FUNC_CTOR_VAR
+space_text : orig line is 4, orig col is 1, pc-Text() 'pTelName', type is FUNC_CTOR_VAR
+do_space : orig line 4, orig col 1, first text 'pTelName', type FUNC_CTOR_VAR
+do_space : first orig line is 4, orig col is 1, Text() is 'pTelName', [FUNC_CTOR_VAR/NONE] <===>
+ second orig line is 4, orig col is 9, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+space_text : orig line is 4, orig col is 1, pc-Text() 'pTelName', type is FUNC_CTOR_VAR
+space_text : rule = IGNORE @ 0 => 9
+space_text : orig line is 4, orig col is 9, '(' type is FPAREN_OPEN
+space_text : orig line is 4, orig col is 9, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig line 4, orig col 9, first text '(', type FPAREN_OPEN
+do_space : first orig line is 4, orig col is 9, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second orig line is 4, orig col is 10, Text() is 'pN', [WORD/NONE] : rule sp_inside_fparen[ ]
+space_text : orig line is 4, orig col is 9, pc-Text() '(', type is FPAREN_OPEN
+space_text : rule = IGNORE @ 0 => 10
+space_text : orig line is 4, orig col is 10, 'pN' type is WORD
+space_text : orig line is 4, orig col is 10, pc-Text() 'pN', type is WORD
+do_space : orig line 4, orig col 10, first text 'pN', type WORD
+do_space : first orig line is 4, orig col is 10, Text() is 'pN', [WORD/NONE] <===>
+ second orig line is 4, orig col is 12, Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+space_text : orig line is 4, orig col is 10, pc-Text() 'pN', type is WORD
+space_text : rule = IGNORE @ 0 => 12
+space_text : orig line is 4, orig col is 12, ')' type is FPAREN_CLOSE
+space_text : orig line is 4, orig col is 12, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig line 4, orig col 12, first text ')', type FPAREN_CLOSE
+do_space : first orig line is 4, orig col is 12, Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] <===>
+ second orig line is 4, orig col is 13, Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+space_text : orig line is 4, orig col is 12, pc-Text() ')', type is FPAREN_CLOSE
+space_text : rule = REMOVE @ 0 => 13
+space_text : orig line is 4, orig col is 13, ',' type is COMMA
+space_text : orig line is 4, orig col is 13, pc-Text() ',', type is COMMA
+do_space : orig line 4, orig col 13, first text ',', type COMMA
+space_text : orig line is 4, orig col is 13, pc-Text() ',', type is COMMA
+space_text : rule = REMOVE @ 0 => 14
+space_text : orig line is 4, orig col is 14, <Newline>, nl is 1
+space_text : orig line is 5, orig col is 1, 'nTelIndex' type is FUNC_CTOR_VAR
+space_text : orig line is 5, orig col is 1, pc-Text() 'nTelIndex', type is FUNC_CTOR_VAR
+do_space : orig line 5, orig col 1, first text 'nTelIndex', type FUNC_CTOR_VAR
+do_space : first orig line is 5, orig col is 1, Text() is 'nTelIndex', [FUNC_CTOR_VAR/NONE] <===>
+ second orig line is 5, orig col is 10, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+space_text : orig line is 5, orig col is 1, pc-Text() 'nTelIndex', type is FUNC_CTOR_VAR
+space_text : rule = IGNORE @ 0 => 10
+space_text : orig line is 5, orig col is 10, '(' type is FPAREN_OPEN
+space_text : orig line is 5, orig col is 10, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig line 5, orig col 10, first text '(', type FPAREN_OPEN
+do_space : first orig line is 5, orig col is 10, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second orig line is 5, orig col is 11, Text() is 'n', [WORD/NONE] : rule sp_inside_fparen[ ]
+space_text : orig line is 5, orig col is 10, pc-Text() '(', type is FPAREN_OPEN
+space_text : rule = IGNORE @ 0 => 11
+space_text : orig line is 5, orig col is 11, 'n' type is WORD
+space_text : orig line is 5, orig col is 11, pc-Text() 'n', type is WORD
+do_space : orig line 5, orig col 11, first text 'n', type WORD
+do_space : first orig line is 5, orig col is 11, Text() is 'n', [WORD/NONE] <===>
+ second orig line is 5, orig col is 12, Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+space_text : orig line is 5, orig col is 11, pc-Text() 'n', type is WORD
+space_text : rule = IGNORE @ 0 => 12
+space_text : orig line is 5, orig col is 12, ')' type is FPAREN_CLOSE
+space_text : orig line is 5, orig col is 12, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig line 5, orig col 12, first text ')', type FPAREN_CLOSE
+space_text : orig line is 5, orig col is 12, pc-Text() ')', type is FPAREN_CLOSE
+space_text : rule = REMOVE @ 0 => 13
+space_text : orig line is 5, orig col is 13, <Newline>, nl is 1
+space_text : orig line is 6, orig col is 1, '{' type is BRACE_OPEN
+space_text : orig line is 6, orig col is 1, pc-Text() '{', type is BRACE_OPEN
+do_space : orig line 6, orig col 1, first text '{', type BRACE_OPEN
+space_text : orig line is 6, orig col is 1, pc-Text() '{', type is BRACE_OPEN
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 6, orig col is 2, <Newline>, nl is 1
+space_text : orig line is 7, orig col is 1, '}' type is BRACE_CLOSE
+space_text : orig line is 7, orig col is 1, pc-Text() '}', type is BRACE_CLOSE
+do_space : orig line 7, orig col 1, first text '}', type BRACE_CLOSE
+space_text : orig line is 7, orig col is 1, pc-Text() '}', type is BRACE_CLOSE
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 7, orig col is 2, <Newline>, nl is 2
+space_text : orig line is 9, orig col is 1, '~' type is DESTRUCTOR
+space_text : orig line is 9, orig col is 1, pc-Text() '~', type is DESTRUCTOR
+do_space : orig line 9, orig col 1, first text '~', type DESTRUCTOR
+do_space : first orig line is 9, orig col is 1, Text() is '~', [DESTRUCTOR/FUNC_CLASS_DEF] <===>
+ second orig line is 9, orig col is 2, Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] : rule REMOVE[ ]
+space_text : orig line is 9, orig col is 1, pc-Text() '~', type is DESTRUCTOR
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 9, orig col is 2, 'TelegramIndex' type is FUNC_CLASS_DEF
+space_text : orig line is 9, orig col is 2, pc-Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : orig line 9, orig col 2, first text 'TelegramIndex', type FUNC_CLASS_DEF
+do_space : first orig line is 9, orig col is 2, Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] <===>
+ second orig line is 9, orig col is 15, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+space_text : orig line is 9, orig col is 2, pc-Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+space_text : rule = IGNORE @ 0 => 15
+space_text : orig line is 9, orig col is 15, '(' type is FPAREN_OPEN
+space_text : orig line is 9, orig col is 15, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig line 9, orig col 15, first text '(', type FPAREN_OPEN
+do_space : first orig line is 9, orig col is 15, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second orig line is 9, orig col is 16, Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparens[ ]
+space_text : orig line is 9, orig col is 15, pc-Text() '(', type is FPAREN_OPEN
+space_text : rule = IGNORE @ 0 => 16
+space_text : orig line is 9, orig col is 16, ')' type is FPAREN_CLOSE
+space_text : orig line is 9, orig col is 16, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig line 9, orig col 16, first text ')', type FPAREN_CLOSE
+space_text : orig line is 9, orig col is 16, pc-Text() ')', type is FPAREN_CLOSE
+space_text : rule = REMOVE @ 0 => 17
+space_text : orig line is 9, orig col is 17, <Newline>, nl is 1
+space_text : orig line is 10, orig col is 1, '{' type is BRACE_OPEN
+space_text : orig line is 10, orig col is 1, pc-Text() '{', type is BRACE_OPEN
+do_space : orig line 10, orig col 1, first text '{', type BRACE_OPEN
+space_text : orig line is 10, orig col is 1, pc-Text() '{', type is BRACE_OPEN
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 10, orig col is 2, <Newline>, nl is 1
+space_text : orig line is 11, orig col is 1, '}' type is BRACE_CLOSE
+space_text : orig line is 11, orig col is 1, pc-Text() '}', type is BRACE_CLOSE
+do_space : orig line 11, orig col 1, first text '}', type BRACE_CLOSE
+space_text : orig line is 11, orig col is 1, pc-Text() '}', type is BRACE_CLOSE
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 11, orig col is 2, <Newline>, nl is 2
+space_text : orig line is 13, orig col is 1, 'const' type is QUALIFIER
+space_text : back-to-back words need a space: pc->Text() 'const', next->Text() 'char'
+space_text : orig line is 13, orig col is 1, pc-Text() 'const', type is QUALIFIER
+do_space : orig line 13, orig col 1, first text 'const', type QUALIFIER
+do_space : first orig line is 13, orig col is 1, Text() is 'const', [QUALIFIER/NONE] <===>
+ second orig line is 13, orig col is 7, Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'const' and 'char'
+space_text : orig line is 13, orig col is 1, pc-Text() 'const', type is QUALIFIER
+space_text : rule = FORCE @ 1 => 7
+space_text : orig line is 13, orig col is 7, 'char' type is TYPE
+space_text : orig line is 13, orig col is 7, pc-Text() 'char', type is TYPE
+do_space : orig line 13, orig col 7, first text 'char', type TYPE
+do_space : first orig line is 13, orig col is 7, Text() is 'char', [TYPE/NONE] <===>
+ second orig line is 13, orig col is 11, Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+space_text : orig line is 13, orig col is 7, pc-Text() 'char', type is TYPE
+space_text : rule = IGNORE @ 0 => 11
+space_text : orig line is 13, orig col is 11, '*' type is PTR_TYPE
+space_text : orig line is 13, orig col is 11, pc-Text() '*', type is PTR_TYPE
+do_space : orig line 13, orig col 11, first text '*', type PTR_TYPE
+do_space : first orig line is 13, orig col is 11, Text() is '*', [PTR_TYPE/NONE] <===>
+ second orig line is 13, orig col is 13, Text() is 'const', [QUALIFIER/NONE] : rule sp_after_ptr_star_qualifier[ ]
+space_text : orig line is 13, orig col is 11, pc-Text() '*', type is PTR_TYPE
+space_text : rule = IGNORE @ 1 => 13
+space_text : orig line is 13, orig col is 13, 'const' type is QUALIFIER
+space_text : back-to-back words need a space: pc->Text() 'const', next->Text() 'pTelName'
+space_text : orig line is 13, orig col is 13, pc-Text() 'const', type is QUALIFIER
+do_space : orig line 13, orig col 13, first text 'const', type QUALIFIER
+do_space : first orig line is 13, orig col is 13, Text() is 'const', [QUALIFIER/NONE] <===>
+ second orig line is 13, orig col is 19, Text() is 'pTelName', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'const' and 'pTelName'
+space_text : orig line is 13, orig col is 13, pc-Text() 'const', type is QUALIFIER
+space_text : rule = FORCE @ 1 => 19
+space_text : orig line is 13, orig col is 19, 'pTelName' type is WORD
+space_text : orig line is 13, orig col is 19, pc-Text() 'pTelName', type is WORD
+do_space : orig line 13, orig col 19, first text 'pTelName', type WORD
+do_space : first orig line is 13, orig col is 19, Text() is 'pTelName', [WORD/NONE] <===>
+ second orig line is 13, orig col is 27, Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+space_text : orig line is 13, orig col is 19, pc-Text() 'pTelName', type is WORD
+space_text : rule = REMOVE @ 0 => 27
+space_text : orig line is 13, orig col is 27, ';' type is SEMICOLON
+space_text : orig line is 13, orig col is 27, pc-Text() ';', type is SEMICOLON
+do_space : orig line 13, orig col 27, first text ';', type SEMICOLON
+space_text : orig line is 13, orig col is 27, pc-Text() ';', type is SEMICOLON
+space_text : rule = REMOVE @ 0 => 28
+space_text : orig line is 13, orig col is 28, <Newline>, nl is 1
+space_text : orig line is 14, orig col is 1, 'unsigned' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'unsigned', next->Text() 'long'
+space_text : orig line is 14, orig col is 1, pc-Text() 'unsigned', type is TYPE
+do_space : orig line 14, orig col 1, first text 'unsigned', type TYPE
+do_space : first orig line is 14, orig col is 1, Text() is 'unsigned', [TYPE/NONE] <===>
+ second orig line is 14, orig col is 10, Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'unsigned' and 'long'
+space_text : orig line is 14, orig col is 1, pc-Text() 'unsigned', type is TYPE
+space_text : rule = FORCE @ 1 => 10
+space_text : orig line is 14, orig col is 10, 'long' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'long', next->Text() 'nTelIndex'
+space_text : orig line is 14, orig col is 10, pc-Text() 'long', type is TYPE
+do_space : orig line 14, orig col 10, first text 'long', type TYPE
+do_space : first orig line is 14, orig col is 10, Text() is 'long', [TYPE/NONE] <===>
+ second orig line is 14, orig col is 15, Text() is 'nTelIndex', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'long' and 'nTelIndex'
+space_text : orig line is 14, orig col is 10, pc-Text() 'long', type is TYPE
+space_text : rule = FORCE @ 1 => 15
+space_text : orig line is 14, orig col is 15, 'nTelIndex' type is WORD
+space_text : orig line is 14, orig col is 15, pc-Text() 'nTelIndex', type is WORD
+do_space : orig line 14, orig col 15, first text 'nTelIndex', type WORD
+do_space : first orig line is 14, orig col is 15, Text() is 'nTelIndex', [WORD/NONE] <===>
+ second orig line is 14, orig col is 24, Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+space_text : orig line is 14, orig col is 15, pc-Text() 'nTelIndex', type is WORD
+space_text : rule = REMOVE @ 0 => 24
+space_text : orig line is 14, orig col is 24, ';' type is SEMICOLON
+space_text : orig line is 14, orig col is 24, pc-Text() ';', type is SEMICOLON
+do_space : orig line 14, orig col 24, first text ';', type SEMICOLON
+space_text : orig line is 14, orig col is 24, pc-Text() ';', type is SEMICOLON
+space_text : rule = REMOVE @ 0 => 25
+space_text : orig line is 14, orig col is 25, <Newline>, nl is 1
+space_text : orig line is 15, orig col is 1, '}' type is BRACE_CLOSE
+space_text : orig line is 15, orig col is 1, pc-Text() '}', type is BRACE_CLOSE
+do_space : orig line 15, orig col 1, first text '}', type BRACE_CLOSE
+do_space : first orig line is 15, orig col is 1, Text() is '}', [BRACE_CLOSE/STRUCT] <===>
+ second orig line is 15, orig col is 2, Text() is ';', [SEMICOLON/STRUCT] : rule sp_before_semi[ ]
+space_text : orig line is 15, orig col is 1, pc-Text() '}', type is BRACE_CLOSE
+space_text : rule = REMOVE @ 0 => 2
+space_text : orig line is 15, orig col is 2, ';' type is SEMICOLON
+space_text : orig line is 15, orig col is 2, pc-Text() ';', type is SEMICOLON
+do_space : orig line 15, orig col 2, first text ';', type SEMICOLON
+space_text : orig line is 15, orig col is 2, pc-Text() ';', type is SEMICOLON
+space_text : rule = REMOVE @ 0 => 3
+space_text : orig line is 15, orig col is 3, <Newline>, nl is 2
+space_col_align : 1st orig line 3, orig col 1, [FUNC_CLASS_DEF/NONE], text 'TelegramIndex' <==>
+space_col_align : 2nd orig line 3, orig col 14, [FPAREN_OPEN/FUNC_CLASS_DEF], text '('
+ [CallStack]
+do_space : orig line 3, orig col 1, first text 'TelegramIndex', type FUNC_CLASS_DEF
+do_space : first orig line is 3, orig col is 1, Text() is 'TelegramIndex', [FUNC_CLASS_DEF/NONE] <===>
+ second orig line is 3, orig col is 14, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 13
+space_col_align : => coldiff is 13
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 3
+space_col_align : => second orig line is 3
+space_col_align : => first text is 'TelegramIndex'
+space_col_align : => second text is '('
+space_col_align : => first orig col is 1
+space_col_align : => second orig col is 14
+space_col_align : => first len is 13
+space_col_align : => coldiff is 13
+space_col_align : 1st orig line 3, orig col 14, [FPAREN_OPEN/FUNC_CLASS_DEF], text '(' <==>
+space_col_align : 2nd orig line 3, orig col 15, [QUALIFIER/NONE], text 'const'
+ [CallStack]
+do_space : orig line 3, orig col 14, first text '(', type FPAREN_OPEN
+do_space : first orig line is 3, orig col is 14, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second orig line is 3, orig col is 15, Text() is 'const', [QUALIFIER/NONE] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 3
+space_col_align : => second orig line is 3
+space_col_align : => first text is '('
+space_col_align : => second text is 'const'
+space_col_align : => first orig col is 14
+space_col_align : => second orig col is 15
+space_col_align : => first len is 1
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 3, orig col 15, [QUALIFIER/NONE], text 'const' <==>
+space_col_align : 2nd orig line 3, orig col 21, [TYPE/NONE], text 'char'
+ [CallStack]
+do_space : orig line 3, orig col 15, first text 'const', type QUALIFIER
+do_space : first orig line is 3, orig col is 15, Text() is 'const', [QUALIFIER/NONE] <===>
+ second orig line is 3, orig col is 21, Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'const' and 'char'
+space_col_align : av is force
+space_col_align : '1st' len is 5
+space_col_align : => coldiff is 5
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 6
+space_col_align : 1st orig line 3, orig col 21, [TYPE/NONE], text 'char' <==>
+space_col_align : 2nd orig line 3, orig col 25, [PTR_TYPE/NONE], text '*'
+ [CallStack]
+do_space : orig line 3, orig col 21, first text 'char', type TYPE
+do_space : first orig line is 3, orig col is 21, Text() is 'char', [TYPE/NONE] <===>
+ second orig line is 3, orig col is 25, Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 3
+space_col_align : => second orig line is 3
+space_col_align : => first text is 'char'
+space_col_align : => second text is '*'
+space_col_align : => first orig col is 21
+space_col_align : => second orig col is 25
+space_col_align : => first len is 4
+space_col_align : => coldiff is 4
+space_col_align : 1st orig line 3, orig col 25, [PTR_TYPE/NONE], text '*' <==>
+space_col_align : 2nd orig line 3, orig col 27, [WORD/NONE], text 'pN'
+ [CallStack]
+do_space : orig line 3, orig col 25, first text '*', type PTR_TYPE
+do_space : first orig line is 3, orig col is 25, Text() is '*', [PTR_TYPE/NONE] <===>
+ second orig line is 3, orig col is 27, Text() is 'pN', [WORD/NONE] : rule sp_after_ptr_star[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 3
+space_col_align : => second orig line is 3
+space_col_align : => first text is '*'
+space_col_align : => second text is 'pN'
+space_col_align : => first orig col is 25
+space_col_align : => second orig col is 27
+space_col_align : => first len is 1
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 3, orig col 27, [WORD/NONE], text 'pN' <==>
+space_col_align : 2nd orig line 3, orig col 29, [COMMA/NONE], text ','
+ [CallStack]
+do_space : orig line 3, orig col 27, first text 'pN', type WORD
+do_space : first orig line is 3, orig col is 27, Text() is 'pN', [WORD/NONE] <===>
+ second orig line is 3, orig col is 29, Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+space_col_align : av is remove
+space_col_align : '1st' len is 2
+space_col_align : => coldiff is 2
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 3, orig col 29, [COMMA/NONE], text ',' <==>
+space_col_align : 2nd orig line 3, orig col 31, [TYPE/NONE], text 'unsigned'
+ [CallStack]
+do_space : orig line 3, orig col 29, first text ',', type COMMA
+do_space : first orig line is 3, orig col is 29, Text() is ',', [COMMA/NONE] <===>
+ second orig line is 3, orig col is 31, Text() is 'unsigned', [TYPE/NONE] : rule sp_after_comma[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 3
+space_col_align : => second orig line is 3
+space_col_align : => first text is ','
+space_col_align : => second text is 'unsigned'
+space_col_align : => first orig col is 29
+space_col_align : => second orig col is 31
+space_col_align : => first len is 1
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 3, orig col 31, [TYPE/NONE], text 'unsigned' <==>
+space_col_align : 2nd orig line 3, orig col 40, [TYPE/NONE], text 'long'
+ [CallStack]
+do_space : orig line 3, orig col 31, first text 'unsigned', type TYPE
+do_space : first orig line is 3, orig col is 31, Text() is 'unsigned', [TYPE/NONE] <===>
+ second orig line is 3, orig col is 40, Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'unsigned' and 'long'
+space_col_align : av is force
+space_col_align : '1st' len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 9
+space_col_align : 1st orig line 3, orig col 40, [TYPE/NONE], text 'long' <==>
+space_col_align : 2nd orig line 3, orig col 45, [WORD/NONE], text 'nI'
+ [CallStack]
+do_space : orig line 3, orig col 40, first text 'long', type TYPE
+do_space : first orig line is 3, orig col is 40, Text() is 'long', [TYPE/NONE] <===>
+ second orig line is 3, orig col is 45, Text() is 'nI', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'long' and 'nI'
+space_col_align : av is force
+space_col_align : '1st' len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 5
+space_col_align : 1st orig line 3, orig col 45, [WORD/NONE], text 'nI' <==>
+space_col_align : 2nd orig line 3, orig col 47, [FPAREN_CLOSE/FUNC_CLASS_DEF], text ')'
+ [CallStack]
+do_space : orig line 3, orig col 45, first text 'nI', type WORD
+do_space : first orig line is 3, orig col is 45, Text() is 'nI', [WORD/NONE] <===>
+ second orig line is 3, orig col is 47, Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 2
+space_col_align : => coldiff is 2
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 3
+space_col_align : => second orig line is 3
+space_col_align : => first text is 'nI'
+space_col_align : => second text is ')'
+space_col_align : => first orig col is 45
+space_col_align : => second orig col is 47
+space_col_align : => first len is 2
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 3, orig col 47, [FPAREN_CLOSE/FUNC_CLASS_DEF], text ')' <==>
+space_col_align : 2nd orig line 3, orig col 49, [CONSTR_COLON/NONE], text ':'
+ [CallStack]
+do_space : orig line 3, orig col 47, first text ')', type FPAREN_CLOSE
+do_space : first orig line is 3, orig col is 47, Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] <===>
+ second orig line is 3, orig col is 49, Text() is ':', [CONSTR_COLON/NONE] : rule sp_before_constr_colon[ ]
+space_col_align : av is add
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is ADD
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 3, orig col 49, [CONSTR_COLON/NONE], text ':' <==>
+space_col_align : 2nd orig line 3, orig col 50, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 3, orig col 49, first text ':', type CONSTR_COLON
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 4, orig col 1, [FUNC_CTOR_VAR/NONE], text 'pTelName' <==>
+space_col_align : 2nd orig line 4, orig col 9, [FPAREN_OPEN/FUNC_CTOR_VAR], text '('
+ [CallStack]
+do_space : orig line 4, orig col 1, first text 'pTelName', type FUNC_CTOR_VAR
+do_space : first orig line is 4, orig col is 1, Text() is 'pTelName', [FUNC_CTOR_VAR/NONE] <===>
+ second orig line is 4, orig col is 9, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 4
+space_col_align : => second orig line is 4
+space_col_align : => first text is 'pTelName'
+space_col_align : => second text is '('
+space_col_align : => first orig col is 1
+space_col_align : => second orig col is 9
+space_col_align : => first len is 8
+space_col_align : => coldiff is 8
+space_col_align : 1st orig line 4, orig col 9, [FPAREN_OPEN/FUNC_CTOR_VAR], text '(' <==>
+space_col_align : 2nd orig line 4, orig col 10, [WORD/NONE], text 'pN'
+ [CallStack]
+do_space : orig line 4, orig col 9, first text '(', type FPAREN_OPEN
+do_space : first orig line is 4, orig col is 9, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second orig line is 4, orig col is 10, Text() is 'pN', [WORD/NONE] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 4
+space_col_align : => second orig line is 4
+space_col_align : => first text is '('
+space_col_align : => second text is 'pN'
+space_col_align : => first orig col is 9
+space_col_align : => second orig col is 10
+space_col_align : => first len is 1
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 4, orig col 10, [WORD/NONE], text 'pN' <==>
+space_col_align : 2nd orig line 4, orig col 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], text ')'
+ [CallStack]
+do_space : orig line 4, orig col 10, first text 'pN', type WORD
+do_space : first orig line is 4, orig col is 10, Text() is 'pN', [WORD/NONE] <===>
+ second orig line is 4, orig col is 12, Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 2
+space_col_align : => coldiff is 2
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 4
+space_col_align : => second orig line is 4
+space_col_align : => first text is 'pN'
+space_col_align : => second text is ')'
+space_col_align : => first orig col is 10
+space_col_align : => second orig col is 12
+space_col_align : => first len is 2
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 4, orig col 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], text ')' <==>
+space_col_align : 2nd orig line 4, orig col 13, [COMMA/NONE], text ','
+ [CallStack]
+do_space : orig line 4, orig col 12, first text ')', type FPAREN_CLOSE
+do_space : first orig line is 4, orig col is 12, Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] <===>
+ second orig line is 4, orig col is 13, Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 4, orig col 13, [COMMA/NONE], text ',' <==>
+space_col_align : 2nd orig line 4, orig col 14, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 4, orig col 13, first text ',', type COMMA
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 5, orig col 1, [FUNC_CTOR_VAR/NONE], text 'nTelIndex' <==>
+space_col_align : 2nd orig line 5, orig col 10, [FPAREN_OPEN/FUNC_CTOR_VAR], text '('
+ [CallStack]
+do_space : orig line 5, orig col 1, first text 'nTelIndex', type FUNC_CTOR_VAR
+do_space : first orig line is 5, orig col is 1, Text() is 'nTelIndex', [FUNC_CTOR_VAR/NONE] <===>
+ second orig line is 5, orig col is 10, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 9
+space_col_align : => coldiff is 9
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 5
+space_col_align : => second orig line is 5
+space_col_align : => first text is 'nTelIndex'
+space_col_align : => second text is '('
+space_col_align : => first orig col is 1
+space_col_align : => second orig col is 10
+space_col_align : => first len is 9
+space_col_align : => coldiff is 9
+space_col_align : 1st orig line 5, orig col 10, [FPAREN_OPEN/FUNC_CTOR_VAR], text '(' <==>
+space_col_align : 2nd orig line 5, orig col 11, [WORD/NONE], text 'n'
+ [CallStack]
+do_space : orig line 5, orig col 10, first text '(', type FPAREN_OPEN
+do_space : first orig line is 5, orig col is 10, Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second orig line is 5, orig col is 11, Text() is 'n', [WORD/NONE] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 5
+space_col_align : => second orig line is 5
+space_col_align : => first text is '('
+space_col_align : => second text is 'n'
+space_col_align : => first orig col is 10
+space_col_align : => second orig col is 11
+space_col_align : => first len is 1
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 5, orig col 11, [WORD/NONE], text 'n' <==>
+space_col_align : 2nd orig line 5, orig col 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], text ')'
+ [CallStack]
+do_space : orig line 5, orig col 11, first text 'n', type WORD
+do_space : first orig line is 5, orig col is 11, Text() is 'n', [WORD/NONE] <===>
+ second orig line is 5, orig col is 12, Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 5
+space_col_align : => second orig line is 5
+space_col_align : => first text is 'n'
+space_col_align : => second text is ')'
+space_col_align : => first orig col is 11
+space_col_align : => second orig col is 12
+space_col_align : => first len is 1
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 5, orig col 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], text ')' <==>
+space_col_align : 2nd orig line 5, orig col 13, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 5, orig col 12, first text ')', type FPAREN_CLOSE
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 6, orig col 1, [BRACE_OPEN/FUNC_CLASS_DEF], text '{' <==>
+space_col_align : 2nd orig line 6, orig col 2, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 6, orig col 1, first text '{', type BRACE_OPEN
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 7, orig col 1, [BRACE_CLOSE/FUNC_CLASS_DEF], text '}' <==>
+space_col_align : 2nd orig line 7, orig col 2, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 7, orig col 1, first text '}', type BRACE_CLOSE
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 9, orig col 1, [DESTRUCTOR/FUNC_CLASS_DEF], text '~' <==>
+space_col_align : 2nd orig line 9, orig col 2, [FUNC_CLASS_DEF/DESTRUCTOR], text 'TelegramIndex'
+ [CallStack]
+do_space : orig line 9, orig col 1, first text '~', type DESTRUCTOR
+do_space : first orig line is 9, orig col is 1, Text() is '~', [DESTRUCTOR/FUNC_CLASS_DEF] <===>
+ second orig line is 9, orig col is 2, Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] : rule REMOVE[ ]
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 9, orig col 2, [FUNC_CLASS_DEF/DESTRUCTOR], text 'TelegramIndex' <==>
+space_col_align : 2nd orig line 9, orig col 15, [FPAREN_OPEN/FUNC_CLASS_DEF], text '('
+ [CallStack]
+do_space : orig line 9, orig col 2, first text 'TelegramIndex', type FUNC_CLASS_DEF
+do_space : first orig line is 9, orig col is 2, Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] <===>
+ second orig line is 9, orig col is 15, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 13
+space_col_align : => coldiff is 13
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 9
+space_col_align : => second orig line is 9
+space_col_align : => first text is 'TelegramIndex'
+space_col_align : => second text is '('
+space_col_align : => first orig col is 2
+space_col_align : => second orig col is 15
+space_col_align : => first len is 13
+space_col_align : => coldiff is 13
+space_col_align : 1st orig line 9, orig col 15, [FPAREN_OPEN/FUNC_CLASS_DEF], text '(' <==>
+space_col_align : 2nd orig line 9, orig col 16, [FPAREN_CLOSE/FUNC_CLASS_DEF], text ')'
+ [CallStack]
+do_space : orig line 9, orig col 15, first text '(', type FPAREN_OPEN
+do_space : first orig line is 9, orig col is 15, Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second orig line is 9, orig col is 16, Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparens[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 9
+space_col_align : => second orig line is 9
+space_col_align : => first text is '('
+space_col_align : => second text is ')'
+space_col_align : => first orig col is 15
+space_col_align : => second orig col is 16
+space_col_align : => first len is 1
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 9, orig col 16, [FPAREN_CLOSE/FUNC_CLASS_DEF], text ')' <==>
+space_col_align : 2nd orig line 9, orig col 17, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 9, orig col 16, first text ')', type FPAREN_CLOSE
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 10, orig col 1, [BRACE_OPEN/FUNC_CLASS_DEF], text '{' <==>
+space_col_align : 2nd orig line 10, orig col 2, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 10, orig col 1, first text '{', type BRACE_OPEN
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 11, orig col 1, [BRACE_CLOSE/FUNC_CLASS_DEF], text '}' <==>
+space_col_align : 2nd orig line 11, orig col 2, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 11, orig col 1, first text '}', type BRACE_CLOSE
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 13, orig col 1, [QUALIFIER/NONE], text 'const' <==>
+space_col_align : 2nd orig line 13, orig col 7, [TYPE/NONE], text 'char'
+ [CallStack]
+do_space : orig line 13, orig col 1, first text 'const', type QUALIFIER
+do_space : first orig line is 13, orig col is 1, Text() is 'const', [QUALIFIER/NONE] <===>
+ second orig line is 13, orig col is 7, Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'const' and 'char'
+space_col_align : av is force
+space_col_align : '1st' len is 5
+space_col_align : => coldiff is 5
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 6
+space_col_align : 1st orig line 13, orig col 7, [TYPE/NONE], text 'char' <==>
+space_col_align : 2nd orig line 13, orig col 11, [PTR_TYPE/NONE], text '*'
+ [CallStack]
+do_space : orig line 13, orig col 7, first text 'char', type TYPE
+do_space : first orig line is 13, orig col is 7, Text() is 'char', [TYPE/NONE] <===>
+ second orig line is 13, orig col is 11, Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 13
+space_col_align : => second orig line is 13
+space_col_align : => first text is 'char'
+space_col_align : => second text is '*'
+space_col_align : => first orig col is 7
+space_col_align : => second orig col is 11
+space_col_align : => first len is 4
+space_col_align : => coldiff is 4
+space_col_align : 1st orig line 13, orig col 11, [PTR_TYPE/NONE], text '*' <==>
+space_col_align : 2nd orig line 13, orig col 13, [QUALIFIER/NONE], text 'const'
+ [CallStack]
+do_space : orig line 13, orig col 11, first text '*', type PTR_TYPE
+do_space : first orig line is 13, orig col is 11, Text() is '*', [PTR_TYPE/NONE] <===>
+ second orig line is 13, orig col is 13, Text() is 'const', [QUALIFIER/NONE] : rule sp_after_ptr_star_qualifier[ ]
+space_col_align : av is ignore
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first orig line is 13
+space_col_align : => second orig line is 13
+space_col_align : => first text is '*'
+space_col_align : => second text is 'const'
+space_col_align : => first orig col is 11
+space_col_align : => second orig col is 13
+space_col_align : => first len is 1
+space_col_align : => coldiff is 2
+space_col_align : 1st orig line 13, orig col 13, [QUALIFIER/NONE], text 'const' <==>
+space_col_align : 2nd orig line 13, orig col 19, [WORD/NONE], text 'pTelName'
+ [CallStack]
+do_space : orig line 13, orig col 13, first text 'const', type QUALIFIER
+do_space : first orig line is 13, orig col is 13, Text() is 'const', [QUALIFIER/NONE] <===>
+ second orig line is 13, orig col is 19, Text() is 'pTelName', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'const' and 'pTelName'
+space_col_align : av is force
+space_col_align : '1st' len is 5
+space_col_align : => coldiff is 5
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 6
+space_col_align : 1st orig line 13, orig col 19, [WORD/NONE], text 'pTelName' <==>
+space_col_align : 2nd orig line 13, orig col 27, [SEMICOLON/NONE], text ';'
+ [CallStack]
+do_space : orig line 13, orig col 19, first text 'pTelName', type WORD
+do_space : first orig line is 13, orig col is 19, Text() is 'pTelName', [WORD/NONE] <===>
+ second orig line is 13, orig col is 27, Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+space_col_align : av is remove
+space_col_align : '1st' len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 8
+space_col_align : 1st orig line 13, orig col 27, [SEMICOLON/NONE], text ';' <==>
+space_col_align : 2nd orig line 13, orig col 28, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 13, orig col 27, first text ';', type SEMICOLON
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : 1st orig line 14, orig col 1, [TYPE/NONE], text 'unsigned' <==>
+space_col_align : 2nd orig line 14, orig col 10, [TYPE/NONE], text 'long'
+ [CallStack]
+do_space : orig line 14, orig col 1, first text 'unsigned', type TYPE
+do_space : first orig line is 14, orig col is 1, Text() is 'unsigned', [TYPE/NONE] <===>
+ second orig line is 14, orig col is 10, Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'unsigned' and 'long'
+space_col_align : av is force
+space_col_align : '1st' len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 9
+space_col_align : 1st orig line 14, orig col 10, [TYPE/NONE], text 'long' <==>
+space_col_align : 2nd orig line 14, orig col 15, [WORD/NONE], text 'nTelIndex'
+ [CallStack]
+do_space : orig line 14, orig col 10, first text 'long', type TYPE
+do_space : first orig line is 14, orig col is 10, Text() is 'long', [TYPE/NONE] <===>
+ second orig line is 14, orig col is 15, Text() is 'nTelIndex', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : force between 'long' and 'nTelIndex'
+space_col_align : av is force
+space_col_align : '1st' len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 5
+space_col_align : 1st orig line 14, orig col 15, [WORD/NONE], text 'nTelIndex' <==>
+space_col_align : 2nd orig line 14, orig col 24, [SEMICOLON/NONE], text ';'
+ [CallStack]
+do_space : orig line 14, orig col 15, first text 'nTelIndex', type WORD
+do_space : first orig line is 14, orig col is 15, Text() is 'nTelIndex', [WORD/NONE] <===>
+ second orig line is 14, orig col is 24, Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+space_col_align : av is remove
+space_col_align : '1st' len is 9
+space_col_align : => coldiff is 9
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 9
+space_col_align : 1st orig line 14, orig col 24, [SEMICOLON/NONE], text ';' <==>
+space_col_align : 2nd orig line 14, orig col 25, [NEWLINE/NONE], text ''
+ [CallStack]
+do_space : orig line 14, orig col 24, first text ';', type SEMICOLON
+space_col_align : av is remove
+space_col_align : '1st' len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/9.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/9.txt
new file mode 100644
index 00000000..98afe921
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/9.txt
@@ -0,0 +1 @@
+Using LF line endings
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/92.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/92.txt
new file mode 100644
index 00000000..f0690328
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/92.txt
@@ -0,0 +1,196 @@
+SetType : orig line is 1, orig col is 1, Text() is 'struct'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 1, orig col is 1, Text() is 'struct'
+ type is WORD, parent type is NONE => new type is STRUCT
+SetType : orig line is 1, orig col is 7, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 1, orig col is 8, Text() is 'TelegramIndex'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 1, orig col is 21, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 2, orig col is 1, Text() is '{'
+ type is NONE, parent type is NONE => new type is BRACE_OPEN
+SetType : orig line is 2, orig col is 2, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 3, orig col is 1, Text() is 'TelegramIndex'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 14, Text() is '('
+ type is NONE, parent type is NONE => new type is PAREN_OPEN
+SetType : orig line is 3, orig col is 15, Text() is 'const'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 15, Text() is 'const'
+ type is WORD, parent type is NONE => new type is QUALIFIER
+SetType : orig line is 3, orig col is 20, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 3, orig col is 21, Text() is 'char'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 21, Text() is 'char'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 3, orig col is 25, Text() is '*'
+ type is NONE, parent type is NONE => new type is STAR
+SetType : orig line is 3, orig col is 26, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 3, orig col is 27, Text() is 'pN'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 29, Text() is ','
+ type is NONE, parent type is NONE => new type is COMMA
+SetType : orig line is 3, orig col is 30, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 3, orig col is 31, Text() is 'unsigned'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 31, Text() is 'unsigned'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 3, orig col is 39, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 3, orig col is 40, Text() is 'long'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 40, Text() is 'long'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 3, orig col is 44, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 3, orig col is 45, Text() is 'nI'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 3, orig col is 47, Text() is ')'
+ type is NONE, parent type is NONE => new type is PAREN_CLOSE
+SetType : orig line is 3, orig col is 48, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 3, orig col is 49, Text() is ':'
+ type is NONE, parent type is NONE => new type is COLON
+SetType : orig line is 3, orig col is 50, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 4, orig col is 1, Text() is 'pTelName'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 4, orig col is 9, Text() is '('
+ type is NONE, parent type is NONE => new type is PAREN_OPEN
+SetType : orig line is 4, orig col is 10, Text() is 'pN'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 4, orig col is 12, Text() is ')'
+ type is NONE, parent type is NONE => new type is PAREN_CLOSE
+SetType : orig line is 4, orig col is 13, Text() is ','
+ type is NONE, parent type is NONE => new type is COMMA
+SetType : orig line is 4, orig col is 14, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 5, orig col is 1, Text() is 'nTelIndex'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 5, orig col is 10, Text() is '('
+ type is NONE, parent type is NONE => new type is PAREN_OPEN
+SetType : orig line is 5, orig col is 11, Text() is 'n'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 5, orig col is 12, Text() is ')'
+ type is NONE, parent type is NONE => new type is PAREN_CLOSE
+SetType : orig line is 5, orig col is 13, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 6, orig col is 1, Text() is '{'
+ type is NONE, parent type is NONE => new type is BRACE_OPEN
+SetType : orig line is 6, orig col is 2, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 7, orig col is 1, Text() is '}'
+ type is NONE, parent type is NONE => new type is BRACE_CLOSE
+SetType : orig line is 7, orig col is 2, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 9, orig col is 1, Text() is '~'
+ type is NONE, parent type is NONE => new type is INV
+SetType : orig line is 9, orig col is 2, Text() is 'TelegramIndex'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 9, orig col is 15, Text() is '('
+ type is NONE, parent type is NONE => new type is PAREN_OPEN
+SetType : orig line is 9, orig col is 16, Text() is ')'
+ type is NONE, parent type is NONE => new type is PAREN_CLOSE
+SetType : orig line is 9, orig col is 17, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 10, orig col is 1, Text() is '{'
+ type is NONE, parent type is NONE => new type is BRACE_OPEN
+SetType : orig line is 10, orig col is 2, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 11, orig col is 1, Text() is '}'
+ type is NONE, parent type is NONE => new type is BRACE_CLOSE
+SetType : orig line is 11, orig col is 2, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 13, orig col is 1, Text() is 'const'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 13, orig col is 1, Text() is 'const'
+ type is WORD, parent type is NONE => new type is QUALIFIER
+SetType : orig line is 13, orig col is 6, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 13, orig col is 7, Text() is 'char'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 13, orig col is 7, Text() is 'char'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 13, orig col is 11, Text() is '*'
+ type is NONE, parent type is NONE => new type is STAR
+SetType : orig line is 13, orig col is 12, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 13, orig col is 13, Text() is 'const'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 13, orig col is 13, Text() is 'const'
+ type is WORD, parent type is NONE => new type is QUALIFIER
+SetType : orig line is 13, orig col is 18, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 13, orig col is 19, Text() is 'pTelName'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 13, orig col is 27, Text() is ';'
+ type is NONE, parent type is NONE => new type is SEMICOLON
+SetType : orig line is 13, orig col is 28, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 14, orig col is 1, Text() is 'unsigned'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 14, orig col is 1, Text() is 'unsigned'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 14, orig col is 9, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 14, orig col is 10, Text() is 'long'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 14, orig col is 10, Text() is 'long'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 14, orig col is 14, Text() is ''
+ type is NONE, parent type is NONE => new type is WHITESPACE
+SetType : orig line is 14, orig col is 15, Text() is 'nTelIndex'
+ type is NONE, parent type is NONE => new type is WORD
+SetType : orig line is 14, orig col is 24, Text() is ';'
+ type is NONE, parent type is NONE => new type is SEMICOLON
+SetType : orig line is 14, orig col is 25, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 15, orig col is 1, Text() is '}'
+ type is NONE, parent type is NONE => new type is BRACE_CLOSE
+SetType : orig line is 15, orig col is 2, Text() is ';'
+ type is NONE, parent type is NONE => new type is SEMICOLON
+SetType : orig line is 15, orig col is 3, Text() is <Newline>
+ type is NONE, parent type is NONE => new type is NEWLINE
+SetType : orig line is 1, orig col is 8, Text() is 'TelegramIndex'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 3, orig col is 25, Text() is '*'
+ type is STAR, parent type is NONE => new type is PTR_TYPE
+SetType : orig line is 13, orig col is 11, Text() is '*'
+ type is STAR, parent type is NONE => new type is PTR_TYPE
+SetType : orig line is 1, orig col is 8, Text() is 'TelegramIndex'
+ type is TYPE, parent type is NONE => new type is WORD
+SetType : orig line is 1, orig col is 8, Text() is 'TelegramIndex'
+ type is WORD, parent type is NONE => new type is TYPE
+SetType : orig line is 3, orig col is 1, Text() is 'TelegramIndex'
+ type is WORD, parent type is NONE => new type is FUNC_CLASS_DEF
+SetType : orig line is 3, orig col is 14, Text() is '('
+ type is PAREN_OPEN, parent type is NONE => new type is FPAREN_OPEN
+SetType : orig line is 3, orig col is 47, Text() is ')'
+ type is PAREN_CLOSE, parent type is NONE => new type is FPAREN_CLOSE
+SetType : orig line is 3, orig col is 49, Text() is ':'
+ type is COLON, parent type is NONE => new type is CONSTR_COLON
+SetType : orig line is 4, orig col is 1, Text() is 'pTelName'
+ type is WORD, parent type is NONE => new type is FUNC_CTOR_VAR
+SetType : orig line is 4, orig col is 9, Text() is '('
+ type is PAREN_OPEN, parent type is NONE => new type is FPAREN_OPEN
+SetType : orig line is 4, orig col is 12, Text() is ')'
+ type is PAREN_CLOSE, parent type is NONE => new type is FPAREN_CLOSE
+SetType : orig line is 5, orig col is 1, Text() is 'nTelIndex'
+ type is WORD, parent type is NONE => new type is FUNC_CTOR_VAR
+SetType : orig line is 5, orig col is 10, Text() is '('
+ type is PAREN_OPEN, parent type is NONE => new type is FPAREN_OPEN
+SetType : orig line is 5, orig col is 12, Text() is ')'
+ type is PAREN_CLOSE, parent type is NONE => new type is FPAREN_CLOSE
+SetType : orig line is 9, orig col is 2, Text() is 'TelegramIndex'
+ type is WORD, parent type is NONE => new type is FUNC_CLASS_DEF
+SetType : orig line is 9, orig col is 1, Text() is '~'
+ type is INV, parent type is NONE => new type is DESTRUCTOR
+SetType : orig line is 9, orig col is 15, Text() is '('
+ type is PAREN_OPEN, parent type is NONE => new type is FPAREN_OPEN
+SetType : orig line is 9, orig col is 16, Text() is ')'
+ type is PAREN_CLOSE, parent type is NONE => new type is FPAREN_CLOSE
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/Debug_tracking_space.html b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/Debug_tracking_space.html
new file mode 100644
index 00000000..b189de78
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/Debug_tracking_space.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <title>Uncrustify: where do the Spaces options work</title>
+</head>
+<body lang="en-US">
+<p>
+</p>
+<pre>
+{<a title="REMOVE: 1"><font color="red">M</font></a>
+ a<a title="sp_assign: 2"><font color="red">M</font></a>=<a title="sp_assign: 3, 86"><font color="red">M</font></a>b<a title="sp_arith: 4, 87, 93"><font color="red">M</font></a>+<a title="sp_arith: 5, 88, 94, 99"><font color="red">M</font></a>111<a title="sp_arith: 6, 89, 95, 100, 104"><font color="red">M</font></a>-<a title="sp_arith: 7, 90, 96, 101, 105, 108"><font color="red">M</font></a>55<a title="sp_before_semi: 8, 91, 97, 102, 106, 109, 111"><font color="red">M</font></a>;<a title="REMOVE: 9, 92, 98, 103, 107, 110, 112, 113"><font color="red">M</font></a>
+}<a title="REMOVE: 10"><font color="red">M</font></a>
+template<a title="sp_before_angle: 11"><font color="red">M</font></a>&lt;<a title="sp_inside_angle: 12, 114"><font color="red">M</font></a>typename<a title="ADD from add_space_table @ 253.: 13, 115, 123"><font color="red">M</font></a>...<a title="sp_ellipsis_parameter_pack: 14, 116, 124, 131"><font color="red">M</font></a>A<a title="sp_before_comma: 15, 117, 125, 132, 138"><font color="red">M</font></a>,<a title="sp_after_comma: 16, 118, 126, 133, 139, 144"><font color="red">M</font></a>int<a title="sp_type_ellipsis: 17, 119, 127, 134, 140, 145, 149"><font color="red">M</font></a>...<a title="FORCE: 18, 120, 128, 135, 141, 146, 150, 153"><font color="red">M</font></a>B<a title="sp_inside_angle: 19, 121, 129, 136, 142, 147, 151, 154, 156"><font color="red">M</font></a>&gt;<a title="REMOVE: 20, 122, 130, 137, 143, 148, 152, 155, 157, 158"><font color="red">M</font></a>
+struct<a title="ADD from add_space_table @ 236.: 21"><font color="red">M</font></a>foo1<a title="sp_after_type: 22, 159"><font color="red">M</font></a>:<a title="ADD from add_space_table @ 49.: 23, 160, 177"><font color="red">M</font></a>foo1<a title="sp_before_angle: 24, 161, 178, 194"><font color="red">M</font></a>&lt;<a title="sp_inside_angle: 25, 162, 179, 195, 210"><font color="red">M</font></a>A<a title="sp_parameter_pack_ellipsis: 26, 163, 180, 196, 211, 225"><font color="red">M</font></a>...<a title="sp_before_comma: 27, 164, 181, 197, 212, 226, 239"><font color="red">M</font></a>,<a title="sp_after_comma: 28, 165, 182, 198, 213, 227, 240, 252"><font color="red">M</font></a>(<a title="sp_inside_paren: 29, 166, 183, 199, 214, 228, 241, 253, 264"><font color="red">M</font></a>sizeof<a title="sp_sizeof_ellipsis: 30, 167, 184, 200, 215, 229, 242, 254, 265, 275"><font color="red">M</font></a>...<a title="sp_sizeof_ellipsis_paren: 31, 168, 185, 201, 216, 230, 243, 255, 266, 276, 285"><font color="red">M</font></a>(<a title="sp_inside_paren: 32, 169, 186, 202, 217, 231, 244, 256, 267, 277, 286, 294"><font color="red">M</font></a>A<a title="sp_inside_paren: 33, 170, 187, 203, 218, 232, 245, 257, 268, 278, 287, 295, 302"><font color="red">M</font></a>)<a title="sp_arith: 34, 171, 188, 204, 219, 233, 246, 258, 269, 279, 288, 296, 303, 309"><font color="red">M</font></a>+<a title="sp_arith: 35, 172, 189, 205, 220, 234, 247, 259, 270, 280, 289, 297, 304, 310, 315"><font color="red">M</font></a>B<a title="sp_inside_paren: 36, 173, 190, 206, 221, 235, 248, 260, 271, 281, 290, 298, 305, 311, 316, 320"><font color="red">M</font></a>)<a title="sp_paren_ellipsis: 272, 324, 321, 317, 312, 306, 299, 291, 282, 37, 261, 249, 236, 222, 207, 191, 174"><font color="red">M</font></a>...<a title="sp_inside_angle: 283, 327, 325, 322, 318, 313, 307, 300, 292, 38, 273, 262, 250, 237, 223, 208, 192, 175"><font color="red">M</font></a>&gt;<a title="REMOVE: 284, 329, 328, 326, 323, 319, 314, 308, 301, 293, 39, 274, 263, 251, 238, 224, 209, 193, 176"><font color="red">M</font></a>
+{<a title="REMOVE: 40"><font color="red">M</font></a>
+ foo1<a title="sp_func_class_paren: 41, 64"><font color="red">M</font></a>(<a title="sp_inside_fparens: 42, 65, 330"><font color="red">M</font></a>)<a title="sp_fparen_brace: 43, 66, 331, 333"><font color="red">M</font></a>{<a title="REMOVE: 44, 67, 332, 334, 335"><font color="red">M</font></a>
+ int<a title="sp_after_type: 45, 68"><font color="red">M</font></a>x<a title="sp_assign: 46, 69, 336"><font color="red">M</font></a>=<a title="sp_assign: 47, 70, 337, 344"><font color="red">M</font></a>sizeof<a title="sp_sizeof_ellipsis: 48, 71, 338, 345, 351"><font color="red">M</font></a>...<a title="sp_sizeof_ellipsis_paren: 49, 72, 339, 346, 352, 357"><font color="red">M</font></a>(<a title="sp_inside_paren: 50, 73, 340, 347, 353, 358, 362"><font color="red">M</font></a>A<a title="sp_inside_paren: 51, 74, 341, 348, 354, 359, 363, 366"><font color="red">M</font></a>)<a title="sp_before_semi: 52, 75, 342, 349, 355, 360, 364, 367, 369"><font color="red">M</font></a>;<a title="REMOVE: 53, 76, 343, 350, 356, 361, 365, 368, 370, 371"><font color="red">M</font></a>
+ bool<a title="sp_after_type: 54, 77"><font color="red">M</font></a>b<a title="sp_assign: 55, 78, 372"><font color="red">M</font></a>=<a title="sp_assign: 56, 79, 373, 378"><font color="red">M</font></a>x<a title="sp_compare: 57, 80, 374, 379, 383"><font color="red">M</font></a>><a title="sp_compare: 58, 81, 375, 380, 384, 387"><font color="red">M</font></a>1<a title="sp_before_semi: 59, 82, 376, 381, 385, 388, 390"><font color="red">M</font></a>;<a title="REMOVE: 60, 83, 377, 382, 386, 389, 391, 392"><font color="red">M</font></a>
+ }<a title="REMOVE: 61, 84"><font color="red">M</font></a>
+}<a title="sp_before_semi: 62"><font color="red">M</font></a>;<a title="REMOVE: 63, 393"><font color="red">M</font></a>
+</pre>
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/I-842.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/I-842.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/I-842.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/backup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/backup.h
new file mode 100644
index 00000000..210c6f7c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/backup.h
@@ -0,0 +1,4 @@
+int main()
+{
+ a = b + c;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.csv b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.csv
new file mode 100644
index 00000000..5b8e9e86
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.csv
@@ -0,0 +1,685 @@
+number of loops,1,
+language,CPP,
+Line,Tag,Parent_type,Type of the parent,Column,Orig Col Strt,Orig Col End,Orig Sp Before,Br,Lvl,pp,Flags,Nl Before,Nl After,Text,
+1,COMMENT_MULTI,COMMENT_WHOLE,PARENT_NOT_SET,1,4,7,3,0,0,0,"",9,0," /**␤ * the enum (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * ""enum type [: integral_type] { ... } [x, ...]""␤ * ""enum type [: integral_type]""␤ * ""enum class type [: integral_type] { ... } [x, ...]""␤ * ""enum class type [: integral_type]""␤ * ""enum [: integral_type] { ... } x, ...""␤ */"
+10,NEWLINE,NONE,PARENT_NOT_SET,7,7,4,0,0,0,0,"",2,0,
+12,COMMENT_MULTI,COMMENT_WHOLE,PARENT_NOT_SET,1,4,7,0,0,0,0,"",9,0," /**␤ * the class/struct (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }␤ * template<...> class/struct[<...>] [macros/attributes ...] type␤ * class/struct[ [macros/attributes ...] type [: bases ...] { } [x, ...]␤ * class/struct [macros/attributes ...] type [x, ...]␤ * class/struct [macros/attributes ...] [: bases] { } x, ...␤ */"
+21,NEWLINE,NONE,PARENT_NOT_SET,7,7,1,0,0,0,0,"",2,0,
+23,PREPROC,PP_DEFINE,PARENT_NOT_SET,1,1,2,0,1,1,0,"IN_PREPROC,STMT_START,EXPR_START,DONT_INDENT,PUNCTUATOR",0,0," #"
+23,PP_DEFINE,NONE,PARENT_NOT_SET,2,2,8,0,1,1,0,"IN_PREPROC,FORCE_SPACE",0,0," define"
+23,MACRO_FUNC,NONE,PARENT_NOT_SET,9,9,16,1,1,1,0,"IN_PREPROC,EXPR_START",0,0," ALIGNAS"
+23,FPAREN_OPEN,MACRO_FUNC,PARENT_NOT_SET,16,16,17,0,1,1,0,"IN_PREPROC,PUNCTUATOR",0,0," ("
+23,WORD,NONE,PARENT_NOT_SET,17,17,31,0,1,2,0,"IN_PREPROC,IN_FCN_CALL,EXPR_START",0,0," byte_alignment"
+23,FPAREN_CLOSE,MACRO_FUNC,PARENT_NOT_SET,31,31,32,0,1,1,0,"IN_PREPROC,IN_FCN_CALL,PUNCTUATOR",0,0," )"
+23,ATTRIBUTE,NONE,PARENT_NOT_SET,33,33,46,1,1,1,0,"IN_PREPROC",0,0," __attribute__"
+23,FPAREN_OPEN,ATTRIBUTE,PARENT_NOT_SET,46,46,47,0,1,1,0,"IN_PREPROC,PUNCTUATOR",0,0," ("
+23,PAREN_OPEN,NONE,PARENT_NOT_SET,47,47,48,0,1,2,0,"IN_PREPROC,EXPR_START,PUNCTUATOR",0,0," ("
+23,FUNC_CALL,NONE,PARENT_NOT_SET,48,48,55,0,1,3,0,"IN_PREPROC,EXPR_START",0,0," aligned"
+23,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,55,55,56,0,1,3,0,"IN_PREPROC,PUNCTUATOR",0,0," ("
+23,WORD,NONE,PARENT_NOT_SET,56,56,70,0,1,4,0,"IN_PREPROC,IN_FCN_CALL,EXPR_START",0,0," byte_alignment"
+23,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,70,70,71,0,1,3,0,"IN_PREPROC,IN_FCN_CALL,PUNCTUATOR",0,0," )"
+23,PAREN_CLOSE,NONE,PARENT_NOT_SET,71,71,72,0,1,2,0,"IN_PREPROC,PUNCTUATOR",0,0," )"
+23,FPAREN_CLOSE,ATTRIBUTE,PARENT_NOT_SET,72,72,73,0,1,1,0,"IN_PREPROC,PUNCTUATOR",0,0," )"
+23,NEWLINE,NONE,PARENT_NOT_SET,73,73,1,0,0,0,0,"",2,0,
+25,PREPROC,PP_IF,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_PREPROC,DONT_INDENT,PUNCTUATOR",0,0," #"
+25,PP_IF,NONE,PARENT_NOT_SET,2,2,4,0,0,0,1,"IN_PREPROC,FORCE_SPACE",0,0," if"
+25,PP_DEFINED,NONE,PARENT_NOT_SET,5,5,12,1,0,0,1,"IN_PREPROC,EXPR_START",0,0," defined"
+25,PAREN_OPEN,NONE,PARENT_NOT_SET,13,13,14,1,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," ("
+25,WORD,NONE,PARENT_NOT_SET,14,14,22,0,0,0,1,"IN_PREPROC,EXPR_START",0,0," __unix__"
+25,PAREN_CLOSE,NONE,PARENT_NOT_SET,22,22,23,0,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+25,BOOL,NONE,PARENT_NOT_SET,24,24,26,1,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," ||"
+25,PAREN_OPEN,NONE,PARENT_NOT_SET,27,27,28,1,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," ("
+25,PP_DEFINED,NONE,PARENT_NOT_SET,28,28,35,0,0,0,1,"IN_PREPROC,EXPR_START",0,0," defined"
+25,PAREN_OPEN,NONE,PARENT_NOT_SET,36,36,37,1,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," ("
+25,WORD,NONE,PARENT_NOT_SET,37,37,46,0,0,0,1,"IN_PREPROC,EXPR_START",0,0," __APPLE__"
+25,PAREN_CLOSE,NONE,PARENT_NOT_SET,46,46,47,0,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+25,BOOL,NONE,PARENT_NOT_SET,48,48,50,1,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," &&"
+25,PP_DEFINED,NONE,PARENT_NOT_SET,51,51,58,1,0,0,1,"IN_PREPROC",0,0," defined"
+25,PAREN_OPEN,NONE,PARENT_NOT_SET,59,59,60,1,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," ("
+25,WORD,NONE,PARENT_NOT_SET,60,60,68,0,0,0,1,"IN_PREPROC,EXPR_START",0,0," __MACH__"
+25,PAREN_CLOSE,NONE,PARENT_NOT_SET,68,68,69,0,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+25,PAREN_CLOSE,NONE,PARENT_NOT_SET,69,69,70,0,0,0,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+25,NEWLINE,NONE,PARENT_NOT_SET,70,70,1,0,0,0,1,"",1,0,
+26,PREPROC,PP_DEFINE,PARENT_NOT_SET,1,1,2,0,1,1,1,"IN_PREPROC,STMT_START,EXPR_START,DONT_INDENT,PUNCTUATOR",0,0," #"
+26,PP_DEFINE,NONE,PARENT_NOT_SET,2,2,8,0,1,1,1,"IN_PREPROC,FORCE_SPACE",0,0," define"
+26,MACRO,NONE,PARENT_NOT_SET,9,9,19,1,1,1,1,"IN_PREPROC,FORCE_SPACE",0,0," API_EXPORT"
+26,ATTRIBUTE,NONE,PARENT_NOT_SET,20,20,33,1,1,1,1,"IN_PREPROC,EXPR_START",0,0," __attribute__"
+26,FPAREN_OPEN,ATTRIBUTE,PARENT_NOT_SET,34,34,35,1,1,1,1,"IN_PREPROC,STMT_START,EXPR_START,PUNCTUATOR",0,0," ("
+26,PAREN_OPEN,NONE,PARENT_NOT_SET,35,35,36,0,1,2,1,"IN_PREPROC,EXPR_START,PUNCTUATOR",0,0," ("
+26,FUNC_CALL,NONE,PARENT_NOT_SET,36,36,46,0,1,3,1,"IN_PREPROC,EXPR_START",0,0," visibility"
+26,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,46,46,47,0,1,3,1,"IN_PREPROC,PUNCTUATOR",0,0," ("
+26,STRING,NONE,PARENT_NOT_SET,47,47,56,0,1,4,1,"IN_PREPROC,IN_FCN_CALL,EXPR_START",0,0," ""default"""
+26,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,56,56,57,0,1,3,1,"IN_PREPROC,IN_FCN_CALL,PUNCTUATOR",0,0," )"
+26,PAREN_CLOSE,NONE,PARENT_NOT_SET,57,57,58,0,1,2,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+26,FPAREN_CLOSE,ATTRIBUTE,PARENT_NOT_SET,58,58,59,0,1,1,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+26,NEWLINE,NONE,PARENT_NOT_SET,59,59,1,0,0,0,1,"",1,0,
+27,PREPROC,PP_ELSE,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_PREPROC,DONT_INDENT,PUNCTUATOR",0,0," #"
+27,PP_ELSE,NONE,PP_IF,2,2,6,0,0,0,1,"IN_PREPROC,FORCE_SPACE",0,0," elif"
+27,PP_DEFINED,NONE,PARENT_NOT_SET,7,7,14,1,0,0,1,"IN_PREPROC,FORCE_SPACE,EXPR_START",0,0," defined"
+27,WORD,NONE,PARENT_NOT_SET,15,15,21,1,0,0,1,"IN_PREPROC",0,0," _WIN32"
+27,NEWLINE,NONE,PARENT_NOT_SET,21,21,1,0,0,0,1,"",1,0,
+28,PREPROC,PP_DEFINE,PARENT_NOT_SET,1,1,2,0,1,1,1,"IN_PREPROC,STMT_START,EXPR_START,DONT_INDENT,PUNCTUATOR",0,0," #"
+28,PP_DEFINE,NONE,PARENT_NOT_SET,2,2,8,0,1,1,1,"IN_PREPROC,FORCE_SPACE",0,0," define"
+28,MACRO,NONE,PARENT_NOT_SET,9,9,19,1,1,1,1,"IN_PREPROC,FORCE_SPACE",0,0," API_EXPORT"
+28,DECLSPEC,NONE,PARENT_NOT_SET,20,20,30,1,1,1,1,"IN_PREPROC,STMT_START,EXPR_START",0,0," __declspec"
+28,PAREN_OPEN,DECLSPEC,PARENT_NOT_SET,30,30,31,0,1,1,1,"IN_PREPROC,PUNCTUATOR",0,0," ("
+28,WORD,NONE,PARENT_NOT_SET,31,31,40,0,1,2,1,"IN_PREPROC,EXPR_START",0,0," dllexport"
+28,PAREN_CLOSE,DECLSPEC,PARENT_NOT_SET,40,40,41,0,1,1,1,"IN_PREPROC,PUNCTUATOR",0,0," )"
+28,NEWLINE,NONE,PARENT_NOT_SET,41,41,1,0,0,0,1,"",1,0,
+29,PREPROC,PP_ELSE,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_PREPROC,DONT_INDENT,PUNCTUATOR",0,0," #"
+29,PP_ELSE,NONE,PP_IF,2,2,6,0,0,0,1,"IN_PREPROC",0,0," else"
+29,NEWLINE,NONE,PARENT_NOT_SET,6,6,1,0,0,0,1,"",1,0,
+30,PREPROC,PP_DEFINE,PARENT_NOT_SET,1,1,2,0,1,1,1,"IN_PREPROC,STMT_START,EXPR_START,DONT_INDENT,PUNCTUATOR",0,0," #"
+30,PP_DEFINE,NONE,PARENT_NOT_SET,2,2,8,0,1,1,1,"IN_PREPROC,FORCE_SPACE",0,0," define"
+30,MACRO,NONE,PARENT_NOT_SET,9,9,19,1,1,1,1,"IN_PREPROC",0,0," API_EXPORT"
+30,NEWLINE,NONE,PARENT_NOT_SET,19,19,1,0,0,0,1,"",1,0,
+31,PREPROC,PP_ENDIF,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_PREPROC,DONT_INDENT,PUNCTUATOR",0,0," #"
+31,PP_ENDIF,NONE,PP_IF,2,2,7,0,0,0,0,"IN_PREPROC",0,0," endif"
+31,NEWLINE,NONE,PARENT_NOT_SET,7,7,1,0,0,0,0,"",2,0,
+33,NAMESPACE,NONE,PARENT_NOT_SET,1,1,10,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," namespace"
+33,WORD,NAMESPACE,PARENT_NOT_SET,11,11,26,1,0,0,0,"",0,0," outer_namespace"
+33,NEWLINE,NONE,PARENT_NOT_SET,26,26,1,0,0,0,0,"",1,0,
+34,BRACE_OPEN,NAMESPACE,PARENT_NOT_SET,1,1,2,0,0,0,0,"PUNCTUATOR",0,0," {"
+34,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,1,1,0,"IN_NAMESPACE",2,0,
+36,NAMESPACE,NONE,PARENT_NOT_SET,1,1,10,0,1,1,0,"IN_NAMESPACE,FORCE_SPACE,STMT_START,EXPR_START",0,0," namespace"
+36,WORD,NAMESPACE,PARENT_NOT_SET,11,11,26,1,1,1,0,"IN_NAMESPACE",0,0," inner_namespace"
+36,NEWLINE,NONE,PARENT_NOT_SET,26,26,1,0,1,1,0,"IN_NAMESPACE",1,0,
+37,BRACE_OPEN,NAMESPACE,PARENT_NOT_SET,1,1,2,0,1,1,0,"IN_NAMESPACE,PUNCTUATOR",0,0," {"
+37,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,2,2,0,"IN_NAMESPACE",2,0,
+39,CLASS,NONE,PARENT_NOT_SET,1,1,6,0,2,2,0,"IN_NAMESPACE,FORCE_SPACE,STMT_START,EXPR_START",0,0," class"
+39,TYPE,CLASS,PARENT_NOT_SET,7,7,12,1,2,2,0,"IN_NAMESPACE",0,0," Base1"
+39,BRACE_OPEN,CLASS,PARENT_NOT_SET,13,13,14,1,2,2,0,"IN_CLASS,IN_NAMESPACE,ONE_LINER,EMPTY_BODY,PUNCTUATOR",0,0," {"
+39,BRACE_CLOSE,CLASS,PARENT_NOT_SET,15,15,16,1,2,2,0,"IN_CLASS,IN_NAMESPACE,ONE_LINER,EMPTY_BODY,PUNCTUATOR",0,0," }"
+39,SEMICOLON,CLASS,PARENT_NOT_SET,16,16,17,0,2,2,0,"PUNCTUATOR",0,0," ;"
+39,NEWLINE,NONE,PARENT_NOT_SET,17,17,1,0,2,2,0,"",2,0,
+41,TEMPLATE,NONE,PARENT_NOT_SET,1,1,9,0,2,2,0,"STMT_START,EXPR_START",0,0," template"
+41,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,9,9,10,0,2,2,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+41,TYPENAME,NONE,PARENT_NOT_SET,10,10,18,0,2,3,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+41,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,18,18,19,0,2,2,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+41,CLASS,TEMPLATE,PARENT_NOT_SET,20,20,25,1,2,2,0,"FORCE_SPACE,EXPR_START",0,0," class"
+41,TYPE,CLASS,PARENT_NOT_SET,26,26,31,1,2,2,0,"",0,0," Base2"
+41,BRACE_OPEN,CLASS,PARENT_NOT_SET,32,32,33,1,2,2,0,"IN_CLASS,ONE_LINER,EMPTY_BODY,PUNCTUATOR",0,0," {"
+41,BRACE_CLOSE,CLASS,PARENT_NOT_SET,34,34,35,1,2,2,0,"IN_CLASS,ONE_LINER,EMPTY_BODY,PUNCTUATOR",0,0," }"
+41,SEMICOLON,CLASS,PARENT_NOT_SET,35,35,36,0,2,2,0,"PUNCTUATOR",0,0," ;"
+41,NEWLINE,NONE,PARENT_NOT_SET,36,36,1,0,2,2,0,"",2,0,
+43,BRACE_CLOSE,NAMESPACE,PARENT_NOT_SET,1,1,2,0,1,1,0,"PUNCTUATOR",0,0," }"
+43,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,1,1,0,"",2,0,
+45,BRACE_CLOSE,NAMESPACE,PARENT_NOT_SET,1,1,2,0,0,0,0,"PUNCTUATOR",0,0," }"
+45,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,0,0,0,"",2,0,
+47,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,82,0,0,0,0,"",0,0," // template<...> class/struct[<...>] [macros/attributes ...] type : bases ... { }"
+47,NEWLINE,NONE,PARENT_NOT_SET,82,82,1,0,0,0,0,"",1,0,
+48,TEMPLATE,NONE,PARENT_NOT_SET,1,1,9,0,0,0,0,"STMT_START,EXPR_START",0,0," template"
+48,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,9,9,10,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+48,TYPENAME,NONE,PARENT_NOT_SET,10,10,18,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+48,COMMA,NONE,PARENT_NOT_SET,18,18,19,0,0,1,0,"IN_TEMPLATE,PUNCTUATOR",0,0," ,"
+48,TYPENAME,NONE,PARENT_NOT_SET,20,20,28,1,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+48,ELLIPSIS,NONE,PARENT_NOT_SET,29,29,32,1,0,1,0,"IN_TEMPLATE,PUNCTUATOR",0,0," ..."
+48,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,32,32,33,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+48,NEWLINE,NONE,PARENT_NOT_SET,33,33,1,0,0,0,0,"",1,0,
+49,CLASS,TEMPLATE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,EXPR_START",0,0," class"
+49,WORD,NONE,PARENT_NOT_SET,7,7,17,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+49,ATTRIBUTE,NONE,PARENT_NOT_SET,18,18,31,1,0,0,0,"",0,0," __attribute__"
+49,FPAREN_OPEN,ATTRIBUTE,PARENT_NOT_SET,31,31,32,0,0,0,0,"PUNCTUATOR",0,0," ("
+49,PAREN_OPEN,NONE,PARENT_NOT_SET,32,32,33,0,0,1,0,"EXPR_START,PUNCTUATOR",0,0," ("
+49,WORD,NONE,PARENT_NOT_SET,33,33,47,0,0,2,0,"EXPR_START",0,0," __deprecated__"
+49,PAREN_CLOSE,NONE,PARENT_NOT_SET,47,47,48,0,0,1,0,"PUNCTUATOR",0,0," )"
+49,FPAREN_CLOSE,ATTRIBUTE,PARENT_NOT_SET,48,48,49,0,0,0,0,"PUNCTUATOR",0,0," )"
+49,MACRO_FUNC_CALL,NONE,PARENT_NOT_SET,50,50,57,1,0,0,0,"",0,0," ALIGNAS"
+49,FPAREN_OPEN,MACRO_FUNC_CALL,PARENT_NOT_SET,57,57,58,0,0,0,0,"PUNCTUATOR",0,0," ("
+49,NUMBER,NONE,PARENT_NOT_SET,58,58,59,0,0,1,0,"EXPR_START",0,0," 4"
+49,FPAREN_CLOSE,MACRO_FUNC_CALL,PARENT_NOT_SET,59,59,60,0,0,0,0,"PUNCTUATOR",0,0," )"
+49,TYPE,CLASS,PARENT_NOT_SET,61,61,63,1,0,0,0,"",0,0," c1"
+49,NEWLINE,NONE,PARENT_NOT_SET,63,63,1,0,0,0,0,"",1,0,
+50,CLASS_COLON,CLASS,PARENT_NOT_SET,9,1,2,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," :"
+50,QUALIFIER,NONE,PARENT_NOT_SET,11,3,9,1,0,0,0,"IN_CLASS_BASE,FORCE_SPACE,STMT_START,EXPR_START",0,0," public"
+50,TYPE,NONE,PARENT_NOT_SET,18,10,25,1,0,0,0,"IN_CLASS_BASE",0,0," outer_namespace"
+50,DC_MEMBER,NONE,PARENT_NOT_SET,33,25,27,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+50,TYPE,NONE,PARENT_NOT_SET,35,27,42,0,0,0,0,"IN_CLASS_BASE",0,0," inner_namespace"
+50,DC_MEMBER,NONE,PARENT_NOT_SET,50,42,44,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+50,TYPE,NONE,PARENT_NOT_SET,52,44,49,0,0,0,0,"IN_CLASS_BASE",0,0," Base1"
+50,COMMA,NONE,PARENT_NOT_SET,57,49,50,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ,"
+50,NEWLINE,NONE,PARENT_NOT_SET,58,50,3,0,0,0,0,"",1,0,
+51,QUALIFIER,NONE,PARENT_NOT_SET,9,3,9,0,0,0,0,"IN_CLASS_BASE,FORCE_SPACE,EXPR_START",0,0," public"
+51,TYPE,NONE,PARENT_NOT_SET,16,10,25,1,0,0,0,"IN_CLASS_BASE",0,0," outer_namespace"
+51,DC_MEMBER,NONE,PARENT_NOT_SET,31,25,27,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+51,TYPE,NONE,PARENT_NOT_SET,33,27,42,0,0,0,0,"IN_CLASS_BASE",0,0," inner_namespace"
+51,DC_MEMBER,NONE,PARENT_NOT_SET,48,42,44,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+51,TYPE,NONE,PARENT_NOT_SET,50,44,49,0,0,0,0,"IN_CLASS_BASE",0,0," Base2"
+51,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,55,49,50,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," <"
+51,TYPE,NONE,PARENT_NOT_SET,56,50,65,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE,EXPR_START",0,0," outer_namespace"
+51,DC_MEMBER,NONE,PARENT_NOT_SET,71,65,67,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+51,TYPE,NONE,PARENT_NOT_SET,73,67,82,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE",0,0," inner_namespace"
+51,DC_MEMBER,NONE,PARENT_NOT_SET,88,82,84,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+51,TYPE,NONE,PARENT_NOT_SET,90,84,89,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE",0,0," Base1"
+51,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,95,89,90,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," >"
+51,NEWLINE,NONE,PARENT_NOT_SET,96,90,1,0,0,0,0,"",1,0,
+52,BRACE_OPEN,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,EXPR_START,EMPTY_BODY,PUNCTUATOR",0,0," {"
+52,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,1,1,0,"IN_CLASS",2,0,
+54,BRACE_CLOSE,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,EMPTY_BODY,PUNCTUATOR",0,0," }"
+54,SEMICOLON,CLASS,PARENT_NOT_SET,2,2,3,0,0,0,0,"PUNCTUATOR",0,0," ;"
+54,NEWLINE,NONE,PARENT_NOT_SET,3,3,1,0,0,0,0,"",2,0,
+56,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,70,0,0,0,0,"",0,0," // template<...> class/struct[<...>] [macros/attributes ...] type { }"
+56,NEWLINE,NONE,PARENT_NOT_SET,70,70,1,0,0,0,0,"",1,0,
+57,TEMPLATE,NONE,PARENT_NOT_SET,1,1,9,0,0,0,0,"STMT_START,EXPR_START",0,0," template"
+57,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,9,9,10,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+57,TYPENAME,NONE,PARENT_NOT_SET,10,10,18,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+57,COMMA,NONE,PARENT_NOT_SET,18,18,19,0,0,1,0,"IN_TEMPLATE,PUNCTUATOR",0,0," ,"
+57,TYPENAME,NONE,PARENT_NOT_SET,20,20,28,1,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+57,ELLIPSIS,NONE,PARENT_NOT_SET,29,29,32,1,0,1,0,"IN_TEMPLATE,PUNCTUATOR",0,0," ..."
+57,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,32,32,33,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+57,NEWLINE,NONE,PARENT_NOT_SET,33,33,1,0,0,0,0,"",1,0,
+58,CLASS,TEMPLATE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,EXPR_START",0,0," class"
+58,WORD,NONE,PARENT_NOT_SET,7,7,17,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+58,TYPE,CLASS,PARENT_NOT_SET,18,18,20,1,0,0,0,"",0,0," c2"
+58,NEWLINE,NONE,PARENT_NOT_SET,20,20,1,0,0,0,0,"",1,0,
+59,BRACE_OPEN,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,PUNCTUATOR",0,0," {"
+59,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,1,1,0,"IN_CLASS",1,0,
+60,ACCESS,NONE,PARENT_NOT_SET,1,1,7,0,1,1,0,"IN_CLASS,STMT_START,EXPR_START",0,0," public"
+60,ACCESS_COLON,NONE,PARENT_NOT_SET,7,7,8,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," :"
+60,NEWLINE,NONE,PARENT_NOT_SET,8,8,4,0,1,1,0,"IN_CLASS",2,0,
+62,TEMPLATE,NONE,PARENT_NOT_SET,1,4,12,0,1,1,0,"IN_CLASS,STMT_START,EXPR_START",0,0," template"
+62,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,9,12,13,0,1,1,0,"IN_TEMPLATE,IN_CLASS,PUNCTUATOR",0,0," <"
+62,TYPENAME,NONE,PARENT_NOT_SET,10,13,21,0,1,2,0,"IN_TEMPLATE,IN_CLASS,FORCE_SPACE,EXPR_START",0,0," typename"
+62,TYPE,NONE,PARENT_NOT_SET,19,22,23,1,1,2,0,"IN_TEMPLATE,IN_CLASS",0,0," T"
+62,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,20,23,24,0,1,1,0,"IN_TEMPLATE,IN_CLASS,PUNCTUATOR",0,0," >"
+62,NEWLINE,NONE,PARENT_NOT_SET,21,24,4,0,1,1,0,"IN_CLASS",1,0,
+63,STRUCT,TEMPLATE,PARENT_NOT_SET,1,4,10,0,1,1,0,"IN_CLASS,FORCE_SPACE,EXPR_START",0,0," struct"
+63,TYPE,STRUCT,PARENT_NOT_SET,8,11,22,1,1,1,0,"IN_CLASS",0,0," inner_class"
+63,NEWLINE,NONE,PARENT_NOT_SET,19,22,4,0,1,1,0,"IN_CLASS",1,0,
+64,BRACE_OPEN,STRUCT,PARENT_NOT_SET,1,4,5,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," {"
+64,NEWLINE,NONE,PARENT_NOT_SET,2,5,7,0,2,2,0,"IN_STRUCT,IN_CLASS",1,0,
+65,QUALIFIER,NONE,PARENT_NOT_SET,9,7,13,0,2,2,0,"IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," static"
+65,TYPE,NONE,PARENT_NOT_SET,16,14,25,1,2,2,0,"IN_STRUCT,IN_CLASS,VAR_TYPE",0,0," inner_class"
+65,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,27,25,26,0,2,2,0,"IN_STRUCT,IN_TEMPLATE,IN_CLASS,PUNCTUATOR",0,0," <"
+65,TYPE,NONE,PARENT_NOT_SET,28,26,27,0,2,3,0,"IN_STRUCT,IN_TEMPLATE,IN_CLASS,EXPR_START",0,0," T"
+65,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,29,27,28,0,2,2,0,"IN_STRUCT,IN_TEMPLATE,IN_CLASS,PUNCTUATOR",0,0," >"
+65,PTR_TYPE,NONE,PARENT_NOT_SET,31,29,30,1,2,2,0,"IN_STRUCT,IN_CLASS,EXPR_START,VAR_TYPE,PUNCTUATOR",0,0," *"
+65,WORD,NONE,PARENT_NOT_SET,32,30,43,0,2,2,0,"IN_STRUCT,IN_CLASS,EXPR_START,VAR_DEF,VAR_1ST",0,0," m_inner_class"
+65,SEMICOLON,NONE,PARENT_NOT_SET,45,43,44,0,2,2,0,"IN_STRUCT,IN_CLASS,PUNCTUATOR",0,0," ;"
+65,NEWLINE,NONE,PARENT_NOT_SET,46,44,4,0,2,2,0,"IN_STRUCT,IN_CLASS",1,0,
+66,BRACE_CLOSE,STRUCT,PARENT_NOT_SET,1,4,5,0,1,1,0,"IN_STRUCT,IN_CLASS,PUNCTUATOR",0,0," }"
+66,SEMICOLON,STRUCT,PARENT_NOT_SET,2,5,6,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+66,NEWLINE,NONE,PARENT_NOT_SET,3,6,1,0,1,1,0,"IN_CLASS",1,0,
+67,BRACE_CLOSE,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,PUNCTUATOR",0,0," }"
+67,SEMICOLON,CLASS,PARENT_NOT_SET,2,2,3,0,0,0,0,"PUNCTUATOR",0,0," ;"
+67,NEWLINE,NONE,PARENT_NOT_SET,3,3,1,0,0,0,0,"",2,0,
+69,TEMPLATE,NONE,PARENT_NOT_SET,1,1,9,0,0,0,0,"STMT_START,EXPR_START",0,0," template"
+69,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,9,9,10,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+69,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,10,10,11,0,0,0,0,"IN_TEMPLATE,EXPR_START,PUNCTUATOR",0,0," >"
+69,TEMPLATE,NONE,PARENT_NOT_SET,12,12,20,1,0,0,0,"EXPR_START",0,0," template"
+69,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,20,20,21,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+69,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,21,21,22,0,0,0,0,"IN_TEMPLATE,EXPR_START,PUNCTUATOR",0,0," >"
+69,STRUCT,TEMPLATE,PARENT_NOT_SET,23,23,29,1,0,0,0,"FORCE_SPACE,EXPR_START",0,0," struct"
+69,WORD,NONE,PARENT_NOT_SET,30,30,40,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+69,TYPE,NONE,PARENT_NOT_SET,41,41,43,1,0,0,0,"",0,0," c2"
+69,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,43,43,44,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+69,TYPE,NONE,PARENT_NOT_SET,44,44,47,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," int"
+69,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,47,47,48,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+69,DC_MEMBER,NONE,PARENT_NOT_SET,48,48,50,0,0,0,0,"EXPR_START,PUNCTUATOR",0,0," ::"
+69,TYPE,STRUCT,PARENT_NOT_SET,50,50,61,0,0,0,0,"VAR_TYPE",0,0," inner_class"
+69,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,61,61,62,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+69,TYPE,NONE,PARENT_NOT_SET,62,62,65,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," int"
+69,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,65,65,66,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+69,PTR_TYPE,NONE,PARENT_NOT_SET,67,67,68,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+69,TYPE,NONE,PARENT_NOT_SET,68,68,70,0,0,0,0,"EXPR_START",0,0," c2"
+69,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,70,70,71,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+69,TYPE,NONE,PARENT_NOT_SET,71,71,74,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," int"
+69,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,74,74,75,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+69,DC_MEMBER,NONE,PARENT_NOT_SET,75,75,77,0,0,0,0,"EXPR_START,PUNCTUATOR",0,0," ::"
+69,TYPE,NONE,PARENT_NOT_SET,77,77,88,0,0,0,0,"",0,0," inner_class"
+69,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,88,88,89,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+69,TYPE,NONE,PARENT_NOT_SET,89,89,92,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," int"
+69,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,92,92,93,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+69,DC_MEMBER,NONE,PARENT_NOT_SET,93,93,95,0,0,0,0,"EXPR_START,PUNCTUATOR",0,0," ::"
+69,WORD,NONE,PARENT_NOT_SET,95,95,108,0,0,0,0,"VAR_DEF,VAR_1ST,LVALUE",0,0," m_inner_class"
+69,ASSIGN,NONE,PARENT_NOT_SET,109,109,110,1,0,0,0,"PUNCTUATOR",0,0," ="
+69,WORD,NONE,PARENT_NOT_SET,111,111,118,1,0,0,0,"EXPR_START",0,0," nullptr"
+69,SEMICOLON,STRUCT,PARENT_NOT_SET,118,118,119,0,0,0,0,"PUNCTUATOR",0,0," ;"
+69,NEWLINE,NONE,PARENT_NOT_SET,119,119,1,0,0,0,0,"",2,0,
+71,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,66,0,0,0,0,"",0,0," // template<...> class/struct[<...>] [macros/attributes ...] type"
+71,NEWLINE,NONE,PARENT_NOT_SET,66,66,1,0,0,0,0,"",1,0,
+72,TEMPLATE,NONE,PARENT_NOT_SET,1,1,9,0,0,0,0,"STMT_START,EXPR_START",0,0," template"
+72,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,9,9,10,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," <"
+72,TYPENAME,NONE,PARENT_NOT_SET,10,10,18,0,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+72,COMMA,NONE,PARENT_NOT_SET,18,18,19,0,0,1,0,"IN_TEMPLATE,PUNCTUATOR",0,0," ,"
+72,TYPENAME,NONE,PARENT_NOT_SET,20,20,28,1,0,1,0,"IN_TEMPLATE,EXPR_START",0,0," typename"
+72,ELLIPSIS,NONE,PARENT_NOT_SET,29,29,32,1,0,1,0,"IN_TEMPLATE,PUNCTUATOR",0,0," ..."
+72,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,32,32,33,0,0,0,0,"IN_TEMPLATE,PUNCTUATOR",0,0," >"
+72,NEWLINE,NONE,PARENT_NOT_SET,33,33,1,0,0,0,0,"",1,0,
+73,CLASS,TEMPLATE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,EXPR_START,INCOMPLETE",0,0," class"
+73,WORD,NONE,PARENT_NOT_SET,7,7,17,1,0,0,0,"FORCE_SPACE,INCOMPLETE",0,0," API_EXPORT"
+73,TYPE,CLASS,PARENT_NOT_SET,18,18,20,1,0,0,0,"INCOMPLETE",0,0," c2"
+73,SEMICOLON,CLASS,PARENT_NOT_SET,20,20,21,0,0,0,0,"PUNCTUATOR",0,0," ;"
+73,NEWLINE,NONE,PARENT_NOT_SET,21,21,1,0,0,0,0,"",2,0,
+75,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,68,0,0,0,0,"",0,0," // class/struct [macros/attributes ...] type : bases ... { } x, ..."
+75,NEWLINE,NONE,PARENT_NOT_SET,68,68,1,0,0,0,0,"",1,0,
+76,CLASS,NONE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," class"
+76,WORD,NONE,PARENT_NOT_SET,7,7,17,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+76,ATTRIBUTE,NONE,PARENT_NOT_SET,18,18,31,1,0,0,0,"",0,0," __attribute__"
+76,FPAREN_OPEN,ATTRIBUTE,PARENT_NOT_SET,31,31,32,0,0,0,0,"PUNCTUATOR",0,0," ("
+76,PAREN_OPEN,NONE,PARENT_NOT_SET,32,32,33,0,0,1,0,"EXPR_START,PUNCTUATOR",0,0," ("
+76,WORD,NONE,PARENT_NOT_SET,33,33,47,0,0,2,0,"EXPR_START",0,0," __deprecated__"
+76,PAREN_CLOSE,NONE,PARENT_NOT_SET,47,47,48,0,0,1,0,"PUNCTUATOR",0,0," )"
+76,FPAREN_CLOSE,ATTRIBUTE,PARENT_NOT_SET,48,48,49,0,0,0,0,"PUNCTUATOR",0,0," )"
+76,MACRO_FUNC_CALL,NONE,PARENT_NOT_SET,50,50,57,1,0,0,0,"",0,0," ALIGNAS"
+76,FPAREN_OPEN,MACRO_FUNC_CALL,PARENT_NOT_SET,57,57,58,0,0,0,0,"PUNCTUATOR",0,0," ("
+76,NUMBER,NONE,PARENT_NOT_SET,58,58,59,0,0,1,0,"EXPR_START",0,0," 4"
+76,FPAREN_CLOSE,MACRO_FUNC_CALL,PARENT_NOT_SET,59,59,60,0,0,0,0,"PUNCTUATOR",0,0," )"
+76,TYPE,CLASS,PARENT_NOT_SET,61,61,63,1,0,0,0,"VAR_TYPE",0,0," c3"
+76,NEWLINE,NONE,PARENT_NOT_SET,63,63,1,0,0,0,0,"",1,0,
+77,CLASS_COLON,CLASS,PARENT_NOT_SET,9,1,2,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," :"
+77,QUALIFIER,NONE,PARENT_NOT_SET,11,3,9,1,0,0,0,"IN_CLASS_BASE,FORCE_SPACE,STMT_START,EXPR_START",0,0," public"
+77,TYPE,NONE,PARENT_NOT_SET,18,10,25,1,0,0,0,"IN_CLASS_BASE",0,0," outer_namespace"
+77,DC_MEMBER,NONE,PARENT_NOT_SET,33,25,27,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+77,TYPE,NONE,PARENT_NOT_SET,35,27,42,0,0,0,0,"IN_CLASS_BASE",0,0," inner_namespace"
+77,DC_MEMBER,NONE,PARENT_NOT_SET,50,42,44,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+77,TYPE,NONE,PARENT_NOT_SET,52,44,49,0,0,0,0,"IN_CLASS_BASE",0,0," Base2"
+77,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,57,49,50,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," <"
+77,TYPE,NONE,PARENT_NOT_SET,58,50,53,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE,EXPR_START",0,0," int"
+77,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,61,53,54,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," >"
+77,COMMA,NONE,PARENT_NOT_SET,62,54,55,0,0,0,0,"IN_CLASS_BASE,EXPR_START,PUNCTUATOR",0,0," ,"
+77,NEWLINE,NONE,PARENT_NOT_SET,63,55,3,0,0,0,0,"",1,0,
+78,QUALIFIER,NONE,PARENT_NOT_SET,9,3,9,0,0,0,0,"IN_CLASS_BASE,FORCE_SPACE,EXPR_START",0,0," public"
+78,TYPE,NONE,PARENT_NOT_SET,16,10,12,1,0,0,0,"IN_CLASS_BASE",0,0," c2"
+78,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,18,12,13,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," <"
+78,TYPE,NONE,PARENT_NOT_SET,19,13,16,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE,EXPR_START",0,0," int"
+78,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,22,16,17,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," >"
+78,DC_MEMBER,NONE,PARENT_NOT_SET,23,17,19,0,0,0,0,"IN_CLASS_BASE,EXPR_START,PUNCTUATOR",0,0," ::"
+78,TYPE,NONE,PARENT_NOT_SET,25,19,30,0,0,0,0,"IN_CLASS_BASE",0,0," inner_class"
+78,ANGLE_OPEN,TEMPLATE,PARENT_NOT_SET,36,30,31,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," <"
+78,TYPE,NONE,PARENT_NOT_SET,37,31,34,0,0,1,0,"IN_TEMPLATE,IN_CLASS_BASE,EXPR_START",0,0," int"
+78,ANGLE_CLOSE,TEMPLATE,PARENT_NOT_SET,40,34,35,0,0,0,0,"IN_TEMPLATE,IN_CLASS_BASE,PUNCTUATOR",0,0," >"
+78,NEWLINE,NONE,PARENT_NOT_SET,41,35,1,0,0,0,0,"",1,0,
+79,BRACE_OPEN,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,EXPR_START,PUNCTUATOR",0,0," {"
+79,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,1,1,0,"IN_CLASS",1,0,
+80,ACCESS,NONE,PARENT_NOT_SET,1,1,7,0,1,1,0,"IN_CLASS,STMT_START,EXPR_START",0,0," public"
+80,ACCESS_COLON,NONE,PARENT_NOT_SET,7,7,8,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," :"
+80,NEWLINE,NONE,PARENT_NOT_SET,8,8,4,0,1,1,0,"IN_CLASS",1,0,
+81,FUNC_CLASS_DEF,NONE,PARENT_NOT_SET,1,4,6,0,1,1,0,"IN_CLASS,STMT_START,EXPR_START",0,0," c3"
+81,FPAREN_OPEN,FUNC_CLASS_DEF,PARENT_NOT_SET,3,6,7,0,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ("
+81,TYPE,NONE,PARENT_NOT_SET,4,7,10,0,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START,VAR_TYPE,LVALUE",0,0," int"
+81,WORD,NONE,PARENT_NOT_SET,8,11,12,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF,LVALUE",0,0," x"
+81,ASSIGN_DEFAULT_ARG,FUNC_PROTO,PARENT_NOT_SET,10,13,14,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ="
+81,NUMBER,NONE,PARENT_NOT_SET,12,15,16,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," 0"
+81,COMMA,NONE,PARENT_NOT_SET,13,16,17,0,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ,"
+81,TYPE,NONE,PARENT_NOT_SET,15,18,21,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START,VAR_TYPE,LVALUE",0,0," int"
+81,WORD,NONE,PARENT_NOT_SET,19,22,23,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF,LVALUE",0,0," y"
+81,ASSIGN_DEFAULT_ARG,FUNC_PROTO,PARENT_NOT_SET,21,24,25,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ="
+81,NUMBER,NONE,PARENT_NOT_SET,23,26,27,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," 0"
+81,COMMA,NONE,PARENT_NOT_SET,24,27,28,0,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ,"
+81,TYPE,NONE,PARENT_NOT_SET,26,29,32,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START,VAR_TYPE,LVALUE",0,0," int"
+81,WORD,NONE,PARENT_NOT_SET,30,33,34,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF,LVALUE",0,0," z"
+81,ASSIGN_DEFAULT_ARG,FUNC_PROTO,PARENT_NOT_SET,32,35,36,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ="
+81,NUMBER,NONE,PARENT_NOT_SET,34,37,38,1,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," 0"
+81,FPAREN_CLOSE,FUNC_CLASS_DEF,PARENT_NOT_SET,35,38,39,0,1,1,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," )"
+81,CONSTR_COLON,NONE,PARENT_NOT_SET,37,40,41,1,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," :"
+81,FUNC_CTOR_VAR,NONE,PARENT_NOT_SET,39,42,45,1,1,1,0,"IN_CONST_ARGS,IN_CLASS,STMT_START,EXPR_START",0,0," m_x"
+81,FPAREN_OPEN,FUNC_CTOR_VAR,PARENT_NOT_SET,42,45,46,0,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ("
+81,WORD,NONE,PARENT_NOT_SET,43,46,47,0,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," x"
+81,FPAREN_CLOSE,FUNC_CTOR_VAR,PARENT_NOT_SET,44,47,48,0,1,1,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," )"
+81,COMMA,NONE,PARENT_NOT_SET,45,48,49,0,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ,"
+81,FUNC_CTOR_VAR,NONE,PARENT_NOT_SET,47,50,53,1,1,1,0,"IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," m_y"
+81,FPAREN_OPEN,FUNC_CTOR_VAR,PARENT_NOT_SET,50,53,54,0,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ("
+81,WORD,NONE,PARENT_NOT_SET,51,54,55,0,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," y"
+81,FPAREN_CLOSE,FUNC_CTOR_VAR,PARENT_NOT_SET,52,55,56,0,1,1,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," )"
+81,COMMA,NONE,PARENT_NOT_SET,53,56,57,0,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ,"
+81,FUNC_CTOR_VAR,NONE,PARENT_NOT_SET,55,58,61,1,1,1,0,"IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," m_z"
+81,FPAREN_OPEN,FUNC_CTOR_VAR,PARENT_NOT_SET,58,61,62,0,1,1,0,"IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," ("
+81,WORD,NONE,PARENT_NOT_SET,59,62,63,0,1,2,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START",0,0," z"
+81,FPAREN_CLOSE,FUNC_CTOR_VAR,PARENT_NOT_SET,60,63,64,0,1,1,0,"IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR",0,0," )"
+81,BRACE_OPEN,FUNC_CLASS_DEF,PARENT_NOT_SET,62,65,66,1,1,1,0,"IN_CLASS,EMPTY_BODY,PUNCTUATOR",0,0," {"
+81,NEWLINE,NONE,PARENT_NOT_SET,63,67,0,0,1,1,0,"IN_CLASS",1,0,
+81,BRACE_CLOSE,FUNC_CLASS_DEF,PARENT_NOT_SET,1,67,68,1,1,1,0,"IN_CLASS,EMPTY_BODY,PUNCTUATOR",0,0," }"
+81,NEWLINE,NONE,PARENT_NOT_SET,2,68,4,0,1,1,0,"IN_CLASS",2,0,
+83,TYPE,NONE,PARENT_NOT_SET,1,4,7,0,1,1,0,"IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," int"
+83,WORD,NONE,PARENT_NOT_SET,5,8,11,1,1,1,0,"IN_CLASS,VAR_DEF,VAR_1ST",0,0," m_x"
+83,SEMICOLON,NONE,PARENT_NOT_SET,8,11,12,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+83,NEWLINE,NONE,PARENT_NOT_SET,9,12,4,0,1,1,0,"IN_CLASS",1,0,
+84,TYPE,NONE,PARENT_NOT_SET,1,4,7,0,1,1,0,"IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," int"
+84,WORD,NONE,PARENT_NOT_SET,5,8,11,1,1,1,0,"IN_CLASS,VAR_DEF,VAR_1ST",0,0," m_y"
+84,SEMICOLON,NONE,PARENT_NOT_SET,8,11,12,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+84,NEWLINE,NONE,PARENT_NOT_SET,9,12,4,0,1,1,0,"IN_CLASS",1,0,
+85,TYPE,NONE,PARENT_NOT_SET,1,4,7,0,1,1,0,"IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," int"
+85,WORD,NONE,PARENT_NOT_SET,5,8,11,1,1,1,0,"IN_CLASS,VAR_DEF,VAR_1ST",0,0," m_z"
+85,SEMICOLON,NONE,PARENT_NOT_SET,8,11,12,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+85,NEWLINE,NONE,PARENT_NOT_SET,9,12,1,0,1,1,0,"IN_CLASS",1,0,
+86,BRACE_CLOSE,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,PUNCTUATOR",0,0," }"
+86,WORD,NONE,PARENT_NOT_SET,3,3,6,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," c31"
+86,COMMA,NONE,PARENT_NOT_SET,6,6,7,0,0,0,0,"PUNCTUATOR",0,0," ,"
+86,PTR_TYPE,CLASS,PARENT_NOT_SET,8,8,9,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+86,WORD,NONE,PARENT_NOT_SET,9,9,12,0,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE,LVALUE",0,0," c32"
+86,ASSIGN,NONE,PARENT_NOT_SET,13,13,14,1,0,0,0,"PUNCTUATOR",0,0," ="
+86,WORD,NONE,PARENT_NOT_SET,15,15,22,1,0,0,0,"EXPR_START",0,0," nullptr"
+86,COMMA,NONE,PARENT_NOT_SET,22,22,23,0,0,0,0,"PUNCTUATOR",0,0," ,"
+86,PTR_TYPE,CLASS,PARENT_NOT_SET,24,24,25,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+86,WORD,NONE,PARENT_NOT_SET,25,25,28,0,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," c33"
+86,TSQUARE,NONE,PARENT_NOT_SET,28,28,30,0,0,0,0,"PUNCTUATOR",0,0," []"
+86,ASSIGN,NONE,PARENT_NOT_SET,31,31,32,1,0,0,0,"PUNCTUATOR",0,0," ="
+86,BRACE_OPEN,BRACED_INIT_LIST,PARENT_NOT_SET,33,33,34,1,0,0,0,"EXPR_START,ONE_LINER,PUNCTUATOR",0,0," {"
+86,WORD,NONE,PARENT_NOT_SET,35,35,42,1,1,1,0,"EXPR_START,ONE_LINER",0,0," nullptr"
+86,COMMA,NONE,PARENT_NOT_SET,42,42,43,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+86,WORD,NONE,PARENT_NOT_SET,44,44,51,1,1,1,0,"EXPR_START,ONE_LINER",0,0," nullptr"
+86,BRACE_CLOSE,BRACED_INIT_LIST,PARENT_NOT_SET,52,52,53,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+86,COMMA,NONE,PARENT_NOT_SET,53,53,54,0,0,0,0,"PUNCTUATOR",0,0," ,"
+86,WORD,NONE,PARENT_NOT_SET,55,55,58,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE,LVALUE",0,0," c34"
+86,BRACE_OPEN,BRACED_INIT_LIST,PARENT_NOT_SET,58,58,59,0,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+86,NUMBER,NONE,PARENT_NOT_SET,60,60,61,1,1,1,0,"STMT_START,EXPR_START,ONE_LINER",0,0," 0"
+86,COMMA,NONE,PARENT_NOT_SET,61,61,62,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+86,NUMBER,NONE,PARENT_NOT_SET,63,63,64,1,1,1,0,"EXPR_START,ONE_LINER",0,0," 1"
+86,COMMA,NONE,PARENT_NOT_SET,64,64,65,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+86,NUMBER,NONE,PARENT_NOT_SET,66,66,67,1,1,1,0,"EXPR_START,ONE_LINER",0,0," 2"
+86,BRACE_CLOSE,BRACED_INIT_LIST,PARENT_NOT_SET,67,67,68,0,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+86,COMMA,NONE,PARENT_NOT_SET,68,68,69,0,0,0,0,"PUNCTUATOR",0,0," ,"
+86,PTR_TYPE,CLASS,PARENT_NOT_SET,70,70,71,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+86,QUALIFIER,NONE,PARENT_NOT_SET,72,72,77,1,0,0,0,"FORCE_SPACE,EXPR_START",0,0," const"
+86,FUNC_CALL,NONE,PARENT_NOT_SET,78,78,81,1,0,0,0,"VAR_DEF,VAR_INLINE",0,0," c35"
+86,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,81,81,82,0,0,0,0,"PUNCTUATOR",0,0," ("
+86,WORD,NONE,PARENT_NOT_SET,82,82,89,0,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," nullptr"
+86,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,89,89,90,0,0,0,0,"IN_FCN_CALL,PUNCTUATOR",0,0," )"
+86,COMMA,NONE,PARENT_NOT_SET,90,90,91,0,0,0,0,"PUNCTUATOR",0,0," ,"
+86,FUNC_CALL,NONE,PARENT_NOT_SET,92,92,95,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," c16"
+86,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,95,95,96,0,0,0,0,"PUNCTUATOR",0,0," ("
+86,NUMBER,NONE,PARENT_NOT_SET,96,96,97,0,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 0"
+86,COMMA,NONE,PARENT_NOT_SET,97,97,98,0,0,1,0,"IN_FCN_CALL,PUNCTUATOR",0,0," ,"
+86,NUMBER,NONE,PARENT_NOT_SET,99,99,100,1,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 1"
+86,COMMA,NONE,PARENT_NOT_SET,100,100,101,0,0,1,0,"IN_FCN_CALL,PUNCTUATOR",0,0," ,"
+86,NUMBER,NONE,PARENT_NOT_SET,102,102,103,1,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 2"
+86,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,103,103,104,0,0,0,0,"IN_FCN_CALL,PUNCTUATOR",0,0," )"
+86,SEMICOLON,CLASS,PARENT_NOT_SET,104,104,105,0,0,0,0,"PUNCTUATOR",0,0," ;"
+86,NEWLINE,NONE,PARENT_NOT_SET,105,105,1,0,0,0,0,"",2,0,
+88,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,52,0,0,0,0,"",0,0," // class/struct [macros/attributes ...] type x, ..."
+88,NEWLINE,NONE,PARENT_NOT_SET,52,52,1,0,0,0,0,"",1,0,
+89,CLASS,NONE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," class"
+89,ATTRIBUTE,NONE,PARENT_NOT_SET,7,7,20,1,0,0,0,"",0,0," __attribute__"
+89,FPAREN_OPEN,ATTRIBUTE,PARENT_NOT_SET,20,20,21,0,0,0,0,"PUNCTUATOR",0,0," ("
+89,PAREN_OPEN,NONE,PARENT_NOT_SET,21,21,22,0,0,1,0,"EXPR_START,PUNCTUATOR",0,0," ("
+89,WORD,NONE,PARENT_NOT_SET,22,22,36,0,0,2,0,"EXPR_START",0,0," __deprecated__"
+89,PAREN_CLOSE,NONE,PARENT_NOT_SET,36,36,37,0,0,1,0,"PUNCTUATOR",0,0," )"
+89,FPAREN_CLOSE,ATTRIBUTE,PARENT_NOT_SET,37,37,38,0,0,0,0,"PUNCTUATOR",0,0," )"
+89,WORD,NONE,PARENT_NOT_SET,39,39,49,1,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," API_EXPORT"
+89,MACRO_FUNC_CALL,NONE,PARENT_NOT_SET,50,50,57,1,0,0,0,"",0,0," ALIGNAS"
+89,FPAREN_OPEN,MACRO_FUNC_CALL,PARENT_NOT_SET,57,57,58,0,0,0,0,"PUNCTUATOR",0,0," ("
+89,NUMBER,NONE,PARENT_NOT_SET,58,58,59,0,0,1,0,"EXPR_START",0,0," 4"
+89,FPAREN_CLOSE,MACRO_FUNC_CALL,PARENT_NOT_SET,59,59,60,0,0,0,0,"PUNCTUATOR",0,0," )"
+89,TYPE,CLASS,PARENT_NOT_SET,61,61,63,1,0,0,0,"FORCE_SPACE,VAR_TYPE",0,0," c3"
+89,WORD,NONE,PARENT_NOT_SET,64,64,67,1,0,0,0,"VAR_DEF,VAR_1ST",0,0," c41"
+89,COMMA,NONE,PARENT_NOT_SET,67,67,68,0,0,0,0,"PUNCTUATOR",0,0," ,"
+89,PTR_TYPE,CLASS,PARENT_NOT_SET,69,69,70,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+89,WORD,NONE,PARENT_NOT_SET,70,70,73,0,0,0,0,"EXPR_START,VAR_DEF,LVALUE",0,0," c42"
+89,ASSIGN,NONE,PARENT_NOT_SET,74,74,75,1,0,0,0,"PUNCTUATOR",0,0," ="
+89,WORD,NONE,PARENT_NOT_SET,76,76,79,1,0,0,0,"EXPR_START",0,0," c32"
+89,QUESTION,NONE,COMMA,80,80,81,1,0,0,0,"PUNCTUATOR,IN_CONDITIONAL",0,0," ?"
+89,WORD,NONE,PARENT_NOT_SET,82,82,85,1,0,0,0,"EXPR_START,IN_CONDITIONAL",0,0," c32"
+89,COND_COLON,NONE,QUESTION,86,86,87,1,0,0,0,"PUNCTUATOR,IN_CONDITIONAL",0,0," :"
+89,WORD,NONE,PARENT_NOT_SET,88,88,95,1,0,0,0,"STMT_START,EXPR_START,IN_CONDITIONAL",0,0," nullptr"
+89,COMMA,NONE,PARENT_NOT_SET,95,95,96,0,0,0,0,"PUNCTUATOR,IN_CONDITIONAL",0,0," ,"
+89,PTR_TYPE,CLASS,PARENT_NOT_SET,97,97,98,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+89,WORD,NONE,PARENT_NOT_SET,98,98,101,0,0,0,0,"EXPR_START,VAR_DEF",0,0," c43"
+89,TSQUARE,NONE,PARENT_NOT_SET,101,101,103,0,0,0,0,"PUNCTUATOR",0,0," []"
+89,ASSIGN,NONE,PARENT_NOT_SET,104,104,105,1,0,0,0,"PUNCTUATOR",0,0," ="
+89,BRACE_OPEN,BRACED_INIT_LIST,PARENT_NOT_SET,106,106,107,1,0,0,0,"EXPR_START,ONE_LINER,PUNCTUATOR",0,0," {"
+89,WORD,NONE,PARENT_NOT_SET,108,108,115,1,1,1,0,"EXPR_START,ONE_LINER",0,0," nullptr"
+89,COMMA,NONE,PARENT_NOT_SET,115,115,116,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+89,WORD,NONE,PARENT_NOT_SET,117,117,124,1,1,1,0,"EXPR_START,ONE_LINER",0,0," nullptr"
+89,BRACE_CLOSE,BRACED_INIT_LIST,PARENT_NOT_SET,125,125,126,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+89,COMMA,NONE,PARENT_NOT_SET,126,126,127,0,0,0,0,"PUNCTUATOR",0,0," ,"
+89,WORD,NONE,PARENT_NOT_SET,128,128,131,1,0,0,0,"EXPR_START,VAR_DEF,LVALUE",0,0," c44"
+89,BRACE_OPEN,BRACED_INIT_LIST,PARENT_NOT_SET,131,131,132,0,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+89,NUMBER,NONE,PARENT_NOT_SET,133,133,134,1,1,1,0,"STMT_START,EXPR_START,ONE_LINER",0,0," 0"
+89,COMMA,NONE,PARENT_NOT_SET,134,134,135,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+89,NUMBER,NONE,PARENT_NOT_SET,136,136,137,1,1,1,0,"EXPR_START,ONE_LINER",0,0," 1"
+89,COMMA,NONE,PARENT_NOT_SET,137,137,138,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+89,NUMBER,NONE,PARENT_NOT_SET,139,139,140,1,1,1,0,"EXPR_START,ONE_LINER",0,0," 2"
+89,BRACE_CLOSE,BRACED_INIT_LIST,PARENT_NOT_SET,140,140,141,0,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+89,COMMA,NONE,PARENT_NOT_SET,141,141,142,0,0,0,0,"PUNCTUATOR",0,0," ,"
+89,PTR_TYPE,CLASS,PARENT_NOT_SET,143,143,144,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+89,QUALIFIER,NONE,PARENT_NOT_SET,145,145,150,1,0,0,0,"FORCE_SPACE,EXPR_START",0,0," const"
+89,FUNC_CALL,NONE,PARENT_NOT_SET,151,151,154,1,0,0,0,"VAR_DEF",0,0," c45"
+89,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,154,154,155,0,0,0,0,"PUNCTUATOR",0,0," ("
+89,WORD,NONE,PARENT_NOT_SET,155,155,162,0,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," nullptr"
+89,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,162,162,163,0,0,0,0,"IN_FCN_CALL,PUNCTUATOR",0,0," )"
+89,COMMA,NONE,PARENT_NOT_SET,163,163,164,0,0,0,0,"PUNCTUATOR",0,0," ,"
+89,FUNC_CALL,NONE,PARENT_NOT_SET,165,165,168,1,0,0,0,"EXPR_START,VAR_DEF",0,0," c46"
+89,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,168,168,169,0,0,0,0,"PUNCTUATOR",0,0," ("
+89,NUMBER,NONE,PARENT_NOT_SET,169,169,170,0,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 0"
+89,COMMA,NONE,PARENT_NOT_SET,170,170,171,0,0,1,0,"IN_FCN_CALL,PUNCTUATOR",0,0," ,"
+89,NUMBER,NONE,PARENT_NOT_SET,172,172,173,1,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 1"
+89,COMMA,NONE,PARENT_NOT_SET,173,173,174,0,0,1,0,"IN_FCN_CALL,PUNCTUATOR",0,0," ,"
+89,NUMBER,NONE,PARENT_NOT_SET,175,175,176,1,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 2"
+89,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,176,176,177,0,0,0,0,"IN_FCN_CALL,PUNCTUATOR",0,0," )"
+89,SEMICOLON,CLASS,PARENT_NOT_SET,177,177,178,0,0,0,0,"PUNCTUATOR",0,0," ;"
+89,NEWLINE,NONE,PARENT_NOT_SET,178,178,1,0,0,0,0,"",2,0,
+91,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,68,0,0,0,0,"",0,0," // class/struct [macros/attributes ...] type : bases ... { } x, ..."
+91,NEWLINE,NONE,PARENT_NOT_SET,68,68,1,0,0,0,0,"",1,0,
+92,CLASS,NONE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," class"
+92,FUNC_CALL,NONE,PARENT_NOT_SET,7,7,14,1,0,0,0,"",0,0," ALIGNAS"
+92,FPAREN_OPEN,FUNC_CALL,PARENT_NOT_SET,14,14,15,0,0,0,0,"PUNCTUATOR",0,0," ("
+92,NUMBER,NONE,PARENT_NOT_SET,15,15,16,0,0,1,0,"IN_FCN_CALL,EXPR_START",0,0," 4"
+92,FPAREN_CLOSE,FUNC_CALL,PARENT_NOT_SET,16,16,17,0,0,0,0,"IN_FCN_CALL,PUNCTUATOR",0,0," )"
+92,WORD,NONE,PARENT_NOT_SET,18,18,28,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+92,ATTRIBUTE,NONE,PARENT_NOT_SET,29,29,42,1,0,0,0,"",0,0," __attribute__"
+92,FPAREN_OPEN,ATTRIBUTE,PARENT_NOT_SET,42,42,43,0,0,0,0,"PUNCTUATOR",0,0," ("
+92,PAREN_OPEN,NONE,PARENT_NOT_SET,43,43,44,0,0,1,0,"EXPR_START,PUNCTUATOR",0,0," ("
+92,WORD,NONE,PARENT_NOT_SET,44,44,58,0,0,2,0,"EXPR_START",0,0," __deprecated__"
+92,PAREN_CLOSE,NONE,PARENT_NOT_SET,58,58,59,0,0,1,0,"PUNCTUATOR",0,0," )"
+92,FPAREN_CLOSE,ATTRIBUTE,PARENT_NOT_SET,59,59,60,0,0,0,0,"PUNCTUATOR",0,0," )"
+92,NEWLINE,NONE,PARENT_NOT_SET,60,60,1,0,0,0,0,"",1,0,
+93,CLASS_COLON,CLASS,PARENT_NOT_SET,9,1,2,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," :"
+93,QUALIFIER,NONE,PARENT_NOT_SET,11,3,9,1,0,0,0,"IN_CLASS_BASE,FORCE_SPACE,STMT_START,EXPR_START",0,0," public"
+93,TYPE,NONE,PARENT_NOT_SET,18,10,25,1,0,0,0,"IN_CLASS_BASE",0,0," outer_namespace"
+93,DC_MEMBER,NONE,PARENT_NOT_SET,33,25,27,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+93,TYPE,NONE,PARENT_NOT_SET,35,27,42,0,0,0,0,"IN_CLASS_BASE",0,0," inner_namespace"
+93,DC_MEMBER,NONE,PARENT_NOT_SET,50,42,44,0,0,0,0,"IN_CLASS_BASE,PUNCTUATOR",0,0," ::"
+93,TYPE,NONE,PARENT_NOT_SET,52,44,49,0,0,0,0,"IN_CLASS_BASE",0,0," Base1"
+93,NEWLINE,NONE,PARENT_NOT_SET,57,49,1,0,0,0,0,"",1,0,
+94,BRACE_OPEN,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"PUNCTUATOR",0,0," {"
+94,NEWLINE,NONE,PARENT_NOT_SET,2,2,1,0,1,1,0,"IN_CLASS",1,0,
+95,ACCESS,NONE,PARENT_NOT_SET,1,1,7,0,1,1,0,"IN_CLASS,STMT_START,EXPR_START",0,0," public"
+95,ACCESS_COLON,NONE,PARENT_NOT_SET,7,7,8,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," :"
+95,NEWLINE,NONE,PARENT_NOT_SET,8,8,4,0,1,1,0,"IN_CLASS",1,0,
+96,TYPE,NONE,PARENT_NOT_SET,1,4,7,0,1,1,0,"IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," int"
+96,WORD,NONE,PARENT_NOT_SET,5,8,11,1,1,1,0,"IN_CLASS,VAR_DEF,VAR_1ST",0,0," m_x"
+96,SEMICOLON,NONE,PARENT_NOT_SET,8,11,12,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+96,NEWLINE,NONE,PARENT_NOT_SET,9,12,4,0,1,1,0,"IN_CLASS",1,0,
+97,TYPE,NONE,PARENT_NOT_SET,1,4,7,0,1,1,0,"IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," int"
+97,WORD,NONE,PARENT_NOT_SET,5,8,11,1,1,1,0,"IN_CLASS,VAR_DEF,VAR_1ST",0,0," m_y"
+97,SEMICOLON,NONE,PARENT_NOT_SET,8,11,12,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+97,NEWLINE,NONE,PARENT_NOT_SET,9,12,4,0,1,1,0,"IN_CLASS",1,0,
+98,TYPE,NONE,PARENT_NOT_SET,1,4,7,0,1,1,0,"IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE",0,0," int"
+98,WORD,NONE,PARENT_NOT_SET,5,8,11,1,1,1,0,"IN_CLASS,VAR_DEF,VAR_1ST",0,0," m_z"
+98,SEMICOLON,NONE,PARENT_NOT_SET,8,11,12,0,1,1,0,"IN_CLASS,PUNCTUATOR",0,0," ;"
+98,NEWLINE,NONE,PARENT_NOT_SET,9,12,1,0,1,1,0,"IN_CLASS",1,0,
+99,BRACE_CLOSE,CLASS,PARENT_NOT_SET,1,1,2,0,0,0,0,"IN_CLASS,PUNCTUATOR",0,0," }"
+99,WORD,NONE,PARENT_NOT_SET,3,3,6,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," c51"
+99,COMMA,NONE,PARENT_NOT_SET,6,6,7,0,0,0,0,"PUNCTUATOR",0,0," ,"
+99,PTR_TYPE,CLASS,PARENT_NOT_SET,8,8,9,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+99,WORD,NONE,PARENT_NOT_SET,9,9,12,0,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE,LVALUE",0,0," c52"
+99,ASSIGN,NONE,PARENT_NOT_SET,13,13,14,1,0,0,0,"PUNCTUATOR",0,0," ="
+99,WORD,NONE,PARENT_NOT_SET,15,15,22,1,0,0,0,"EXPR_START",0,0," nullptr"
+99,COMMA,NONE,PARENT_NOT_SET,22,22,23,0,0,0,0,"PUNCTUATOR",0,0," ,"
+99,PTR_TYPE,CLASS,PARENT_NOT_SET,24,24,25,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+99,WORD,NONE,PARENT_NOT_SET,25,25,28,0,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," c53"
+99,TSQUARE,NONE,PARENT_NOT_SET,28,28,30,0,0,0,0,"PUNCTUATOR",0,0," []"
+99,ASSIGN,NONE,PARENT_NOT_SET,31,31,32,1,0,0,0,"PUNCTUATOR",0,0," ="
+99,BRACE_OPEN,BRACED_INIT_LIST,PARENT_NOT_SET,33,33,34,1,0,0,0,"EXPR_START,ONE_LINER,PUNCTUATOR",0,0," {"
+99,WORD,NONE,PARENT_NOT_SET,35,35,42,1,1,1,0,"EXPR_START,ONE_LINER",0,0," nullptr"
+99,COMMA,NONE,PARENT_NOT_SET,42,42,43,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ,"
+99,WORD,NONE,PARENT_NOT_SET,44,44,51,1,1,1,0,"EXPR_START,ONE_LINER",0,0," nullptr"
+99,BRACE_CLOSE,BRACED_INIT_LIST,PARENT_NOT_SET,52,52,53,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+99,SEMICOLON,CLASS,PARENT_NOT_SET,53,53,54,0,0,0,0,"PUNCTUATOR",0,0," ;"
+99,NEWLINE,NONE,PARENT_NOT_SET,54,54,1,0,0,0,0,"",3,0,
+102,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,44,0,0,0,0,"",0,0," // enum type : integral_type { ... } x, ..."
+102,NEWLINE,NONE,PARENT_NOT_SET,44,44,1,0,0,0,0,"",1,0,
+103,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," enum"
+103,TYPE,ENUM,PARENT_NOT_SET,6,6,8,1,0,0,0,"VAR_TYPE",0,0," e1"
+103,ENUM_COLON,ENUM,PARENT_NOT_SET,9,9,10,1,0,0,0,"PUNCTUATOR",0,0," :"
+103,TYPE,ENUM_COLON,PARENT_NOT_SET,11,11,15,1,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," long"
+103,TYPE,ENUM_COLON,PARENT_NOT_SET,16,16,20,1,0,0,0,"",0,0," long"
+103,BRACE_OPEN,ENUM,PARENT_NOT_SET,21,21,22,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+103,WORD,NONE,PARENT_NOT_SET,23,23,25,1,1,1,0,"IN_ENUM,STMT_START,EXPR_START,ONE_LINER",0,0," a1"
+103,COMMA,NONE,PARENT_NOT_SET,25,25,26,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+103,WORD,NONE,PARENT_NOT_SET,27,27,29,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," b1"
+103,COMMA,NONE,PARENT_NOT_SET,29,29,30,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+103,WORD,NONE,PARENT_NOT_SET,31,31,33,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," d1"
+103,BRACE_CLOSE,ENUM,PARENT_NOT_SET,34,34,35,1,0,0,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," }"
+103,WORD,NONE,PARENT_NOT_SET,36,36,39,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," e11"
+103,COMMA,NONE,PARENT_NOT_SET,39,39,40,0,0,0,0,"PUNCTUATOR",0,0," ,"
+103,WORD,NONE,PARENT_NOT_SET,41,41,44,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e12"
+103,COMMA,NONE,PARENT_NOT_SET,44,44,45,0,0,0,0,"PUNCTUATOR",0,0," ,"
+103,WORD,NONE,PARENT_NOT_SET,46,46,49,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e13"
+103,SEMICOLON,ENUM,PARENT_NOT_SET,49,49,50,0,0,0,0,"PUNCTUATOR",0,0," ;"
+103,NEWLINE,NONE,PARENT_NOT_SET,50,50,1,0,0,0,0,"",2,0,
+105,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,37,0,0,0,0,"",0,0," // enum type : integral_type { ... }"
+105,NEWLINE,NONE,PARENT_NOT_SET,37,37,1,0,0,0,0,"",1,0,
+106,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," enum"
+106,TYPE,ENUM,PARENT_NOT_SET,6,6,8,1,0,0,0,"",0,0," e2"
+106,ENUM_COLON,ENUM,PARENT_NOT_SET,9,9,10,1,0,0,0,"PUNCTUATOR",0,0," :"
+106,TYPE,ENUM_COLON,PARENT_NOT_SET,11,11,19,1,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," unsigned"
+106,TYPE,ENUM_COLON,PARENT_NOT_SET,20,20,23,1,0,0,0,"",0,0," int"
+106,BRACE_OPEN,ENUM,PARENT_NOT_SET,24,24,25,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+106,WORD,NONE,PARENT_NOT_SET,26,26,28,1,1,1,0,"IN_ENUM,STMT_START,EXPR_START,ONE_LINER",0,0," a2"
+106,COMMA,NONE,PARENT_NOT_SET,28,28,29,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+106,WORD,NONE,PARENT_NOT_SET,30,30,32,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," b2"
+106,COMMA,NONE,PARENT_NOT_SET,32,32,33,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+106,WORD,NONE,PARENT_NOT_SET,34,34,36,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," d2"
+106,BRACE_CLOSE,ENUM,PARENT_NOT_SET,37,37,38,1,0,0,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," }"
+106,SEMICOLON,ENUM,PARENT_NOT_SET,38,38,39,0,0,0,0,"PUNCTUATOR",0,0," ;"
+106,NEWLINE,NONE,PARENT_NOT_SET,39,39,1,0,0,0,0,"",2,0,
+108,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,29,0,0,0,0,"",0,0," // enum type : integral_type"
+108,NEWLINE,NONE,PARENT_NOT_SET,29,29,1,0,0,0,0,"",1,0,
+109,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START,INCOMPLETE",0,0," enum"
+109,TYPE,ENUM,PARENT_NOT_SET,6,6,8,1,0,0,0,"INCOMPLETE",0,0," e3"
+109,ENUM_COLON,ENUM,PARENT_NOT_SET,9,9,10,1,0,0,0,"PUNCTUATOR",0,0," :"
+109,TYPE,ENUM_COLON,PARENT_NOT_SET,11,11,16,1,0,0,0,"STMT_START,EXPR_START",0,0," short"
+109,SEMICOLON,ENUM,PARENT_NOT_SET,16,16,17,0,0,0,0,"PUNCTUATOR",0,0," ;"
+109,NEWLINE,NONE,PARENT_NOT_SET,17,17,1,0,0,0,0,"",2,0,
+111,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,20,0,0,0,0,"",0,0," // enum type x, ..."
+111,NEWLINE,NONE,PARENT_NOT_SET,20,20,1,0,0,0,0,"",1,0,
+112,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," enum"
+112,TYPE,ENUM,PARENT_NOT_SET,6,6,8,1,0,0,0,"FORCE_SPACE,VAR_TYPE",0,0," e3"
+112,WORD,NONE,PARENT_NOT_SET,9,9,12,1,0,0,0,"VAR_DEF,VAR_1ST",0,0," e31"
+112,COMMA,NONE,PARENT_NOT_SET,12,12,13,0,0,0,0,"PUNCTUATOR",0,0," ,"
+112,WORD,NONE,PARENT_NOT_SET,14,14,17,1,0,0,0,"EXPR_START,VAR_DEF",0,0," e32"
+112,SEMICOLON,ENUM,PARENT_NOT_SET,17,17,18,0,0,0,0,"PUNCTUATOR",0,0," ;"
+112,NEWLINE,NONE,PARENT_NOT_SET,18,18,1,0,0,0,0,"",2,0,
+114,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,50,0,0,0,0,"",0,0," // enum class type : integral_type { ... } x, ..."
+114,NEWLINE,NONE,PARENT_NOT_SET,50,50,1,0,0,0,0,"",1,0,
+115,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," enum"
+115,ENUM_CLASS,NONE,PARENT_NOT_SET,6,6,11,1,0,0,0,"FORCE_SPACE",0,0," class"
+115,TYPE,ENUM,PARENT_NOT_SET,12,12,14,1,0,0,0,"VAR_TYPE",0,0," e4"
+115,ENUM_COLON,ENUM,PARENT_NOT_SET,15,15,16,1,0,0,0,"PUNCTUATOR",0,0," :"
+115,TYPE,ENUM_COLON,PARENT_NOT_SET,17,17,21,1,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," long"
+115,TYPE,ENUM_COLON,PARENT_NOT_SET,22,22,26,1,0,0,0,"",0,0," long"
+115,BRACE_OPEN,ENUM,PARENT_NOT_SET,27,27,28,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+115,WORD,NONE,PARENT_NOT_SET,29,29,31,1,1,1,0,"IN_ENUM,STMT_START,EXPR_START,ONE_LINER",0,0," a4"
+115,COMMA,NONE,PARENT_NOT_SET,31,31,32,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+115,WORD,NONE,PARENT_NOT_SET,33,33,35,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," b4"
+115,COMMA,NONE,PARENT_NOT_SET,35,35,36,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+115,WORD,NONE,PARENT_NOT_SET,37,37,39,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," d4"
+115,BRACE_CLOSE,ENUM,PARENT_NOT_SET,40,40,41,1,0,0,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," }"
+115,WORD,NONE,PARENT_NOT_SET,42,42,45,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," e41"
+115,COMMA,NONE,PARENT_NOT_SET,45,45,46,0,0,0,0,"PUNCTUATOR",0,0," ,"
+115,WORD,NONE,PARENT_NOT_SET,47,47,50,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e42"
+115,COMMA,NONE,PARENT_NOT_SET,50,50,51,0,0,0,0,"PUNCTUATOR",0,0," ,"
+115,WORD,NONE,PARENT_NOT_SET,52,52,55,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e43"
+115,COMMA,NONE,PARENT_NOT_SET,55,55,56,0,0,0,0,"PUNCTUATOR",0,0," ,"
+115,WORD,NONE,PARENT_NOT_SET,57,57,60,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e44"
+115,SEMICOLON,ENUM,PARENT_NOT_SET,60,60,61,0,0,0,0,"PUNCTUATOR",0,0," ;"
+115,NEWLINE,NONE,PARENT_NOT_SET,61,61,1,0,0,0,0,"",2,0,
+117,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,43,0,0,0,0,"",0,0," // enum class type : integral_type { ... }"
+117,NEWLINE,NONE,PARENT_NOT_SET,43,43,1,0,0,0,0,"",1,0,
+118,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," enum"
+118,ENUM_CLASS,NONE,PARENT_NOT_SET,6,6,11,1,0,0,0,"FORCE_SPACE",0,0," class"
+118,TYPE,ENUM,PARENT_NOT_SET,12,12,14,1,0,0,0,"",0,0," e5"
+118,ENUM_COLON,ENUM,PARENT_NOT_SET,15,15,16,1,0,0,0,"PUNCTUATOR",0,0," :"
+118,TYPE,ENUM_COLON,PARENT_NOT_SET,17,17,25,1,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," unsigned"
+118,TYPE,ENUM_COLON,PARENT_NOT_SET,26,26,29,1,0,0,0,"",0,0," int"
+118,BRACE_OPEN,ENUM,PARENT_NOT_SET,30,30,31,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+118,WORD,NONE,PARENT_NOT_SET,32,32,34,1,1,1,0,"IN_ENUM,STMT_START,EXPR_START,ONE_LINER",0,0," a5"
+118,COMMA,NONE,PARENT_NOT_SET,34,34,35,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+118,WORD,NONE,PARENT_NOT_SET,36,36,38,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," b5"
+118,COMMA,NONE,PARENT_NOT_SET,38,38,39,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+118,WORD,NONE,PARENT_NOT_SET,40,40,42,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," d5"
+118,BRACE_CLOSE,ENUM,PARENT_NOT_SET,43,43,44,1,0,0,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," }"
+118,SEMICOLON,ENUM,PARENT_NOT_SET,44,44,45,0,0,0,0,"PUNCTUATOR",0,0," ;"
+118,NEWLINE,NONE,PARENT_NOT_SET,45,45,1,0,0,0,0,"",2,0,
+120,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,35,0,0,0,0,"",0,0," // enum class type : integral_type"
+120,NEWLINE,NONE,PARENT_NOT_SET,35,35,1,0,0,0,0,"",1,0,
+121,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START,INCOMPLETE",0,0," enum"
+121,ENUM_CLASS,NONE,PARENT_NOT_SET,6,6,11,1,0,0,0,"FORCE_SPACE,INCOMPLETE",0,0," class"
+121,TYPE,ENUM,PARENT_NOT_SET,12,12,14,1,0,0,0,"INCOMPLETE",0,0," e6"
+121,ENUM_COLON,ENUM,PARENT_NOT_SET,15,15,16,1,0,0,0,"PUNCTUATOR",0,0," :"
+121,TYPE,ENUM_COLON,PARENT_NOT_SET,17,17,22,1,0,0,0,"STMT_START,EXPR_START",0,0," short"
+121,SEMICOLON,ENUM,PARENT_NOT_SET,22,22,23,0,0,0,0,"PUNCTUATOR",0,0," ;"
+121,NEWLINE,NONE,PARENT_NOT_SET,23,23,1,0,0,0,0,"",2,0,
+123,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,19,0,0,0,0,"",0,0," // enum class type"
+123,NEWLINE,NONE,PARENT_NOT_SET,19,19,1,0,0,0,0,"",1,0,
+124,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START,INCOMPLETE",0,0," enum"
+124,ENUM_CLASS,NONE,PARENT_NOT_SET,6,6,11,1,0,0,0,"FORCE_SPACE,INCOMPLETE",0,0," class"
+124,TYPE,ENUM,PARENT_NOT_SET,12,12,14,1,0,0,0,"INCOMPLETE",0,0," e7"
+124,SEMICOLON,ENUM,PARENT_NOT_SET,14,14,15,0,0,0,0,"PUNCTUATOR",0,0," ;"
+124,NEWLINE,NONE,PARENT_NOT_SET,15,15,1,0,0,0,0,"",2,0,
+126,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,39,0,0,0,0,"",0,0," // enum : integral_type { ... } x, ..."
+126,NEWLINE,NONE,PARENT_NOT_SET,39,39,1,0,0,0,0,"",1,0,
+127,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"STMT_START,EXPR_START",0,0," enum"
+127,ENUM_COLON,ENUM,PARENT_NOT_SET,6,6,7,1,0,0,0,"PUNCTUATOR",0,0," :"
+127,TYPE,ENUM_COLON,PARENT_NOT_SET,8,8,12,1,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," long"
+127,TYPE,ENUM_COLON,PARENT_NOT_SET,13,13,17,1,0,0,0,"",0,0," long"
+127,BRACE_OPEN,ENUM,PARENT_NOT_SET,18,18,19,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+127,WORD,NONE,PARENT_NOT_SET,20,20,22,1,1,1,0,"IN_ENUM,STMT_START,EXPR_START,ONE_LINER",0,0," a8"
+127,COMMA,NONE,PARENT_NOT_SET,22,22,23,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+127,WORD,NONE,PARENT_NOT_SET,24,24,26,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," b8"
+127,COMMA,NONE,PARENT_NOT_SET,26,26,27,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+127,WORD,NONE,PARENT_NOT_SET,28,28,30,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," c8"
+127,BRACE_CLOSE,ENUM,PARENT_NOT_SET,31,31,32,1,0,0,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," }"
+127,WORD,NONE,PARENT_NOT_SET,33,33,36,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," e81"
+127,COMMA,NONE,PARENT_NOT_SET,36,36,37,0,0,0,0,"PUNCTUATOR",0,0," ,"
+127,WORD,NONE,PARENT_NOT_SET,38,38,41,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e82"
+127,SEMICOLON,ENUM,PARENT_NOT_SET,41,41,42,0,0,0,0,"PUNCTUATOR",0,0," ;"
+127,NEWLINE,NONE,PARENT_NOT_SET,42,42,1,0,0,0,0,"",2,0,
+129,COMMENT_CPP,COMMENT_WHOLE,PARENT_NOT_SET,1,1,23,0,0,0,0,"",0,0," // enum { ... } x, ..."
+129,NEWLINE,NONE,PARENT_NOT_SET,23,23,1,0,0,0,0,"",1,0,
+130,ENUM,NONE,PARENT_NOT_SET,1,1,5,0,0,0,0,"STMT_START,EXPR_START",0,0," enum"
+130,BRACE_OPEN,ENUM,PARENT_NOT_SET,6,6,7,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+130,WORD,NONE,PARENT_NOT_SET,8,8,10,1,1,1,0,"IN_ENUM,STMT_START,EXPR_START,ONE_LINER",0,0," a9"
+130,COMMA,NONE,PARENT_NOT_SET,10,10,11,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+130,WORD,NONE,PARENT_NOT_SET,12,12,14,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," b9"
+130,COMMA,NONE,PARENT_NOT_SET,14,14,15,0,1,1,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," ,"
+130,WORD,NONE,PARENT_NOT_SET,16,16,18,1,1,1,0,"IN_ENUM,EXPR_START,ONE_LINER",0,0," c9"
+130,BRACE_CLOSE,ENUM,PARENT_NOT_SET,19,19,20,1,0,0,0,"IN_ENUM,ONE_LINER,PUNCTUATOR",0,0," }"
+130,WORD,NONE,PARENT_NOT_SET,21,21,24,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," e91"
+130,COMMA,NONE,PARENT_NOT_SET,24,24,25,0,0,0,0,"PUNCTUATOR",0,0," ,"
+130,WORD,NONE,PARENT_NOT_SET,26,26,29,1,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE",0,0," e92"
+130,SEMICOLON,ENUM,PARENT_NOT_SET,29,29,30,0,0,0,0,"PUNCTUATOR",0,0," ;"
+130,NEWLINE,NONE,PARENT_NOT_SET,30,30,1,0,0,0,0,"",2,0,
+132,UNION,NONE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," union"
+132,WORD,NONE,PARENT_NOT_SET,7,7,17,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+132,TYPE,UNION,PARENT_NOT_SET,18,18,20,1,0,0,0,"VAR_TYPE",0,0," u1"
+132,BRACE_OPEN,UNION,PARENT_NOT_SET,21,21,22,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+132,TYPE,NONE,PARENT_NOT_SET,23,23,26,1,1,1,0,"FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE,ONE_LINER",0,0," int"
+132,WORD,NONE,PARENT_NOT_SET,27,27,28,1,1,1,0,"VAR_DEF,VAR_1ST,ONE_LINER",0,0," x"
+132,SEMICOLON,NONE,PARENT_NOT_SET,28,28,29,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ;"
+132,TYPE,NONE,PARENT_NOT_SET,30,30,34,1,1,1,0,"FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE,ONE_LINER",0,0," long"
+132,WORD,NONE,PARENT_NOT_SET,35,35,36,1,1,1,0,"VAR_DEF,VAR_1ST,ONE_LINER",0,0," y"
+132,SEMICOLON,NONE,PARENT_NOT_SET,36,36,37,0,1,1,0,"ONE_LINER,PUNCTUATOR",0,0," ;"
+132,BRACE_CLOSE,UNION,PARENT_NOT_SET,38,38,39,1,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+132,WORD,NONE,PARENT_NOT_SET,40,40,43,1,0,0,0,"STMT_START,EXPR_START,VAR_DEF,VAR_1ST,VAR_INLINE",0,0," u11"
+132,COMMA,NONE,PARENT_NOT_SET,43,43,44,0,0,0,0,"PUNCTUATOR",0,0," ,"
+132,PTR_TYPE,UNION,PARENT_NOT_SET,45,45,46,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+132,WORD,NONE,PARENT_NOT_SET,46,46,49,0,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE,LVALUE",0,0," u12"
+132,ASSIGN,NONE,PARENT_NOT_SET,50,50,51,1,0,0,0,"PUNCTUATOR",0,0," ="
+132,WORD,NONE,PARENT_NOT_SET,52,52,59,1,0,0,0,"EXPR_START",0,0," nullptr"
+132,COMMA,NONE,PARENT_NOT_SET,59,59,60,0,0,0,0,"PUNCTUATOR",0,0," ,"
+132,PTR_TYPE,UNION,PARENT_NOT_SET,61,61,62,1,0,0,0,"EXPR_START,PUNCTUATOR",0,0," *"
+132,WORD,NONE,PARENT_NOT_SET,62,62,65,0,0,0,0,"EXPR_START,VAR_DEF,VAR_INLINE,LVALUE",0,0," u13"
+132,BRACE_OPEN,BRACED_INIT_LIST,PARENT_NOT_SET,65,65,66,0,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," {"
+132,NUMBER,NONE,PARENT_NOT_SET,66,66,67,0,1,1,0,"STMT_START,EXPR_START,ONE_LINER",0,0," 0"
+132,BRACE_CLOSE,BRACED_INIT_LIST,PARENT_NOT_SET,67,67,68,0,0,0,0,"ONE_LINER,PUNCTUATOR",0,0," }"
+132,SEMICOLON,UNION,PARENT_NOT_SET,68,68,69,0,0,0,0,"PUNCTUATOR",0,0," ;"
+132,NEWLINE,NONE,PARENT_NOT_SET,69,69,1,0,0,0,0,"",2,0,
+134,UNION,NONE,PARENT_NOT_SET,1,1,6,0,0,0,0,"FORCE_SPACE,STMT_START,EXPR_START",0,0," union"
+134,WORD,NONE,PARENT_NOT_SET,7,7,17,1,0,0,0,"FORCE_SPACE",0,0," API_EXPORT"
+134,TYPE,UNION,PARENT_NOT_SET,18,18,20,1,0,0,0,"FORCE_SPACE,VAR_TYPE",0,0," u1"
+134,WORD,NONE,PARENT_NOT_SET,21,21,24,1,0,0,0,"VAR_DEF,VAR_1ST",0,0," u21"
+134,SEMICOLON,UNION,PARENT_NOT_SET,24,24,25,0,0,0,0,"PUNCTUATOR",0,0," ;"
+134,NEWLINE,NONE,PARENT_NOT_SET,25,25,1,0,0,0,0,"",1,0, \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.txt
new file mode 100644
index 00000000..6c89600d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/class_enum_struct_union.txt
@@ -0,0 +1,692 @@
+
+# option(s) with 'not default' value: 0
+#
+# -=====-
+# number of loops = 1
+# -=====-
+# language = CPP
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flags Nl Text
+# 1> COMMENT_MULTI| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 4/ 7/ 3][0/0/0][ 0][9-0] /**␤ * the enum (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * "enum type [: integral_type] { ... } [x, ...]"␤ * "enum type [: integral_type]"␤ * "enum class type [: integral_type] { ... } [x, ...]"␤ * "enum class type [: integral_type]"␤ * "enum [: integral_type] { ... } x, ..."␤ */
+# 10> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 4/ 0][0/0/0][ 0][2-0]
+# 12> COMMENT_MULTI| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][0/0/0][ 0][9-0] /**␤ * the class/struct (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }␤ * template<...> class/struct[<...>] [macros/attributes ...] type␤ * class/struct[ [macros/attributes ...] type [: bases ...] { } [x, ...]␤ * class/struct [macros/attributes ...] type [x, ...]␤ * class/struct [macros/attributes ...] [: bases] { } x, ...␤ */
+# 21> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 1/ 0][0/0/0][ 0][2-0]
+# 23> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 001c 0001][0-0] #
+# 23> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/0][ 2 0001][0-0] define
+# 23> MACRO_FUNC| NONE| PARENT_NOT_SET[ 9/ 9/ 16/ 1][1/1/0][ 8 0001][0-0] ALIGNAS
+# 23> FPAREN_OPEN| MACRO_FUNC| PARENT_NOT_SET[ 16/ 16/ 17/ 0][1/1/0][ 2 0000 0001][0-0] (
+# 23> WORD| NONE| PARENT_NOT_SET[ 17/ 17/ 31/ 0][1/2/0][ 8 0011][0-0] byte_alignment
+# 23> FPAREN_CLOSE| MACRO_FUNC| PARENT_NOT_SET[ 31/ 31/ 32/ 0][1/1/0][ 2 0000 0011][0-0] )
+# 23> ATTRIBUTE| NONE| PARENT_NOT_SET[ 33/ 33/ 46/ 1][1/1/0][ 1][0-0] __attribute__
+# 23> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 46/ 46/ 47/ 0][1/1/0][ 2 0000 0001][0-0] (
+# 23> PAREN_OPEN| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][1/2/0][ 2 0008 0001][0-0] (
+# 23> FUNC_CALL| NONE| PARENT_NOT_SET[ 48/ 48/ 55/ 0][1/3/0][ 8 0001][0-0] aligned
+# 23> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 55/ 55/ 56/ 0][1/3/0][ 2 0000 0001][0-0] (
+# 23> WORD| NONE| PARENT_NOT_SET[ 56/ 56/ 70/ 0][1/4/0][ 8 0011][0-0] byte_alignment
+# 23> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 70/ 70/ 71/ 0][1/3/0][ 2 0000 0011][0-0] )
+# 23> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 71/ 71/ 72/ 0][1/2/0][ 2 0000 0001][0-0] )
+# 23> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 72/ 72/ 73/ 0][1/1/0][ 2 0000 0001][0-0] )
+# 23> NEWLINE| NONE| PARENT_NOT_SET[ 73/ 73/ 1/ 0][0/0/0][ 0][2-0]
+# 25> PREPROC| PP_IF| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 25> PP_IF| NONE| PARENT_NOT_SET[ 2/ 2/ 4/ 0][0/0/1][ 2 0001][0-0] if
+# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 5/ 5/ 12/ 1][0/0/1][ 8 0001][0-0] defined
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> WORD| NONE| PARENT_NOT_SET[ 14/ 14/ 22/ 0][0/0/1][ 8 0001][0-0] __unix__
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> BOOL| NONE| PARENT_NOT_SET[ 24/ 24/ 26/ 1][0/0/1][ 2 0000 0001][0-0] ||
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 28/ 28/ 35/ 0][0/0/1][ 8 0001][0-0] defined
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 46/ 0][0/0/1][ 8 0001][0-0] __APPLE__
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 46/ 46/ 47/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> BOOL| NONE| PARENT_NOT_SET[ 48/ 48/ 50/ 1][0/0/1][ 2 0000 0001][0-0] &&
+# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 51/ 51/ 58/ 1][0/0/1][ 1][0-0] defined
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 59/ 59/ 60/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> WORD| NONE| PARENT_NOT_SET[ 60/ 60/ 68/ 0][0/0/1][ 8 0001][0-0] __MACH__
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 69/ 69/ 70/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> NEWLINE| NONE| PARENT_NOT_SET[ 70/ 70/ 1/ 0][0/0/1][ 0][1-0]
+# 26> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2 001c 0001][0-0] #
+# 26> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 2 0001][0-0] define
+# 26> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 2 0001][0-0] API_EXPORT
+# 26> ATTRIBUTE| NONE| PARENT_NOT_SET[ 20/ 20/ 33/ 1][1/1/1][ 8 0001][0-0] __attribute__
+# 26> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 34/ 34/ 35/ 1][1/1/1][ 2 000c 0001][0-0] (
+# 26> PAREN_OPEN| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 0][1/2/1][ 2 0008 0001][0-0] (
+# 26> FUNC_CALL| NONE| PARENT_NOT_SET[ 36/ 36/ 46/ 0][1/3/1][ 8 0001][0-0] visibility
+# 26> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 46/ 46/ 47/ 0][1/3/1][ 2 0000 0001][0-0] (
+# 26> STRING| NONE| PARENT_NOT_SET[ 47/ 47/ 56/ 0][1/4/1][ 8 0011][0-0] "default"
+# 26> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 56/ 56/ 57/ 0][1/3/1][ 2 0000 0011][0-0] )
+# 26> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 57/ 57/ 58/ 0][1/2/1][ 2 0000 0001][0-0] )
+# 26> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][1/1/1][ 2 0000 0001][0-0] )
+# 26> NEWLINE| NONE| PARENT_NOT_SET[ 59/ 59/ 1/ 0][0/0/1][ 0][1-0]
+# 27> PREPROC| PP_ELSE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 27> PP_ELSE| NONE| PP_IF[ 2/ 2/ 6/ 0][0/0/1][ 2 0001][0-0] elif
+# 27> PP_DEFINED| NONE| PARENT_NOT_SET[ 7/ 7/ 14/ 1][0/0/1][ a 0001][0-0] defined
+# 27> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 21/ 1][0/0/1][ 1][0-0] _WIN32
+# 27> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/1][ 0][1-0]
+# 28> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2 001c 0001][0-0] #
+# 28> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 2 0001][0-0] define
+# 28> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 2 0001][0-0] API_EXPORT
+# 28> DECLSPEC| NONE| PARENT_NOT_SET[ 20/ 20/ 30/ 1][1/1/1][ c 0001][0-0] __declspec
+# 28> PAREN_OPEN| DECLSPEC| PARENT_NOT_SET[ 30/ 30/ 31/ 0][1/1/1][ 2 0000 0001][0-0] (
+# 28> WORD| NONE| PARENT_NOT_SET[ 31/ 31/ 40/ 0][1/2/1][ 8 0001][0-0] dllexport
+# 28> PAREN_CLOSE| DECLSPEC| PARENT_NOT_SET[ 40/ 40/ 41/ 0][1/1/1][ 2 0000 0001][0-0] )
+# 28> NEWLINE| NONE| PARENT_NOT_SET[ 41/ 41/ 1/ 0][0/0/1][ 0][1-0]
+# 29> PREPROC| PP_ELSE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 29> PP_ELSE| NONE| PP_IF[ 2/ 2/ 6/ 0][0/0/1][ 1][0-0] else
+# 29> NEWLINE| NONE| PARENT_NOT_SET[ 6/ 6/ 1/ 0][0/0/1][ 0][1-0]
+# 30> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2 001c 0001][0-0] #
+# 30> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 2 0001][0-0] define
+# 30> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 1][0-0] API_EXPORT
+# 30> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 19/ 1/ 0][0/0/1][ 0][1-0]
+# 31> PREPROC| PP_ENDIF| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 31> PP_ENDIF| NONE| PP_IF[ 2/ 2/ 7/ 0][0/0/0][ 1][0-0] endif
+# 31> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 1/ 0][0/0/0][ 0][2-0]
+# 33> NAMESPACE| NONE| PARENT_NOT_SET[ 1/ 1/ 10/ 0][0/0/0][ e 0000][0-0] namespace
+# 33> WORD| NAMESPACE| PARENT_NOT_SET[ 11/ 11/ 26/ 1][0/0/0][ 0][0-0] outer_namespace
+# 33> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 26/ 1/ 0][0/0/0][ 0][1-0]
+# 34> BRACE_OPEN| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0000][0-0] {
+# 34> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 1000][2-0]
+# 36> NAMESPACE| NONE| PARENT_NOT_SET[ 1/ 1/ 10/ 0][1/1/0][ e 1000][0-0] namespace
+# 36> WORD| NAMESPACE| PARENT_NOT_SET[ 11/ 11/ 26/ 1][1/1/0][ 1000][0-0] inner_namespace
+# 36> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 26/ 1/ 0][1/1/0][ 1000][1-0]
+# 37> BRACE_OPEN| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 0000 1000][0-0] {
+# 37> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][2/2/0][ 1000][2-0]
+# 39> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][2/2/0][ e 1000][0-0] class
+# 39> TYPE| CLASS| PARENT_NOT_SET[ 7/ 7/ 12/ 1][2/2/0][ 1000][0-0] Base1
+# 39> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 13/ 13/ 14/ 1][2/2/0][ 2 c000 1400][0-0] {
+# 39> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 15/ 15/ 16/ 1][2/2/0][ 2 c000 1400][0-0] }
+# 39> SEMICOLON| CLASS| PARENT_NOT_SET[ 16/ 16/ 17/ 0][2/2/0][ 2 0000 0000][0-0] ;
+# 39> NEWLINE| NONE| PARENT_NOT_SET[ 17/ 17/ 1/ 0][2/2/0][ 0][2-0]
+# 41> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][2/2/0][ c 0000][0-0] template
+# 41> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][2/2/0][ 2 0000 0040][0-0] <
+# 41> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][2/3/0][ 8 0040][0-0] typename
+# 41> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][2/2/0][ 2 0000 0040][0-0] >
+# 41> CLASS| TEMPLATE| PARENT_NOT_SET[ 20/ 20/ 25/ 1][2/2/0][ a 0000][0-0] class
+# 41> TYPE| CLASS| PARENT_NOT_SET[ 26/ 26/ 31/ 1][2/2/0][ 0][0-0] Base2
+# 41> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 32/ 32/ 33/ 1][2/2/0][ 2 c000 0400][0-0] {
+# 41> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 34/ 34/ 35/ 1][2/2/0][ 2 c000 0400][0-0] }
+# 41> SEMICOLON| CLASS| PARENT_NOT_SET[ 35/ 35/ 36/ 0][2/2/0][ 2 0000 0000][0-0] ;
+# 41> NEWLINE| NONE| PARENT_NOT_SET[ 36/ 36/ 1/ 0][2/2/0][ 0][2-0]
+# 43> BRACE_CLOSE| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 0000 0000][0-0] }
+# 43> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 0][2-0]
+# 45> BRACE_CLOSE| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0000][0-0] }
+# 45> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][0/0/0][ 0][2-0]
+# 47> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 82/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type : bases ... { }
+# 47> NEWLINE| NONE| PARENT_NOT_SET[ 82/ 82/ 1/ 0][0/0/0][ 0][1-0]
+# 48> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 48> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 48> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 8 0040][0-0] typename
+# 48> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 2 0000 0040][0-0] ,
+# 48> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 8 0040][0-0] typename
+# 48> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 2 0000 0040][0-0] ...
+# 48> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 48> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
+# 49> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ a 0000][0-0] class
+# 49> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 49> ATTRIBUTE| NONE| PARENT_NOT_SET[ 18/ 18/ 31/ 1][0/0/0][ 0][0-0] __attribute__
+# 49> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 49> PAREN_OPEN| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 49> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 47/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 49> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 49> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 48/ 48/ 49/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 49> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 49> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 49> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 8 0000][0-0] 4
+# 49> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 49> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 0][0-0] c1
+# 49> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 63/ 1/ 0][0/0/0][ 0][1-0]
+# 50> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 2 0000 0800][0-0] :
+# 50> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e 0800][0-0] public
+# 50> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 50> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 50> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 50> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 50> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base1
+# 50> COMMA| NONE| PARENT_NOT_SET[ 57/ 49/ 50/ 0][0/0/0][ 2 0000 0800][0-0] ,
+# 50> NEWLINE| NONE| PARENT_NOT_SET[ 58/ 50/ 3/ 0][0/0/0][ 0][1-0]
+# 51> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 3/ 9/ 0][0/0/0][ a 0800][0-0] public
+# 51> TYPE| NONE| PARENT_NOT_SET[ 16/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 31/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 33/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 48/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 50/ 44/ 49/ 0][0/0/0][ 800][0-0] Base2
+# 51> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 55/ 49/ 50/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 51> TYPE| NONE| PARENT_NOT_SET[ 56/ 50/ 65/ 0][0/1/0][ 8 0840][0-0] outer_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 71/ 65/ 67/ 0][0/1/0][ 2 0000 0840][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 73/ 67/ 82/ 0][0/1/0][ 840][0-0] inner_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 88/ 82/ 84/ 0][0/1/0][ 2 0000 0840][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 90/ 84/ 89/ 0][0/1/0][ 840][0-0] Base1
+# 51> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 95/ 89/ 90/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 51> NEWLINE| NONE| PARENT_NOT_SET[ 96/ 90/ 1/ 0][0/0/0][ 0][1-0]
+# 52> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 8008 0400][0-0] {
+# 52> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][2-0]
+# 54> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 8000 0400][0-0] }
+# 54> SEMICOLON| CLASS| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 54> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
+# 56> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 70/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type { }
+# 56> NEWLINE| NONE| PARENT_NOT_SET[ 70/ 70/ 1/ 0][0/0/0][ 0][1-0]
+# 57> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 57> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 57> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 8 0040][0-0] typename
+# 57> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 2 0000 0040][0-0] ,
+# 57> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 8 0040][0-0] typename
+# 57> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 2 0000 0040][0-0] ...
+# 57> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 57> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
+# 58> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ a 0000][0-0] class
+# 58> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 58> TYPE| CLASS| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 0][0-0] c2
+# 58> NEWLINE| NONE| PARENT_NOT_SET[ 20/ 20/ 1/ 0][0/0/0][ 0][1-0]
+# 59> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] {
+# 59> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
+# 60> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c 0400][0-0] public
+# 60> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 2 0000 0400][0-0] :
+# 60> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][2-0]
+# 62> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 4/ 12/ 0][1/1/0][ c 0400][0-0] template
+# 62> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 12/ 13/ 0][1/1/0][ 2 0000 0440][0-0] <
+# 62> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 13/ 21/ 0][1/2/0][ a 0440][0-0] typename
+# 62> TYPE| NONE| PARENT_NOT_SET[ 19/ 22/ 23/ 1][1/2/0][ 440][0-0] T
+# 62> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 20/ 23/ 24/ 0][1/1/0][ 2 0000 0440][0-0] >
+# 62> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 24/ 4/ 0][1/1/0][ 400][1-0]
+# 63> STRUCT| TEMPLATE| PARENT_NOT_SET[ 1/ 4/ 10/ 0][1/1/0][ a 0400][0-0] struct
+# 63> TYPE| STRUCT| PARENT_NOT_SET[ 8/ 11/ 22/ 1][1/1/0][ 400][0-0] inner_class
+# 63> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 22/ 4/ 0][1/1/0][ 400][1-0]
+# 64> BRACE_OPEN| STRUCT| PARENT_NOT_SET[ 1/ 4/ 5/ 0][1/1/0][ 2 0000 0400][0-0] {
+# 64> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 5/ 7/ 0][2/2/0][ 402][1-0]
+# 65> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 7/ 13/ 0][2/2/0][ 8e 0402][0-0] static
+# 65> TYPE| NONE| PARENT_NOT_SET[ 16/ 14/ 25/ 1][2/2/0][ 80 0402][0-0] inner_class
+# 65> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 27/ 25/ 26/ 0][2/2/0][ 2 0000 0442][0-0] <
+# 65> TYPE| NONE| PARENT_NOT_SET[ 28/ 26/ 27/ 0][2/3/0][ 8 0442][0-0] T
+# 65> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 29/ 27/ 28/ 0][2/2/0][ 2 0000 0442][0-0] >
+# 65> PTR_TYPE| NONE| PARENT_NOT_SET[ 31/ 29/ 30/ 1][2/2/0][ 2 0088 0402][0-0] *
+# 65> WORD| NONE| PARENT_NOT_SET[ 32/ 30/ 43/ 0][2/2/0][ 308 0402][0-0] m_inner_class
+# 65> SEMICOLON| NONE| PARENT_NOT_SET[ 45/ 43/ 44/ 0][2/2/0][ 2 0000 0402][0-0] ;
+# 65> NEWLINE| NONE| PARENT_NOT_SET[ 46/ 44/ 4/ 0][2/2/0][ 402][1-0]
+# 66> BRACE_CLOSE| STRUCT| PARENT_NOT_SET[ 1/ 4/ 5/ 0][1/1/0][ 2 0000 0402][0-0] }
+# 66> SEMICOLON| STRUCT| PARENT_NOT_SET[ 2/ 5/ 6/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 66> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 6/ 1/ 0][1/1/0][ 400][1-0]
+# 67> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] }
+# 67> SEMICOLON| CLASS| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 67> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
+# 69> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 10/ 10/ 11/ 0][0/0/0][ 2 0008 0040][0-0] >
+# 69> TEMPLATE| NONE| PARENT_NOT_SET[ 12/ 12/ 20/ 1][0/0/0][ 8 0000][0-0] template
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/0/0][ 2 0008 0040][0-0] >
+# 69> STRUCT| TEMPLATE| PARENT_NOT_SET[ 23/ 23/ 29/ 1][0/0/0][ a 0000][0-0] struct
+# 69> WORD| NONE| PARENT_NOT_SET[ 30/ 30/ 40/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 69> TYPE| NONE| PARENT_NOT_SET[ 41/ 41/ 43/ 1][0/0/0][ 0][0-0] c2
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 44/ 44/ 47/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 48/ 48/ 50/ 0][0/0/0][ 2 0008 0000][0-0] ::
+# 69> TYPE| STRUCT| PARENT_NOT_SET[ 50/ 50/ 61/ 0][0/0/0][ 80 0000][0-0] inner_class
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 61/ 61/ 62/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 62/ 62/ 65/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 65/ 65/ 66/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> PTR_TYPE| NONE| PARENT_NOT_SET[ 67/ 67/ 68/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 69> TYPE| NONE| PARENT_NOT_SET[ 68/ 68/ 70/ 0][0/0/0][ 8 0000][0-0] c2
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 70/ 70/ 71/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 71/ 71/ 74/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 74/ 74/ 75/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 75/ 75/ 77/ 0][0/0/0][ 2 0008 0000][0-0] ::
+# 69> TYPE| NONE| PARENT_NOT_SET[ 77/ 77/ 88/ 0][0/0/0][ 0][0-0] inner_class
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 88/ 88/ 89/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 89/ 89/ 92/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 92/ 92/ 93/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 93/ 93/ 95/ 0][0/0/0][ 2 0008 0000][0-0] ::
+# 69> WORD| NONE| PARENT_NOT_SET[ 95/ 95/108/ 0][0/0/0][ 2300 0000][0-0] m_inner_class
+# 69> ASSIGN| NONE| PARENT_NOT_SET[109/109/110/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 69> WORD| NONE| PARENT_NOT_SET[111/111/118/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 69> SEMICOLON| STRUCT| PARENT_NOT_SET[118/118/119/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 69> NEWLINE| NONE| PARENT_NOT_SET[119/119/ 1/ 0][0/0/0][ 0][2-0]
+# 71> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 66/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type
+# 71> NEWLINE| NONE| PARENT_NOT_SET[ 66/ 66/ 1/ 0][0/0/0][ 0][1-0]
+# 72> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 72> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 72> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 8 0040][0-0] typename
+# 72> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 2 0000 0040][0-0] ,
+# 72> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 8 0040][0-0] typename
+# 72> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 2 0000 0040][0-0] ...
+# 72> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 72> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
+# 73> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ 1000 000a 0000][0-0] class
+# 73> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 1000 0002 0000][0-0] API_EXPORT
+# 73> TYPE| CLASS| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 1000 0000 0000][0-0] c2
+# 73> SEMICOLON| CLASS| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 73> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/0][ 0][2-0]
+# 75> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 68/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type : bases ... { } x, ...
+# 75> NEWLINE| NONE| PARENT_NOT_SET[ 68/ 68/ 1/ 0][0/0/0][ 0][1-0]
+# 76> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] class
+# 76> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 76> ATTRIBUTE| NONE| PARENT_NOT_SET[ 18/ 18/ 31/ 1][0/0/0][ 0][0-0] __attribute__
+# 76> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 76> PAREN_OPEN| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 76> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 47/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 76> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 76> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 48/ 48/ 49/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 76> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 76> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 76> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 8 0000][0-0] 4
+# 76> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 76> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 80 0000][0-0] c3
+# 76> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 63/ 1/ 0][0/0/0][ 0][1-0]
+# 77> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 2 0000 0800][0-0] :
+# 77> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e 0800][0-0] public
+# 77> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 77> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 77> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 77> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 77> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base2
+# 77> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 57/ 49/ 50/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 77> TYPE| NONE| PARENT_NOT_SET[ 58/ 50/ 53/ 0][0/1/0][ 8 0840][0-0] int
+# 77> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 61/ 53/ 54/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 77> COMMA| NONE| PARENT_NOT_SET[ 62/ 54/ 55/ 0][0/0/0][ 2 0008 0800][0-0] ,
+# 77> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 55/ 3/ 0][0/0/0][ 0][1-0]
+# 78> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 3/ 9/ 0][0/0/0][ a 0800][0-0] public
+# 78> TYPE| NONE| PARENT_NOT_SET[ 16/ 10/ 12/ 1][0/0/0][ 800][0-0] c2
+# 78> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 18/ 12/ 13/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 78> TYPE| NONE| PARENT_NOT_SET[ 19/ 13/ 16/ 0][0/1/0][ 8 0840][0-0] int
+# 78> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 22/ 16/ 17/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 78> DC_MEMBER| NONE| PARENT_NOT_SET[ 23/ 17/ 19/ 0][0/0/0][ 2 0008 0800][0-0] ::
+# 78> TYPE| NONE| PARENT_NOT_SET[ 25/ 19/ 30/ 0][0/0/0][ 800][0-0] inner_class
+# 78> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 36/ 30/ 31/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 78> TYPE| NONE| PARENT_NOT_SET[ 37/ 31/ 34/ 0][0/1/0][ 8 0840][0-0] int
+# 78> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 40/ 34/ 35/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 78> NEWLINE| NONE| PARENT_NOT_SET[ 41/ 35/ 1/ 0][0/0/0][ 0][1-0]
+# 79> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0008 0400][0-0] {
+# 79> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
+# 80> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c 0400][0-0] public
+# 80> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 2 0000 0400][0-0] :
+# 80> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][1-0]
+# 81> FUNC_CLASS_DEF| NONE| PARENT_NOT_SET[ 1/ 4/ 6/ 0][1/1/0][ c 0400][0-0] c3
+# 81> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 3/ 6/ 7/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> TYPE| NONE| PARENT_NOT_SET[ 4/ 7/ 10/ 0][1/2/0][ 208a 0510][0-0] int
+# 81> WORD| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 1][1/2/0][ 2100 0510][0-0] x
+# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 10/ 13/ 14/ 1][1/2/0][ 2 0000 0510][0-0] =
+# 81> NUMBER| NONE| PARENT_NOT_SET[ 12/ 15/ 16/ 1][1/2/0][ 8 0510][0-0] 0
+# 81> COMMA| NONE| PARENT_NOT_SET[ 13/ 16/ 17/ 0][1/2/0][ 2 0000 0510][0-0] ,
+# 81> TYPE| NONE| PARENT_NOT_SET[ 15/ 18/ 21/ 1][1/2/0][ 208a 0510][0-0] int
+# 81> WORD| NONE| PARENT_NOT_SET[ 19/ 22/ 23/ 1][1/2/0][ 2100 0510][0-0] y
+# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 21/ 24/ 25/ 1][1/2/0][ 2 0000 0510][0-0] =
+# 81> NUMBER| NONE| PARENT_NOT_SET[ 23/ 26/ 27/ 1][1/2/0][ 8 0510][0-0] 0
+# 81> COMMA| NONE| PARENT_NOT_SET[ 24/ 27/ 28/ 0][1/2/0][ 2 0000 0510][0-0] ,
+# 81> TYPE| NONE| PARENT_NOT_SET[ 26/ 29/ 32/ 1][1/2/0][ 208a 0510][0-0] int
+# 81> WORD| NONE| PARENT_NOT_SET[ 30/ 33/ 34/ 1][1/2/0][ 2100 0510][0-0] z
+# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 32/ 35/ 36/ 1][1/2/0][ 2 0000 0510][0-0] =
+# 81> NUMBER| NONE| PARENT_NOT_SET[ 34/ 37/ 38/ 1][1/2/0][ 8 0510][0-0] 0
+# 81> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 35/ 38/ 39/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> CONSTR_COLON| NONE| PARENT_NOT_SET[ 37/ 40/ 41/ 1][1/1/0][ 2 0000 0500][0-0] :
+# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 39/ 42/ 45/ 1][1/1/0][ c 0500][0-0] m_x
+# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 42/ 45/ 46/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> WORD| NONE| PARENT_NOT_SET[ 43/ 46/ 47/ 0][1/2/0][ 8 0510][0-0] x
+# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 44/ 47/ 48/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> COMMA| NONE| PARENT_NOT_SET[ 45/ 48/ 49/ 0][1/1/0][ 2 0000 0500][0-0] ,
+# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 47/ 50/ 53/ 1][1/1/0][ 8 0500][0-0] m_y
+# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 50/ 53/ 54/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> WORD| NONE| PARENT_NOT_SET[ 51/ 54/ 55/ 0][1/2/0][ 8 0510][0-0] y
+# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 52/ 55/ 56/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> COMMA| NONE| PARENT_NOT_SET[ 53/ 56/ 57/ 0][1/1/0][ 2 0000 0500][0-0] ,
+# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 55/ 58/ 61/ 1][1/1/0][ 8 0500][0-0] m_z
+# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 58/ 61/ 62/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> WORD| NONE| PARENT_NOT_SET[ 59/ 62/ 63/ 0][1/2/0][ 8 0510][0-0] z
+# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 60/ 63/ 64/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 62/ 65/ 66/ 1][1/1/0][ 2 8000 0400][0-0] {
+# 81> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 67/ 0/ 0][1/1/0][ 400][1-0]
+# 81> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 1/ 67/ 68/ 1][1/1/0][ 2 8000 0400][0-0] }
+# 81> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 68/ 4/ 0][1/1/0][ 400][2-0]
+# 83> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 83> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_x
+# 83> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 83> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 84> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 84> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_y
+# 84> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 84> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 85> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 85> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_z
+# 85> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 85> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 1/ 0][1/1/0][ 400][1-0]
+# 86> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] }
+# 86> WORD| NONE| PARENT_NOT_SET[ 3/ 3/ 6/ 1][0/0/0][ 70c 0000][0-0] c31
+# 86> COMMA| NONE| PARENT_NOT_SET[ 6/ 6/ 7/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 8/ 8/ 9/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 86> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 0][0/0/0][ 2508 0000][0-0] c32
+# 86> ASSIGN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 86> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 22/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 86> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 86> WORD| NONE| PARENT_NOT_SET[ 25/ 25/ 28/ 0][0/0/0][ 508 0000][0-0] c33
+# 86> TSQUARE| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 0][0/0/0][ 2 0000 0000][0-0] []
+# 86> ASSIGN| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 86> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 33/ 33/ 34/ 1][0/0/0][ 2 4008 0000][0-0] {
+# 86> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 42/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 86> COMMA| NONE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 86> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 51/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 86> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 52/ 52/ 53/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 86> COMMA| NONE| PARENT_NOT_SET[ 53/ 53/ 54/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> WORD| NONE| PARENT_NOT_SET[ 55/ 55/ 58/ 1][0/0/0][ 2508 0000][0-0] c34
+# 86> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/0/0][ 2 4000 0000][0-0] {
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 60/ 60/ 61/ 1][1/1/0][ 400c 0000][0-0] 0
+# 86> COMMA| NONE| PARENT_NOT_SET[ 61/ 61/ 62/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 63/ 63/ 64/ 1][1/1/0][ 4008 0000][0-0] 1
+# 86> COMMA| NONE| PARENT_NOT_SET[ 64/ 64/ 65/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 66/ 66/ 67/ 1][1/1/0][ 4008 0000][0-0] 2
+# 86> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 2 4000 0000][0-0] }
+# 86> COMMA| NONE| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 70/ 70/ 71/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 86> QUALIFIER| NONE| PARENT_NOT_SET[ 72/ 72/ 77/ 1][0/0/0][ a 0000][0-0] const
+# 86> FUNC_CALL| NONE| PARENT_NOT_SET[ 78/ 78/ 81/ 1][0/0/0][ 500 0000][0-0] c35
+# 86> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 81/ 81/ 82/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 86> WORD| NONE| PARENT_NOT_SET[ 82/ 82/ 89/ 0][0/1/0][ 8 0010][0-0] nullptr
+# 86> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 89/ 89/ 90/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 86> COMMA| NONE| PARENT_NOT_SET[ 90/ 90/ 91/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> FUNC_CALL| NONE| PARENT_NOT_SET[ 92/ 92/ 95/ 1][0/0/0][ 508 0000][0-0] c16
+# 86> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 95/ 95/ 96/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 96/ 96/ 97/ 0][0/1/0][ 8 0010][0-0] 0
+# 86> COMMA| NONE| PARENT_NOT_SET[ 97/ 97/ 98/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 99/ 99/100/ 1][0/1/0][ 8 0010][0-0] 1
+# 86> COMMA| NONE| PARENT_NOT_SET[100/100/101/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[102/102/103/ 1][0/1/0][ 8 0010][0-0] 2
+# 86> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[103/103/104/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 86> SEMICOLON| CLASS| PARENT_NOT_SET[104/104/105/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 86> NEWLINE| NONE| PARENT_NOT_SET[105/105/ 1/ 0][0/0/0][ 0][2-0]
+# 88> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 52/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type x, ...
+# 88> NEWLINE| NONE| PARENT_NOT_SET[ 52/ 52/ 1/ 0][0/0/0][ 0][1-0]
+# 89> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] class
+# 89> ATTRIBUTE| NONE| PARENT_NOT_SET[ 7/ 7/ 20/ 1][0/0/0][ 0][0-0] __attribute__
+# 89> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> PAREN_OPEN| NONE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 89> WORD| NONE| PARENT_NOT_SET[ 22/ 22/ 36/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 89> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 89> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 37/ 37/ 38/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 89> WORD| NONE| PARENT_NOT_SET[ 39/ 39/ 49/ 1][0/0/0][ e 0000][0-0] API_EXPORT
+# 89> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 89> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 8 0000][0-0] 4
+# 89> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 89> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 82 0000][0-0] c3
+# 89> WORD| NONE| PARENT_NOT_SET[ 64/ 64/ 67/ 1][0/0/0][ 300 0000][0-0] c41
+# 89> COMMA| NONE| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[ 69/ 69/ 70/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 89> WORD| NONE| PARENT_NOT_SET[ 70/ 70/ 73/ 0][0/0/0][ 2108 0000][0-0] c42
+# 89> ASSIGN| NONE| PARENT_NOT_SET[ 74/ 74/ 75/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 89> WORD| NONE| PARENT_NOT_SET[ 76/ 76/ 79/ 1][0/0/0][ 8 0000][0-0] c32
+# 89> QUESTION| NONE| COMMA[ 80/ 80/ 81/ 1][0/0/0][ 1 0002 0000 0000][0-0] ?
+# 89> WORD| NONE| PARENT_NOT_SET[ 82/ 82/ 85/ 1][0/0/0][ 1 0000 0008 0000][0-0] c32
+# 89> COND_COLON| NONE| QUESTION[ 86/ 86/ 87/ 1][0/0/0][ 1 0002 0000 0000][0-0] :
+# 89> WORD| NONE| PARENT_NOT_SET[ 88/ 88/ 95/ 1][0/0/0][ 1 0000 000c 0000][0-0] nullptr
+# 89> COMMA| NONE| PARENT_NOT_SET[ 95/ 95/ 96/ 0][0/0/0][ 1 0002 0000 0000][0-0] ,
+# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[ 97/ 97/ 98/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 89> WORD| NONE| PARENT_NOT_SET[ 98/ 98/101/ 0][0/0/0][ 108 0000][0-0] c43
+# 89> TSQUARE| NONE| PARENT_NOT_SET[101/101/103/ 0][0/0/0][ 2 0000 0000][0-0] []
+# 89> ASSIGN| NONE| PARENT_NOT_SET[104/104/105/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 89> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[106/106/107/ 1][0/0/0][ 2 4008 0000][0-0] {
+# 89> WORD| NONE| PARENT_NOT_SET[108/108/115/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 89> COMMA| NONE| PARENT_NOT_SET[115/115/116/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 89> WORD| NONE| PARENT_NOT_SET[117/117/124/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 89> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[125/125/126/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 89> COMMA| NONE| PARENT_NOT_SET[126/126/127/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> WORD| NONE| PARENT_NOT_SET[128/128/131/ 1][0/0/0][ 2108 0000][0-0] c44
+# 89> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[131/131/132/ 0][0/0/0][ 2 4000 0000][0-0] {
+# 89> NUMBER| NONE| PARENT_NOT_SET[133/133/134/ 1][1/1/0][ 400c 0000][0-0] 0
+# 89> COMMA| NONE| PARENT_NOT_SET[134/134/135/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[136/136/137/ 1][1/1/0][ 4008 0000][0-0] 1
+# 89> COMMA| NONE| PARENT_NOT_SET[137/137/138/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[139/139/140/ 1][1/1/0][ 4008 0000][0-0] 2
+# 89> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[140/140/141/ 0][0/0/0][ 2 4000 0000][0-0] }
+# 89> COMMA| NONE| PARENT_NOT_SET[141/141/142/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[143/143/144/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 89> QUALIFIER| NONE| PARENT_NOT_SET[145/145/150/ 1][0/0/0][ a 0000][0-0] const
+# 89> FUNC_CALL| NONE| PARENT_NOT_SET[151/151/154/ 1][0/0/0][ 100 0000][0-0] c45
+# 89> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[154/154/155/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> WORD| NONE| PARENT_NOT_SET[155/155/162/ 0][0/1/0][ 8 0010][0-0] nullptr
+# 89> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[162/162/163/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 89> COMMA| NONE| PARENT_NOT_SET[163/163/164/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> FUNC_CALL| NONE| PARENT_NOT_SET[165/165/168/ 1][0/0/0][ 108 0000][0-0] c46
+# 89> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[168/168/169/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> NUMBER| NONE| PARENT_NOT_SET[169/169/170/ 0][0/1/0][ 8 0010][0-0] 0
+# 89> COMMA| NONE| PARENT_NOT_SET[170/170/171/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[172/172/173/ 1][0/1/0][ 8 0010][0-0] 1
+# 89> COMMA| NONE| PARENT_NOT_SET[173/173/174/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[175/175/176/ 1][0/1/0][ 8 0010][0-0] 2
+# 89> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[176/176/177/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 89> SEMICOLON| CLASS| PARENT_NOT_SET[177/177/178/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 89> NEWLINE| NONE| PARENT_NOT_SET[178/178/ 1/ 0][0/0/0][ 0][2-0]
+# 91> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 68/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type : bases ... { } x, ...
+# 91> NEWLINE| NONE| PARENT_NOT_SET[ 68/ 68/ 1/ 0][0/0/0][ 0][1-0]
+# 92> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] class
+# 92> FUNC_CALL| NONE| PARENT_NOT_SET[ 7/ 7/ 14/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 92> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 92> NUMBER| NONE| PARENT_NOT_SET[ 15/ 15/ 16/ 0][0/1/0][ 8 0010][0-0] 4
+# 92> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 16/ 16/ 17/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 92> WORD| NONE| PARENT_NOT_SET[ 18/ 18/ 28/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 92> ATTRIBUTE| NONE| PARENT_NOT_SET[ 29/ 29/ 42/ 1][0/0/0][ 0][0-0] __attribute__
+# 92> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 92> PAREN_OPEN| NONE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 92> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 58/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 92> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 92> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 92> NEWLINE| NONE| PARENT_NOT_SET[ 60/ 60/ 1/ 0][0/0/0][ 0][1-0]
+# 93> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 2 0000 0800][0-0] :
+# 93> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e 0800][0-0] public
+# 93> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 93> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 93> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 93> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 93> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base1
+# 93> NEWLINE| NONE| PARENT_NOT_SET[ 57/ 49/ 1/ 0][0/0/0][ 0][1-0]
+# 94> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0000][0-0] {
+# 94> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
+# 95> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c 0400][0-0] public
+# 95> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 2 0000 0400][0-0] :
+# 95> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][1-0]
+# 96> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 96> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_x
+# 96> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 96> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 97> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 97> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_y
+# 97> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 97> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 98> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 98> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_z
+# 98> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 98> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 1/ 0][1/1/0][ 400][1-0]
+# 99> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] }
+# 99> WORD| NONE| PARENT_NOT_SET[ 3/ 3/ 6/ 1][0/0/0][ 70c 0000][0-0] c51
+# 99> COMMA| NONE| PARENT_NOT_SET[ 6/ 6/ 7/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 99> PTR_TYPE| CLASS| PARENT_NOT_SET[ 8/ 8/ 9/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 99> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 0][0/0/0][ 2508 0000][0-0] c52
+# 99> ASSIGN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 99> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 22/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 99> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 99> PTR_TYPE| CLASS| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 99> WORD| NONE| PARENT_NOT_SET[ 25/ 25/ 28/ 0][0/0/0][ 508 0000][0-0] c53
+# 99> TSQUARE| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 0][0/0/0][ 2 0000 0000][0-0] []
+# 99> ASSIGN| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 99> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 33/ 33/ 34/ 1][0/0/0][ 2 4008 0000][0-0] {
+# 99> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 42/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 99> COMMA| NONE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 99> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 51/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 99> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 52/ 52/ 53/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 99> SEMICOLON| CLASS| PARENT_NOT_SET[ 53/ 53/ 54/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 99> NEWLINE| NONE| PARENT_NOT_SET[ 54/ 54/ 1/ 0][0/0/0][ 0][3-0]
+# 102> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 44/ 0][0/0/0][ 0][0-0] // enum type : integral_type { ... } x, ...
+# 102> NEWLINE| NONE| PARENT_NOT_SET[ 44/ 44/ 1/ 0][0/0/0][ 0][1-0]
+# 103> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 103> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 80 0000][0-0] e1
+# 103> ENUM_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 103> TYPE| ENUM_COLON| PARENT_NOT_SET[ 11/ 11/ 15/ 1][0/0/0][ e 0000][0-0] long
+# 103> TYPE| ENUM_COLON| PARENT_NOT_SET[ 16/ 16/ 20/ 1][0/0/0][ 0][0-0] long
+# 103> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 21/ 21/ 22/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 103> WORD| NONE| PARENT_NOT_SET[ 23/ 23/ 25/ 1][1/1/0][ 400c 0004][0-0] a1
+# 103> COMMA| NONE| PARENT_NOT_SET[ 25/ 25/ 26/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 29/ 1][1/1/0][ 4008 0004][0-0] b1
+# 103> COMMA| NONE| PARENT_NOT_SET[ 29/ 29/ 30/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 31/ 31/ 33/ 1][1/1/0][ 4008 0004][0-0] d1
+# 103> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 34/ 34/ 35/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 103> WORD| NONE| PARENT_NOT_SET[ 36/ 36/ 39/ 1][0/0/0][ 70c 0000][0-0] e11
+# 103> COMMA| NONE| PARENT_NOT_SET[ 39/ 39/ 40/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 41/ 41/ 44/ 1][0/0/0][ 508 0000][0-0] e12
+# 103> COMMA| NONE| PARENT_NOT_SET[ 44/ 44/ 45/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 46/ 46/ 49/ 1][0/0/0][ 508 0000][0-0] e13
+# 103> SEMICOLON| ENUM| PARENT_NOT_SET[ 49/ 49/ 50/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 103> NEWLINE| NONE| PARENT_NOT_SET[ 50/ 50/ 1/ 0][0/0/0][ 0][2-0]
+# 105> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 37/ 0][0/0/0][ 0][0-0] // enum type : integral_type { ... }
+# 105> NEWLINE| NONE| PARENT_NOT_SET[ 37/ 37/ 1/ 0][0/0/0][ 0][1-0]
+# 106> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 106> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 0][0-0] e2
+# 106> ENUM_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 106> TYPE| ENUM_COLON| PARENT_NOT_SET[ 11/ 11/ 19/ 1][0/0/0][ e 0000][0-0] unsigned
+# 106> TYPE| ENUM_COLON| PARENT_NOT_SET[ 20/ 20/ 23/ 1][0/0/0][ 0][0-0] int
+# 106> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 106> WORD| NONE| PARENT_NOT_SET[ 26/ 26/ 28/ 1][1/1/0][ 400c 0004][0-0] a2
+# 106> COMMA| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 106> WORD| NONE| PARENT_NOT_SET[ 30/ 30/ 32/ 1][1/1/0][ 4008 0004][0-0] b2
+# 106> COMMA| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 106> WORD| NONE| PARENT_NOT_SET[ 34/ 34/ 36/ 1][1/1/0][ 4008 0004][0-0] d2
+# 106> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 37/ 37/ 38/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 106> SEMICOLON| ENUM| PARENT_NOT_SET[ 38/ 38/ 39/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 106> NEWLINE| NONE| PARENT_NOT_SET[ 39/ 39/ 1/ 0][0/0/0][ 0][2-0]
+# 108> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 29/ 0][0/0/0][ 0][0-0] // enum type : integral_type
+# 108> NEWLINE| NONE| PARENT_NOT_SET[ 29/ 29/ 1/ 0][0/0/0][ 0][1-0]
+# 109> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ 1000 000e 0000][0-0] enum
+# 109> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 1000 0000 0000][0-0] e3
+# 109> ENUM_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 109> TYPE| ENUM_COLON| PARENT_NOT_SET[ 11/ 11/ 16/ 1][0/0/0][ c 0000][0-0] short
+# 109> SEMICOLON| ENUM| PARENT_NOT_SET[ 16/ 16/ 17/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 109> NEWLINE| NONE| PARENT_NOT_SET[ 17/ 17/ 1/ 0][0/0/0][ 0][2-0]
+# 111> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 20/ 0][0/0/0][ 0][0-0] // enum type x, ...
+# 111> NEWLINE| NONE| PARENT_NOT_SET[ 20/ 20/ 1/ 0][0/0/0][ 0][1-0]
+# 112> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 112> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 82 0000][0-0] e3
+# 112> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 1][0/0/0][ 300 0000][0-0] e31
+# 112> COMMA| NONE| PARENT_NOT_SET[ 12/ 12/ 13/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 112> WORD| NONE| PARENT_NOT_SET[ 14/ 14/ 17/ 1][0/0/0][ 108 0000][0-0] e32
+# 112> SEMICOLON| ENUM| PARENT_NOT_SET[ 17/ 17/ 18/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 112> NEWLINE| NONE| PARENT_NOT_SET[ 18/ 18/ 1/ 0][0/0/0][ 0][2-0]
+# 114> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 50/ 0][0/0/0][ 0][0-0] // enum class type : integral_type { ... } x, ...
+# 114> NEWLINE| NONE| PARENT_NOT_SET[ 50/ 50/ 1/ 0][0/0/0][ 0][1-0]
+# 115> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 115> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 2 0000][0-0] class
+# 115> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 80 0000][0-0] e4
+# 115> ENUM_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 115> TYPE| ENUM_COLON| PARENT_NOT_SET[ 17/ 17/ 21/ 1][0/0/0][ e 0000][0-0] long
+# 115> TYPE| ENUM_COLON| PARENT_NOT_SET[ 22/ 22/ 26/ 1][0/0/0][ 0][0-0] long
+# 115> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 115> WORD| NONE| PARENT_NOT_SET[ 29/ 29/ 31/ 1][1/1/0][ 400c 0004][0-0] a4
+# 115> COMMA| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 35/ 1][1/1/0][ 4008 0004][0-0] b4
+# 115> COMMA| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 39/ 1][1/1/0][ 4008 0004][0-0] d4
+# 115> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 40/ 40/ 41/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 115> WORD| NONE| PARENT_NOT_SET[ 42/ 42/ 45/ 1][0/0/0][ 70c 0000][0-0] e41
+# 115> COMMA| NONE| PARENT_NOT_SET[ 45/ 45/ 46/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 47/ 47/ 50/ 1][0/0/0][ 508 0000][0-0] e42
+# 115> COMMA| NONE| PARENT_NOT_SET[ 50/ 50/ 51/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 52/ 52/ 55/ 1][0/0/0][ 508 0000][0-0] e43
+# 115> COMMA| NONE| PARENT_NOT_SET[ 55/ 55/ 56/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 57/ 57/ 60/ 1][0/0/0][ 508 0000][0-0] e44
+# 115> SEMICOLON| ENUM| PARENT_NOT_SET[ 60/ 60/ 61/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 115> NEWLINE| NONE| PARENT_NOT_SET[ 61/ 61/ 1/ 0][0/0/0][ 0][2-0]
+# 117> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 43/ 0][0/0/0][ 0][0-0] // enum class type : integral_type { ... }
+# 117> NEWLINE| NONE| PARENT_NOT_SET[ 43/ 43/ 1/ 0][0/0/0][ 0][1-0]
+# 118> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 118> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 2 0000][0-0] class
+# 118> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 0][0-0] e5
+# 118> ENUM_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 118> TYPE| ENUM_COLON| PARENT_NOT_SET[ 17/ 17/ 25/ 1][0/0/0][ e 0000][0-0] unsigned
+# 118> TYPE| ENUM_COLON| PARENT_NOT_SET[ 26/ 26/ 29/ 1][0/0/0][ 0][0-0] int
+# 118> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 30/ 30/ 31/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 118> WORD| NONE| PARENT_NOT_SET[ 32/ 32/ 34/ 1][1/1/0][ 400c 0004][0-0] a5
+# 118> COMMA| NONE| PARENT_NOT_SET[ 34/ 34/ 35/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 118> WORD| NONE| PARENT_NOT_SET[ 36/ 36/ 38/ 1][1/1/0][ 4008 0004][0-0] b5
+# 118> COMMA| NONE| PARENT_NOT_SET[ 38/ 38/ 39/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 118> WORD| NONE| PARENT_NOT_SET[ 40/ 40/ 42/ 1][1/1/0][ 4008 0004][0-0] d5
+# 118> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 43/ 43/ 44/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 118> SEMICOLON| ENUM| PARENT_NOT_SET[ 44/ 44/ 45/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 118> NEWLINE| NONE| PARENT_NOT_SET[ 45/ 45/ 1/ 0][0/0/0][ 0][2-0]
+# 120> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 35/ 0][0/0/0][ 0][0-0] // enum class type : integral_type
+# 120> NEWLINE| NONE| PARENT_NOT_SET[ 35/ 35/ 1/ 0][0/0/0][ 0][1-0]
+# 121> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ 1000 000e 0000][0-0] enum
+# 121> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 1000 0002 0000][0-0] class
+# 121> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 1000 0000 0000][0-0] e6
+# 121> ENUM_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 121> TYPE| ENUM_COLON| PARENT_NOT_SET[ 17/ 17/ 22/ 1][0/0/0][ c 0000][0-0] short
+# 121> SEMICOLON| ENUM| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 121> NEWLINE| NONE| PARENT_NOT_SET[ 23/ 23/ 1/ 0][0/0/0][ 0][2-0]
+# 123> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 19/ 0][0/0/0][ 0][0-0] // enum class type
+# 123> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 19/ 1/ 0][0/0/0][ 0][1-0]
+# 124> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ 1000 000e 0000][0-0] enum
+# 124> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 1000 0002 0000][0-0] class
+# 124> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 1000 0000 0000][0-0] e7
+# 124> SEMICOLON| ENUM| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 124> NEWLINE| NONE| PARENT_NOT_SET[ 15/ 15/ 1/ 0][0/0/0][ 0][2-0]
+# 126> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 39/ 0][0/0/0][ 0][0-0] // enum : integral_type { ... } x, ...
+# 126> NEWLINE| NONE| PARENT_NOT_SET[ 39/ 39/ 1/ 0][0/0/0][ 0][1-0]
+# 127> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c 0000][0-0] enum
+# 127> ENUM_COLON| ENUM| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 127> TYPE| ENUM_COLON| PARENT_NOT_SET[ 8/ 8/ 12/ 1][0/0/0][ e 0000][0-0] long
+# 127> TYPE| ENUM_COLON| PARENT_NOT_SET[ 13/ 13/ 17/ 1][0/0/0][ 0][0-0] long
+# 127> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 18/ 18/ 19/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 127> WORD| NONE| PARENT_NOT_SET[ 20/ 20/ 22/ 1][1/1/0][ 400c 0004][0-0] a8
+# 127> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 127> WORD| NONE| PARENT_NOT_SET[ 24/ 24/ 26/ 1][1/1/0][ 4008 0004][0-0] b8
+# 127> COMMA| NONE| PARENT_NOT_SET[ 26/ 26/ 27/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 127> WORD| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 1][1/1/0][ 4008 0004][0-0] c8
+# 127> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 127> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 36/ 1][0/0/0][ 70c 0000][0-0] e81
+# 127> COMMA| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 127> WORD| NONE| PARENT_NOT_SET[ 38/ 38/ 41/ 1][0/0/0][ 508 0000][0-0] e82
+# 127> SEMICOLON| ENUM| PARENT_NOT_SET[ 41/ 41/ 42/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 127> NEWLINE| NONE| PARENT_NOT_SET[ 42/ 42/ 1/ 0][0/0/0][ 0][2-0]
+# 129> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 23/ 0][0/0/0][ 0][0-0] // enum { ... } x, ...
+# 129> NEWLINE| NONE| PARENT_NOT_SET[ 23/ 23/ 1/ 0][0/0/0][ 0][1-0]
+# 130> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c 0000][0-0] enum
+# 130> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 130> WORD| NONE| PARENT_NOT_SET[ 8/ 8/ 10/ 1][1/1/0][ 400c 0004][0-0] a9
+# 130> COMMA| NONE| PARENT_NOT_SET[ 10/ 10/ 11/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 130> WORD| NONE| PARENT_NOT_SET[ 12/ 12/ 14/ 1][1/1/0][ 4008 0004][0-0] b9
+# 130> COMMA| NONE| PARENT_NOT_SET[ 14/ 14/ 15/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 130> WORD| NONE| PARENT_NOT_SET[ 16/ 16/ 18/ 1][1/1/0][ 4008 0004][0-0] c9
+# 130> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 19/ 19/ 20/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 130> WORD| NONE| PARENT_NOT_SET[ 21/ 21/ 24/ 1][0/0/0][ 70c 0000][0-0] e91
+# 130> COMMA| NONE| PARENT_NOT_SET[ 24/ 24/ 25/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 130> WORD| NONE| PARENT_NOT_SET[ 26/ 26/ 29/ 1][0/0/0][ 508 0000][0-0] e92
+# 130> SEMICOLON| ENUM| PARENT_NOT_SET[ 29/ 29/ 30/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 130> NEWLINE| NONE| PARENT_NOT_SET[ 30/ 30/ 1/ 0][0/0/0][ 0][2-0]
+# 132> UNION| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] union
+# 132> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 132> TYPE| UNION| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 80 0000][0-0] u1
+# 132> BRACE_OPEN| UNION| PARENT_NOT_SET[ 21/ 21/ 22/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 132> TYPE| NONE| PARENT_NOT_SET[ 23/ 23/ 26/ 1][1/1/0][ 408e 0000][0-0] int
+# 132> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][1/1/0][ 4300 0000][0-0] x
+# 132> SEMICOLON| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][1/1/0][ 2 4000 0000][0-0] ;
+# 132> TYPE| NONE| PARENT_NOT_SET[ 30/ 30/ 34/ 1][1/1/0][ 408e 0000][0-0] long
+# 132> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 1][1/1/0][ 4300 0000][0-0] y
+# 132> SEMICOLON| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][1/1/0][ 2 4000 0000][0-0] ;
+# 132> BRACE_CLOSE| UNION| PARENT_NOT_SET[ 38/ 38/ 39/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 132> WORD| NONE| PARENT_NOT_SET[ 40/ 40/ 43/ 1][0/0/0][ 70c 0000][0-0] u11
+# 132> COMMA| NONE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 132> PTR_TYPE| UNION| PARENT_NOT_SET[ 45/ 45/ 46/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 132> WORD| NONE| PARENT_NOT_SET[ 46/ 46/ 49/ 0][0/0/0][ 2508 0000][0-0] u12
+# 132> ASSIGN| NONE| PARENT_NOT_SET[ 50/ 50/ 51/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 132> WORD| NONE| PARENT_NOT_SET[ 52/ 52/ 59/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 132> COMMA| NONE| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 132> PTR_TYPE| UNION| PARENT_NOT_SET[ 61/ 61/ 62/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 132> WORD| NONE| PARENT_NOT_SET[ 62/ 62/ 65/ 0][0/0/0][ 2508 0000][0-0] u13
+# 132> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 65/ 65/ 66/ 0][0/0/0][ 2 4000 0000][0-0] {
+# 132> NUMBER| NONE| PARENT_NOT_SET[ 66/ 66/ 67/ 0][1/1/0][ 400c 0000][0-0] 0
+# 132> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 2 4000 0000][0-0] }
+# 132> SEMICOLON| UNION| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 132> NEWLINE| NONE| PARENT_NOT_SET[ 69/ 69/ 1/ 0][0/0/0][ 0][2-0]
+# 134> UNION| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] union
+# 134> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 134> TYPE| UNION| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 82 0000][0-0] u1
+# 134> WORD| NONE| PARENT_NOT_SET[ 21/ 21/ 24/ 1][0/0/0][ 300 0000][0-0] u21
+# 134> SEMICOLON| UNION| PARENT_NOT_SET[ 24/ 24/ 25/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 134> NEWLINE| NONE| PARENT_NOT_SET[ 25/ 25/ 1/ 0][0/0/0][ 0][1-0]
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/copyright-header.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/copyright-header.cpp
new file mode 100644
index 00000000..348902a5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/copyright-header.cpp
@@ -0,0 +1,18 @@
+// Copyright this year
+
+struct TelegramIndex
+{
+ TelegramIndex(const char* pN, unsigned long nI) :
+ pTelName(pN),
+ nTelIndex(n)
+ {
+ }
+
+ ~TelegramIndex()
+ {
+ }
+
+ const char* const pTelName;
+ unsigned long nTelIndex;
+};
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/help.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/help.txt
new file mode 100644
index 00000000..a5d7d109
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/help.txt
@@ -0,0 +1,85 @@
+Usage:
+uncrustify [options] [files ...]
+
+If no input files are specified, the input is read from stdin
+If reading from stdin, you should specify the language using -l
+or specify a filename using --assume for automatic language detection.
+
+If -F is used or files are specified on the command line,
+the output filename is 'prefix/filename' + suffix
+
+When reading from stdin or doing a single file via the '-f' option,
+the output is dumped to stdout, unless redirected with -o FILE.
+
+Errors are always dumped to stderr
+
+The '-f' and '-o' options may not be used with '-F' or '--replace'.
+The '--prefix' and '--suffix' options may not be used with '--replace'.
+
+Basic Options:
+ -c CFG : Use the config file CFG, or defaults if CFG is set to '-'.
+ -f FILE : Process the single file FILE (output to stdout, use with -o).
+ -o FILE : Redirect stdout to FILE.
+ -F FILE : Read files to process from FILE, one filename per line (- is stdin).
+ --check : Do not output the new text, instead verify that nothing changes when
+ the file(s) are processed.
+ The status of every file is printed to stderr.
+ The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.
+ files : Files to process (can be combined with -F).
+ --suffix SFX : Append SFX to the output filename. The default is '.uncrustify'
+ --prefix PFX : Prepend PFX to the output filename path.
+ --replace : Replace source files (creates a backup).
+ --no-backup : Do not create backup and md5 files. Useful if files are under source control.
+ --if-changed : Write to stdout (or create output FILE) only if a change was detected.
+ -l : Language override: C, CPP, D, CS, JAVA, PAWN, OC, OC+, VALA.
+ -t : Load a file with types (usually not needed).
+ -q : Quiet mode - no output on stderr (-L will override).
+ --frag : Code fragment, assume the first line is indented correctly.
+ --assume FN : Uses the filename FN for automatic language detection if reading
+ from stdin unless -l is specified.
+
+Config/Help Options:
+ -h -? --help --usage : Print this message and exit.
+ --version : Print the version and exit.
+ --count-options : Print the number of available options and exit.
+ --show-config : Print out option documentation and exit.
+ --update-config : Output a new config file. Use with -o FILE.
+ --update-config-with-doc : Output a new config file. Use with -o FILE.
+ --universalindent : Output a config file for Universal Indent GUI.
+ --detect : Detects the config from a source file. Use with '-f FILE'.
+ Detection is fairly limited.
+ --set <option>=<value> : Sets a new value to a config option.
+
+Debug Options:
+ -p FILE : Dump debug info into FILE, or to stdout if FILE is set to '-'.
+ Must be used in combination with '-f FILE'
+ -ds FILE : Dump parsing info at various moments of the formatting process.
+ --dump-steps FILE This creates a series of files named 'FILE_nnn.log', each
+ corresponding to a formatting step in uncrustify.
+ The file 'FILE_000.log' lists the formatting options in use.
+ Must be used in combination with '-f FILE'
+ -L SEV : Set the log severity (see log_levels.h; note 'A' = 'all')
+ -s : Show the log severity in the logs.
+ --decode : Decode remaining args (chunk flags) and exit.
+ --tracking space:FILE : Prepare space tracking information for debugging.
+ --tracking nl:FILE : Prepare newline tracking information for debugging.
+ --tracking start:FILE : Prepare start of statement tracking information for debugging.
+ Cannot be used with the -o option'
+
+Usage Examples
+cat foo.d | uncrustify -q -c my.cfg -l d
+uncrustify -c my.cfg -f foo.d
+uncrustify -c my.cfg -f foo.d -L0-2,20-23,51
+uncrustify -c my.cfg -f foo.d -o foo.d
+uncrustify -c my.cfg -f foo.d -o foo.d -ds dump
+uncrustify -c my.cfg foo.d
+uncrustify -c my.cfg --replace foo.d
+uncrustify -c my.cfg --no-backup foo.d
+uncrustify -c my.cfg --prefix=out -F files.txt
+
+Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable
+ processing of parts of the source file (these can be overridden with
+ enable_processing_cmt and disable_processing_cmt).
+
+There are currently x options and minimal documentation.
+Try UniversalIndentGUI and good luck.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/in_fcn_def.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/in_fcn_def.txt
new file mode 100644
index 00000000..95d072a7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/in_fcn_def.txt
@@ -0,0 +1,62 @@
+
+# option(s) with 'not default' value: 0
+#
+# -=====-
+# number of loops = 0
+# -=====-
+# language = CPP
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flags Nl Text
+# 1> TYPE| FUNC_VAR| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c 0000][0-0] void
+# 1> TPAREN_OPEN| FUNC_VAR| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 2 0300 0000][0-0] (
+# 1> PTR_TYPE| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][0/1/0][ 2 0008 0000][0-0] *
+# 1> FUNC_VAR| NONE| PARENT_NOT_SET[ 8/ 8/ 13/ 0][0/1/0][ 308 0000][0-0] fnPtr
+# 1> TPAREN_CLOSE| FUNC_VAR| PARENT_NOT_SET[ 13/ 13/ 14/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 1> FPAREN_OPEN| FUNC_PROTO| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 1> TYPE| NONE| PARENT_NOT_SET[ 15/ 15/ 18/ 0][0/1/0][ 8a 0008][0-0] int
+# 1> WORD| NONE| PARENT_NOT_SET[ 19/ 19/ 20/ 1][0/1/0][ 100 0008][0-0] i
+# 1> COMMA| NONE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/1/0][ 2 0000 0008][0-0] ,
+# 1> TYPE| NONE| PARENT_NOT_SET[ 22/ 22/ 28/ 1][0/1/0][ 8a 0008][0-0] double
+# 1> WORD| NONE| PARENT_NOT_SET[ 29/ 29/ 30/ 1][0/1/0][ 100 0008][0-0] d
+# 1> FPAREN_CLOSE| FUNC_PROTO| PARENT_NOT_SET[ 30/ 30/ 31/ 0][0/0/0][ 2 0000 0008][0-0] )
+# 1> SEMICOLON| FUNC_VAR| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 1> NEWLINE| NONE| PARENT_NOT_SET[ 32/ 32/ 1/ 0][0/0/0][ 0][1-0]
+# 2> TYPE| FUNC_PROTO| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] void
+# 2> FUNC_PROTO| NONE| PARENT_NOT_SET[ 6/ 6/ 14/ 1][0/0/0][ 0][0-0] function
+# 2> FPAREN_OPEN| FUNC_PROTO| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 2> TYPE| NONE| PARENT_NOT_SET[ 15/ 15/ 18/ 0][0/1/0][ 8a 0008][0-0] int
+# 2> WORD| NONE| PARENT_NOT_SET[ 19/ 19/ 20/ 1][0/1/0][ 100 0008][0-0] i
+# 2> COMMA| NONE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/1/0][ 2 0000 0008][0-0] ,
+# 2> TYPE| NONE| PARENT_NOT_SET[ 22/ 22/ 28/ 1][0/1/0][ 8a 0008][0-0] double
+# 2> WORD| NONE| PARENT_NOT_SET[ 29/ 29/ 30/ 1][0/1/0][ 100 0008][0-0] d
+# 2> FPAREN_CLOSE| FUNC_PROTO| PARENT_NOT_SET[ 30/ 30/ 31/ 0][0/0/0][ 2 0000 0008][0-0] )
+# 2> SEMICOLON| FUNC_PROTO| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 2> NEWLINE| NONE| PARENT_NOT_SET[ 32/ 32/ 1/ 0][0/0/0][ 0][1-0]
+# 3> TYPEDEF| NONE| PARENT_NOT_SET[ 1/ 1/ 8/ 0][0/0/0][ e 0000][0-0] typedef
+# 3> TYPE| FUNC_TYPE| PARENT_NOT_SET[ 9/ 9/ 13/ 1][0/0/0][ 80][0-1] void
+# 3> TPAREN_OPEN| FUNC_TYPE| PARENT_NOT_SET[ 14/ 14/ 15/ 1][0/0/0][ 2 0000 0080][0-0] (
+# 3> PTR_TYPE| NONE| PARENT_NOT_SET[ 15/ 15/ 16/ 0][0/1/0][ 2 0008 0080][0-0] *
+# 3> FUNC_TYPE| TYPEDEF| PARENT_NOT_SET[ 16/ 16/ 21/ 0][0/1/0][ 8 0080][0-0] fnPtr
+# 3> TPAREN_CLOSE| FUNC_TYPE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/0/0][ 2 0000 0080][0-0] )
+# 3> FPAREN_OPEN| FUNC_PROTO| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0080][0-0] (
+# 3> TYPE| NONE| PARENT_NOT_SET[ 23/ 23/ 26/ 0][0/1/0][ 8a 0088][0-0] int
+# 3> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/1/0][ 100 0088][0-0] i
+# 3> COMMA| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][0/1/0][ 2 0000 0088][0-0] ,
+# 3> TYPE| NONE| PARENT_NOT_SET[ 30/ 30/ 36/ 1][0/1/0][ 8a 0088][0-0] double
+# 3> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 38/ 1][0/1/0][ 100 0088][0-0] d
+# 3> FPAREN_CLOSE| FUNC_PROTO| PARENT_NOT_SET[ 38/ 38/ 39/ 0][0/0/0][ 2 0000 0088][0-0] )
+# 3> SEMICOLON| TYPEDEF| PARENT_NOT_SET[ 39/ 39/ 40/ 0][0/0/0][ 2 0000 0080][0-0] ;
+# 3> NEWLINE| NONE| PARENT_NOT_SET[ 40/ 40/ 1/ 0][0/0/0][ 0][1-0]
+# 4> TYPEDEF| NONE| PARENT_NOT_SET[ 1/ 1/ 8/ 0][0/0/0][ e 0000][0-0] typedef
+# 4> TYPE| NONE| PARENT_NOT_SET[ 9/ 9/ 13/ 1][0/0/0][ 2 0080][0-1] void
+# 4> FUNC_TYPE| TYPEDEF| PARENT_NOT_SET[ 14/ 14/ 22/ 1][0/0/0][ 80][0-0] function
+# 4> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0080][0-0] (
+# 4> TYPE| NONE| PARENT_NOT_SET[ 23/ 23/ 26/ 0][0/1/0][ 8a 0088][0-0] int
+# 4> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/1/0][ 100 0088][0-0] i
+# 4> COMMA| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][0/1/0][ 2 0000 0088][0-0] ,
+# 4> TYPE| NONE| PARENT_NOT_SET[ 30/ 30/ 36/ 1][0/1/0][ 8a 0088][0-0] double
+# 4> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 38/ 1][0/1/0][ 100 0088][0-0] d
+# 4> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 38/ 38/ 39/ 0][0/0/0][ 2 0000 0088][0-0] )
+# 4> SEMICOLON| TYPEDEF| PARENT_NOT_SET[ 39/ 39/ 40/ 0][0/0/0][ 2 0000 0080][0-0] ;
+# 4> NEWLINE| NONE| PARENT_NOT_SET[ 40/ 40/ 1/ 0][0/0/0][ 0][2-0]
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/logger_cs_L_99.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/logger_cs_L_99.txt
new file mode 100644
index 00000000..44abdcfd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/logger_cs_L_99.txt
@@ -0,0 +1,8 @@
+tokenize(): orig line is , orig col is , Text() '// Turning on sp_inside_braces=add fixes it, but also changes a lot of initializer code we don't want to touch (like x = {}). May need special support, or perhaps there's a bug..', type is COMMENT_CPP, orig col end is
+tokenize(): orig line is , orig col is , <Newline>, nl is
+tokenize(): orig line is , orig col is , Text() '// long comment line(s), such as here, might be too long to produce a correct LOG-file such as', type is COMMENT_CPP, orig col end is
+tokenize(): orig line is , orig col is , <Newline>, nl is
+tokenize(): orig line is , orig col is , Text() '// with the use of option -L A', type is COMMENT_CPP, orig col end is
+tokenize(): orig line is , orig col is , <Newline>, nl is
+tokenize(): orig line is , orig col is , Text() '// in such a case, the output of the log will be cut.', type is COMMENT_CPP, orig col end is
+tokenize(): orig line is , orig col is , <Newline>, nl is
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/p.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/p.txt
new file mode 100644
index 00000000..616c7066
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/p.txt
@@ -0,0 +1,148 @@
+
+newlines = crlf
+debug_decode_the_flags = true
+# option(s) with 'not default' value: 2
+#
+# -=====-
+# number of loops = 0
+# -=====-
+# language = CPP
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flags Nl Text
+# 1> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 001c 0001][0-0] #
+ The flags are: [0x2001c0001:IN_PREPROC,STMT_START,EXPR_START,DONT_INDENT,PUNCTUATOR]
+# 1> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/0][ 2 0001][0-0] define
+ The flags are: [0x20001:IN_PREPROC,FORCE_SPACE]
+# 1> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 10/ 1][1/1/0][ 2 0001][0-0] x
+ The flags are: [0x20001:IN_PREPROC,FORCE_SPACE]
+# 1> WORD| NONE| PARENT_NOT_SET[ 11/ 11/ 18/ 1][1/1/0][ c 0001][0-0] s23_foo
+ The flags are: [0xc0001:IN_PREPROC,STMT_START,EXPR_START]
+# 1> ASSIGN| NONE| PARENT_NOT_SET[ 19/ 19/ 21/ 1][1/1/0][ 2 0000 0001][0-0] +=
+ The flags are: [0x200000001:IN_PREPROC,PUNCTUATOR]
+# 1> NL_CONT| NONE| PARENT_NOT_SET[ 22/ 22/ 1/ 1][1/1/0][ 8 0001][1-0] \
+ The flags are: [0x80001:IN_PREPROC,EXPR_START]
+# 2> WORD| NONE| PARENT_NOT_SET[ 9/ 1/ 7/ 0][1/1/0][ 8 0001][0-0] s8_foo
+ The flags are: [0x80001:IN_PREPROC,EXPR_START]
+# 2> ARITH| NONE| PARENT_NOT_SET[ 16/ 8/ 9/ 1][1/1/0][ 2 0000 0001][0-0] *
+ The flags are: [0x200000001:IN_PREPROC,PUNCTUATOR]
+# 2> WORD| NONE| PARENT_NOT_SET[ 18/ 10/ 17/ 1][1/1/0][ 8 0001][0-0] s16_bar
+ The flags are: [0x80001:IN_PREPROC,EXPR_START]
+# 2> SEMICOLON| NONE| PARENT_NOT_SET[ 25/ 17/ 18/ 0][1/1/0][ 2 0000 0001][0-0] ;
+ The flags are: [0x200000001:IN_PREPROC,PUNCTUATOR]
+# 2> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 18/ 1/ 0][0/0/0][ 0][2-0]
+ The flags are: [0x0:]
+# 4> STRUCT| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][0/0/0][ e 0000][0-0] struct
+ The flags are: [0xe0000:FORCE_SPACE,STMT_START,EXPR_START]
+# 4> TYPE| STRUCT| PARENT_NOT_SET[ 8/ 8/ 21/ 1][0/0/0][ 0][0-0] TelegramIndex
+ The flags are: [0x0:]
+# 4> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/0][ 0][1-0]
+ The flags are: [0x0:]
+# 5> BRACE_OPEN| STRUCT| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] {
+ The flags are: [0x200000400:IN_CLASS,PUNCTUATOR]
+# 5> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 6> FUNC_CLASS_DEF| NONE| PARENT_NOT_SET[ 9/ 1/ 14/ 0][1/1/0][ c 0402][0-0] TelegramIndex
+ The flags are: [0xc0402:IN_STRUCT,IN_CLASS,STMT_START,EXPR_START]
+# 6> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 22/ 14/ 15/ 0][1/1/0][ 2 0000 0502][0-0] (
+ The flags are: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 6> QUALIFIER| NONE| PARENT_NOT_SET[ 23/ 15/ 20/ 0][1/2/0][ a 0512][0-0] const
+ The flags are: [0xa0512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START]
+# 6> TYPE| NONE| PARENT_NOT_SET[ 29/ 21/ 25/ 1][1/2/0][ 80 0512][0-0] char
+ The flags are: [0x800512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_TYPE]
+# 6> PTR_TYPE| NONE| PARENT_NOT_SET[ 33/ 25/ 26/ 0][1/2/0][ 2 0000 0512][0-0] *
+ The flags are: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 6> WORD| NONE| PARENT_NOT_SET[ 35/ 27/ 29/ 1][1/2/0][ 100 0512][0-0] pN
+ The flags are: [0x1000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF]
+# 6> COMMA| NONE| PARENT_NOT_SET[ 37/ 29/ 30/ 0][1/2/0][ 2 0000 0512][0-0] ,
+ The flags are: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 6> TYPE| NONE| PARENT_NOT_SET[ 39/ 31/ 39/ 1][1/2/0][ 8a 0512][0-0] unsigned
+ The flags are: [0x8a0512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,EXPR_START,VAR_TYPE]
+# 6> TYPE| NONE| PARENT_NOT_SET[ 48/ 40/ 44/ 1][1/2/0][ 82 0512][0-0] long
+ The flags are: [0x820512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+# 6> WORD| NONE| PARENT_NOT_SET[ 53/ 45/ 47/ 1][1/2/0][ 100 0512][0-0] nI
+ The flags are: [0x1000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,VAR_DEF]
+# 6> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 55/ 47/ 48/ 0][1/1/0][ 2 0000 0512][0-0] )
+ The flags are: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 6> CONSTR_COLON| NONE| PARENT_NOT_SET[ 57/ 49/ 50/ 1][1/1/0][ 2 0000 0502][0-0] :
+ The flags are: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 6> NEWLINE| NONE| PARENT_NOT_SET[ 58/ 50/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 7> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 17/ 1/ 9/ 0][1/1/0][ c 0502][0-0] pTelName
+ The flags are: [0xc0502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,STMT_START,EXPR_START]
+# 7> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 25/ 9/ 10/ 0][1/1/0][ 2 0000 0502][0-0] (
+ The flags are: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 7> WORD| NONE| PARENT_NOT_SET[ 26/ 10/ 12/ 0][1/2/0][ 8 0512][0-0] pN
+ The flags are: [0x80512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+# 7> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 28/ 12/ 13/ 0][1/1/0][ 2 0000 0512][0-0] )
+ The flags are: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 7> COMMA| NONE| PARENT_NOT_SET[ 29/ 13/ 14/ 0][1/1/0][ 2 0000 0502][0-0] ,
+ The flags are: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 7> NEWLINE| NONE| PARENT_NOT_SET[ 30/ 14/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 8> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 17/ 1/ 10/ 0][1/1/0][ 8 0502][0-0] nTelIndex
+ The flags are: [0x80502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+# 8> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 26/ 10/ 11/ 0][1/1/0][ 2 0000 0502][0-0] (
+ The flags are: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 8> WORD| NONE| PARENT_NOT_SET[ 27/ 11/ 12/ 0][1/2/0][ 8 0512][0-0] n
+ The flags are: [0x80512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,EXPR_START]
+# 8> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 28/ 12/ 13/ 0][1/1/0][ 2 0000 0512][0-0] )
+ The flags are: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 8> NEWLINE| NONE| PARENT_NOT_SET[ 29/ 13/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 9> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] {
+ The flags are: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+# 9> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][2/2/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 10> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] }
+ The flags are: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+# 10> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][1/1/0][ 2][2-0]
+ The flags are: [0x2:IN_STRUCT]
+# 12> DESTRUCTOR| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 000c 0402][0-0] ~
+ The flags are: [0x2000c0402:IN_STRUCT,IN_CLASS,STMT_START,EXPR_START,PUNCTUATOR]
+# 12> FUNC_CLASS_DEF| DESTRUCTOR| PARENT_NOT_SET[ 10/ 2/ 15/ 0][1/1/0][ 8 0402][0-0] TelegramIndex
+ The flags are: [0x80402:IN_STRUCT,IN_CLASS,EXPR_START]
+# 12> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 23/ 15/ 16/ 0][1/1/0][ 2 0000 0502][0-0] (
+ The flags are: [0x200000502:IN_STRUCT,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 12> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 24/ 16/ 17/ 0][1/1/0][ 2 0000 0512][0-0] )
+ The flags are: [0x200000512:IN_STRUCT,IN_FCN_CALL,IN_CONST_ARGS,IN_CLASS,PUNCTUATOR]
+# 12> NEWLINE| NONE| PARENT_NOT_SET[ 25/ 17/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 13> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] {
+ The flags are: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+# 13> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][2/2/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 14> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] }
+ The flags are: [0x280000402:IN_STRUCT,IN_CLASS,EMPTY_BODY,PUNCTUATOR]
+# 14> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][1/1/0][ 2][2-0]
+ The flags are: [0x2:IN_STRUCT]
+# 16> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 1/ 6/ 0][1/1/0][ 8e 0402][0-0] const
+ The flags are: [0x8e0402:IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE]
+# 16> TYPE| NONE| PARENT_NOT_SET[ 15/ 7/ 11/ 1][1/1/0][ 80 0402][0-0] char
+ The flags are: [0x800402:IN_STRUCT,IN_CLASS,VAR_TYPE]
+# 16> PTR_TYPE| NONE| PARENT_NOT_SET[ 19/ 11/ 12/ 0][1/1/0][ 2 0080 0402][0-0] *
+ The flags are: [0x200800402:IN_STRUCT,IN_CLASS,VAR_TYPE,PUNCTUATOR]
+# 16> QUALIFIER| NONE| PARENT_NOT_SET[ 21/ 13/ 18/ 1][1/1/0][ 82 0402][0-0] const
+ The flags are: [0x820402:IN_STRUCT,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+# 16> WORD| NONE| PARENT_NOT_SET[ 27/ 19/ 27/ 1][1/1/0][ 300 0402][0-0] pTelName
+ The flags are: [0x3000402:IN_STRUCT,IN_CLASS,VAR_DEF,VAR_1ST]
+# 16> SEMICOLON| NONE| PARENT_NOT_SET[ 35/ 27/ 28/ 0][1/1/0][ 2 0000 0402][0-0] ;
+ The flags are: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+# 16> NEWLINE| NONE| PARENT_NOT_SET[ 36/ 28/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 17> TYPE| NONE| PARENT_NOT_SET[ 9/ 1/ 9/ 0][1/1/0][ 8e 0402][0-0] unsigned
+ The flags are: [0x8e0402:IN_STRUCT,IN_CLASS,FORCE_SPACE,STMT_START,EXPR_START,VAR_TYPE]
+# 17> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 14/ 1][1/1/0][ 82 0402][0-0] long
+ The flags are: [0x820402:IN_STRUCT,IN_CLASS,FORCE_SPACE,VAR_TYPE]
+# 17> WORD| NONE| PARENT_NOT_SET[ 23/ 15/ 24/ 1][1/1/0][ 300 0402][0-0] nTelIndex
+ The flags are: [0x3000402:IN_STRUCT,IN_CLASS,VAR_DEF,VAR_1ST]
+# 17> SEMICOLON| NONE| PARENT_NOT_SET[ 32/ 24/ 25/ 0][1/1/0][ 2 0000 0402][0-0] ;
+ The flags are: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+# 17> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 25/ 1/ 0][1/1/0][ 2][1-0]
+ The flags are: [0x2:IN_STRUCT]
+# 18> BRACE_CLOSE| STRUCT| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0402][0-0] }
+ The flags are: [0x200000402:IN_STRUCT,IN_CLASS,PUNCTUATOR]
+# 18> SEMICOLON| STRUCT| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 2 0000 0000][0-0] ;
+ The flags are: [0x200000000:PUNCTUATOR]
+# 18> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
+ The flags are: [0x0:]
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/pc-.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/pc-.txt
new file mode 100644
index 00000000..aa0e221e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/pc-.txt
@@ -0,0 +1,10 @@
+
+# option(s) with 'not default' value: 0
+#
+# -=====-
+# number of loops = 0
+# -=====-
+# language = C
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flags Nl Text
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/replace.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/replace.txt
new file mode 100644
index 00000000..e643b5cd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/replace.txt
@@ -0,0 +1,2 @@
+do_source_file: Parsing: input/I-3310.c as language C
+do_source_file: Parsing: input/backup.h as language C-Header
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/truncate.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/truncate.txt
new file mode 100644
index 00000000..3b63da09
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/truncate.txt
@@ -0,0 +1,16 @@
+output_text : Text() is '// 1 6789A123456789B123456789c12345678 ... <The string is truncated>', type is COMMENT_CPP, orig line is 1, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig line is 1, column is 74, nl is 1
+output_text : Text() is '// 2 678 ... <The string is truncated>', type is COMMENT_CPP, orig line is 2, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig line is 2, column is 40, nl is 1
+output_text : Text() is '// 3 6789A123456789B123456789c12345678', type is COMMENT_CPP, orig line is 3, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig line is 3, column is 39, nl is 1
+output_text : Text() is '// 4 6789A123456789B123456789c1234567', type is COMMENT_CPP, orig line is 4, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig line is 4, column is 38, nl is 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/universalindent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/universalindent.cfg
new file mode 100644
index 00000000..61277071
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/universalindent.cfg
@@ -0,0 +1,7585 @@
+[header]
+categories=General options|Spacing options|Indenting options|Newline adding and removing options|Blank line options|Positioning options|Line splitting options|Code alignment options (not left column spaces/tabs)|Comment modification options|Code modifying options (non-whitespace)|Preprocessor options|Sort includes options|Use or Do not Use options|Warn levels - 1: error, 2: warning (default), 3: note
+cfgFileParameterEnding=cr
+configFilename=uncrustify.cfg
+fileTypes=*.c|*.c++|*.cc|*.cp|*.cpp|*.cs|*.cxx|*.d|*.di|*.es|*.h|*.h++|*.hh|*.hp|*.hpp|*.hxx|*.inc|*.inl|*.java|*.js|*.m|*.mm|*.p|*.pawn|*.sma|*.sqc|*.sql|*.vala|*.vapi
+indenterFileName=uncrustify
+indenterName=Uncrustify (C, C++, C#, ObjectiveC, D, Java, Pawn, VALA)
+inputFileName=indentinput
+inputFileParameter="-f "
+manual=http://uncrustify.sourceforge.net/config.txt
+outputFileName=indentoutput
+outputFileParameter="-o "
+stringparaminquotes=false
+parameterOrder=ipo
+showHelpParameter=-h
+stringparaminquotes=false
+useCfgFileParameter="-c "
+useRegex=true
+
+
+[Newlines]
+Category=0
+Description="<html>The type of line endings.<br/><br/>Default: auto</html>"
+Enabled=false
+EditorType=multiple
+Choices=newlines\s*=\s*lf|newlines\s*=\s*crlf|newlines\s*=\s*cr|newlines\s*=\s*auto
+ChoicesReadable="Newlines Unix|Newlines Win|Newlines Mac|Newlines Auto"
+ValueDefault=auto
+
+[Input Tab Size]
+Category=0
+Description="<html>The original size of tabs in the input.<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="input_tab_size\s*=\s*"
+MinVal=1
+MaxVal=32
+ValueDefault=8
+
+[Output Tab Size]
+Category=0
+Description="<html>The size of tabs in the output (only used if align_with_tabs=true).<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="output_tab_size\s*=\s*"
+MinVal=1
+MaxVal=32
+ValueDefault=8
+
+[String Escape Char]
+Category=0
+Description="<html>The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).<br/><br/>Default: 92</html>"
+Enabled=false
+EditorType=numeric
+CallName="string_escape_char\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=92
+
+[String Escape Char2]
+Category=0
+Description="<html>Alternate string escape char (usually only used for Pawn).<br/>Only works right before the quote char.</html>"
+Enabled=false
+EditorType=numeric
+CallName="string_escape_char2\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[String Replace Tab Chars]
+Category=0
+Description="<html>Replace tab characters found in string literals with the escape sequence \t<br/>instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=string_replace_tab_chars\s*=\s*true|string_replace_tab_chars\s*=\s*false
+ValueDefault=false
+
+[Tok Split Gte]
+Category=0
+Description="<html>Allow interpreting '&gt;=' and '&gt;&gt;=' as part of a template in code like<br/>'void f(list&lt;list&lt;B&gt;&gt;=val);'. If true, 'assert(x&lt;0 &amp;&amp; y&gt;=3)' will be broken.<br/>Improvements to template detection may make this option obsolete.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=tok_split_gte\s*=\s*true|tok_split_gte\s*=\s*false
+ValueDefault=false
+
+[Disable Processing Nl Cont]
+Category=0
+Description="<html>Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=disable_processing_nl_cont\s*=\s*true|disable_processing_nl_cont\s*=\s*false
+ValueDefault=false
+
+[Disable Processing Cmt]
+Category=0
+Description="<html>Specify the marker used in comments to disable processing of part of the<br/>file.<br/><br/>Default: *INDENT-OFF*</html>"
+Enabled=false
+CallName=disable_processing_cmt\s*=\s*
+EditorType=string
+ValueDefault= *INDENT-OFF*
+
+[Enable Processing Cmt]
+Category=0
+Description="<html>Specify the marker used in comments to (re)enable processing in a file.<br/><br/>Default: *INDENT-ON*</html>"
+Enabled=false
+CallName=enable_processing_cmt\s*=\s*
+EditorType=string
+ValueDefault= *INDENT-ON*
+
+[Enable Digraphs]
+Category=0
+Description="<html>Enable parsing of digraphs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=enable_digraphs\s*=\s*true|enable_digraphs\s*=\s*false
+ValueDefault=false
+
+[Processing Cmt As Regex]
+Category=0
+Description="<html>Option to allow both disable_processing_cmt and enable_processing_cmt<br/>strings, if specified, to be interpreted as ECMAScript regular expressions.<br/>If true, a regex search will be performed within comments according to the<br/>specified patterns in order to disable/enable processing.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=processing_cmt_as_regex\s*=\s*true|processing_cmt_as_regex\s*=\s*false
+ValueDefault=false
+
+[Utf8 Bom]
+Category=0
+Description="<html>Add or remove the UTF-8 BOM (recommend 'remove').</html>"
+Enabled=false
+EditorType=multiple
+Choices=utf8_bom\s*=\s*ignore|utf8_bom\s*=\s*add|utf8_bom\s*=\s*remove|utf8_bom\s*=\s*force|utf8_bom\s*=\s*not_defined
+ChoicesReadable="Ignore Utf8 Bom|Add Utf8 Bom|Remove Utf8 Bom|Force Utf8 Bom"
+ValueDefault=ignore
+
+[Utf8 Byte]
+Category=0
+Description="<html>If the file contains bytes with values between 128 and 255, but is not<br/>UTF-8, then output as UTF-8.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=utf8_byte\s*=\s*true|utf8_byte\s*=\s*false
+ValueDefault=false
+
+[Utf8 Force]
+Category=0
+Description="<html>Force the output encoding to UTF-8.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=utf8_force\s*=\s*true|utf8_force\s*=\s*false
+ValueDefault=false
+
+[Sp Arith]
+Category=1
+Description="<html>Add or remove space around non-assignment symbolic operators ('+', '/', '%',<br/>'&lt;&lt;', and so forth).</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_arith\s*=\s*ignore|sp_arith\s*=\s*add|sp_arith\s*=\s*remove|sp_arith\s*=\s*force|sp_arith\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Arith|Add Sp Arith|Remove Sp Arith|Force Sp Arith"
+ValueDefault=ignore
+
+[Sp Arith Additive]
+Category=1
+Description="<html>Add or remove space around arithmetic operators '+' and '-'.<br/><br/>Overrides sp_arith.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_arith_additive\s*=\s*ignore|sp_arith_additive\s*=\s*add|sp_arith_additive\s*=\s*remove|sp_arith_additive\s*=\s*force|sp_arith_additive\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Arith Additive|Add Sp Arith Additive|Remove Sp Arith Additive|Force Sp Arith Additive"
+ValueDefault=ignore
+
+[Sp Assign]
+Category=1
+Description="<html>Add or remove space around assignment operator '=', '+=', etc.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_assign\s*=\s*ignore|sp_assign\s*=\s*add|sp_assign\s*=\s*remove|sp_assign\s*=\s*force|sp_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Assign|Add Sp Assign|Remove Sp Assign|Force Sp Assign"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Assign]
+Category=1
+Description="<html>Add or remove space around '=' in C++11 lambda capture specifications.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_assign\s*=\s*ignore|sp_cpp_lambda_assign\s*=\s*add|sp_cpp_lambda_assign\s*=\s*remove|sp_cpp_lambda_assign\s*=\s*force|sp_cpp_lambda_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Assign|Add Sp Cpp Lambda Assign|Remove Sp Cpp Lambda Assign|Force Sp Cpp Lambda Assign"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Square Paren]
+Category=1
+Description="<html>Add or remove space after the capture specification of a C++11 lambda when<br/>an argument list is present, as in '[] &lt;here&gt; (int x){ ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_square_paren\s*=\s*ignore|sp_cpp_lambda_square_paren\s*=\s*add|sp_cpp_lambda_square_paren\s*=\s*remove|sp_cpp_lambda_square_paren\s*=\s*force|sp_cpp_lambda_square_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Square Paren|Add Sp Cpp Lambda Square Paren|Remove Sp Cpp Lambda Square Paren|Force Sp Cpp Lambda Square Paren"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Square Brace]
+Category=1
+Description="<html>Add or remove space after the capture specification of a C++11 lambda with<br/>no argument list is present, as in '[] &lt;here&gt; { ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_square_brace\s*=\s*ignore|sp_cpp_lambda_square_brace\s*=\s*add|sp_cpp_lambda_square_brace\s*=\s*remove|sp_cpp_lambda_square_brace\s*=\s*force|sp_cpp_lambda_square_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Square Brace|Add Sp Cpp Lambda Square Brace|Remove Sp Cpp Lambda Square Brace|Force Sp Cpp Lambda Square Brace"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Argument List Empty]
+Category=1
+Description="<html>Add or remove space after the opening parenthesis and before the closing<br/>parenthesis of a argument list of a C++11 lambda, as in<br/>'[]( &lt;here&gt; ){ ... }'<br/>with an empty list.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_argument_list_empty\s*=\s*ignore|sp_cpp_lambda_argument_list_empty\s*=\s*add|sp_cpp_lambda_argument_list_empty\s*=\s*remove|sp_cpp_lambda_argument_list_empty\s*=\s*force|sp_cpp_lambda_argument_list_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Argument List Empty|Add Sp Cpp Lambda Argument List Empty|Remove Sp Cpp Lambda Argument List Empty|Force Sp Cpp Lambda Argument List Empty"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Argument List]
+Category=1
+Description="<html>Add or remove space after the opening parenthesis and before the closing<br/>parenthesis of a argument list of a C++11 lambda, as in<br/>'[]( &lt;here&gt; int x &lt;here&gt; ){ ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_argument_list\s*=\s*ignore|sp_cpp_lambda_argument_list\s*=\s*add|sp_cpp_lambda_argument_list\s*=\s*remove|sp_cpp_lambda_argument_list\s*=\s*force|sp_cpp_lambda_argument_list\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Argument List|Add Sp Cpp Lambda Argument List|Remove Sp Cpp Lambda Argument List|Force Sp Cpp Lambda Argument List"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Paren Brace]
+Category=1
+Description="<html>Add or remove space after the argument list of a C++11 lambda, as in<br/>'[](int x) &lt;here&gt; { ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_paren_brace\s*=\s*ignore|sp_cpp_lambda_paren_brace\s*=\s*add|sp_cpp_lambda_paren_brace\s*=\s*remove|sp_cpp_lambda_paren_brace\s*=\s*force|sp_cpp_lambda_paren_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Paren Brace|Add Sp Cpp Lambda Paren Brace|Remove Sp Cpp Lambda Paren Brace|Force Sp Cpp Lambda Paren Brace"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Fparen]
+Category=1
+Description="<html>Add or remove space between a lambda body and its call operator of an<br/>immediately invoked lambda, as in '[]( ... ){ ... } &lt;here&gt; ( ... )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_fparen\s*=\s*ignore|sp_cpp_lambda_fparen\s*=\s*add|sp_cpp_lambda_fparen\s*=\s*remove|sp_cpp_lambda_fparen\s*=\s*force|sp_cpp_lambda_fparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Fparen|Add Sp Cpp Lambda Fparen|Remove Sp Cpp Lambda Fparen|Force Sp Cpp Lambda Fparen"
+ValueDefault=ignore
+
+[Sp Assign Default]
+Category=1
+Description="<html>Add or remove space around assignment operator '=' in a prototype.<br/><br/>If set to ignore, use sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_assign_default\s*=\s*ignore|sp_assign_default\s*=\s*add|sp_assign_default\s*=\s*remove|sp_assign_default\s*=\s*force|sp_assign_default\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Assign Default|Add Sp Assign Default|Remove Sp Assign Default|Force Sp Assign Default"
+ValueDefault=ignore
+
+[Sp Before Assign]
+Category=1
+Description="<html>Add or remove space before assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_assign\s*=\s*ignore|sp_before_assign\s*=\s*add|sp_before_assign\s*=\s*remove|sp_before_assign\s*=\s*force|sp_before_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Assign|Add Sp Before Assign|Remove Sp Before Assign|Force Sp Before Assign"
+ValueDefault=ignore
+
+[Sp After Assign]
+Category=1
+Description="<html>Add or remove space after assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_assign\s*=\s*ignore|sp_after_assign\s*=\s*add|sp_after_assign\s*=\s*remove|sp_after_assign\s*=\s*force|sp_after_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Assign|Add Sp After Assign|Remove Sp After Assign|Force Sp After Assign"
+ValueDefault=ignore
+
+[Sp Enum Brace]
+Category=1
+Description="<html>Add or remove space in 'enum {'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_brace\s*=\s*ignore|sp_enum_brace\s*=\s*add|sp_enum_brace\s*=\s*remove|sp_enum_brace\s*=\s*force|sp_enum_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Enum Brace|Add Sp Enum Brace|Remove Sp Enum Brace|Force Sp Enum Brace"
+ValueDefault=add
+
+[Sp Enum Paren]
+Category=1
+Description="<html>Add or remove space in 'NS_ENUM ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_paren\s*=\s*ignore|sp_enum_paren\s*=\s*add|sp_enum_paren\s*=\s*remove|sp_enum_paren\s*=\s*force|sp_enum_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Enum Paren|Add Sp Enum Paren|Remove Sp Enum Paren|Force Sp Enum Paren"
+ValueDefault=ignore
+
+[Sp Enum Assign]
+Category=1
+Description="<html>Add or remove space around assignment '=' in enum.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_assign\s*=\s*ignore|sp_enum_assign\s*=\s*add|sp_enum_assign\s*=\s*remove|sp_enum_assign\s*=\s*force|sp_enum_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Enum Assign|Add Sp Enum Assign|Remove Sp Enum Assign|Force Sp Enum Assign"
+ValueDefault=ignore
+
+[Sp Enum Before Assign]
+Category=1
+Description="<html>Add or remove space before assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_before_assign\s*=\s*ignore|sp_enum_before_assign\s*=\s*add|sp_enum_before_assign\s*=\s*remove|sp_enum_before_assign\s*=\s*force|sp_enum_before_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Enum Before Assign|Add Sp Enum Before Assign|Remove Sp Enum Before Assign|Force Sp Enum Before Assign"
+ValueDefault=ignore
+
+[Sp Enum After Assign]
+Category=1
+Description="<html>Add or remove space after assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_after_assign\s*=\s*ignore|sp_enum_after_assign\s*=\s*add|sp_enum_after_assign\s*=\s*remove|sp_enum_after_assign\s*=\s*force|sp_enum_after_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Enum After Assign|Add Sp Enum After Assign|Remove Sp Enum After Assign|Force Sp Enum After Assign"
+ValueDefault=ignore
+
+[Sp Enum Colon]
+Category=1
+Description="<html>Add or remove space around assignment ':' in enum.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_colon\s*=\s*ignore|sp_enum_colon\s*=\s*add|sp_enum_colon\s*=\s*remove|sp_enum_colon\s*=\s*force|sp_enum_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Enum Colon|Add Sp Enum Colon|Remove Sp Enum Colon|Force Sp Enum Colon"
+ValueDefault=ignore
+
+[Sp Pp Concat]
+Category=1
+Description="<html>Add or remove space around preprocessor '##' concatenation operator.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_pp_concat\s*=\s*ignore|sp_pp_concat\s*=\s*add|sp_pp_concat\s*=\s*remove|sp_pp_concat\s*=\s*force|sp_pp_concat\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Pp Concat|Add Sp Pp Concat|Remove Sp Pp Concat|Force Sp Pp Concat"
+ValueDefault=add
+
+[Sp Pp Stringify]
+Category=1
+Description="<html>Add or remove space after preprocessor '#' stringify operator.<br/>Also affects the '#@' charizing operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_pp_stringify\s*=\s*ignore|sp_pp_stringify\s*=\s*add|sp_pp_stringify\s*=\s*remove|sp_pp_stringify\s*=\s*force|sp_pp_stringify\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Pp Stringify|Add Sp Pp Stringify|Remove Sp Pp Stringify|Force Sp Pp Stringify"
+ValueDefault=ignore
+
+[Sp Before Pp Stringify]
+Category=1
+Description="<html>Add or remove space before preprocessor '#' stringify operator<br/>as in '#define x(y) L#y'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_pp_stringify\s*=\s*ignore|sp_before_pp_stringify\s*=\s*add|sp_before_pp_stringify\s*=\s*remove|sp_before_pp_stringify\s*=\s*force|sp_before_pp_stringify\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Pp Stringify|Add Sp Before Pp Stringify|Remove Sp Before Pp Stringify|Force Sp Before Pp Stringify"
+ValueDefault=ignore
+
+[Sp Bool]
+Category=1
+Description="<html>Add or remove space around boolean operators '&amp;&amp;' and '||'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_bool\s*=\s*ignore|sp_bool\s*=\s*add|sp_bool\s*=\s*remove|sp_bool\s*=\s*force|sp_bool\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Bool|Add Sp Bool|Remove Sp Bool|Force Sp Bool"
+ValueDefault=ignore
+
+[Sp Compare]
+Category=1
+Description="<html>Add or remove space around compare operator '&lt;', '&gt;', '==', etc.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_compare\s*=\s*ignore|sp_compare\s*=\s*add|sp_compare\s*=\s*remove|sp_compare\s*=\s*force|sp_compare\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Compare|Add Sp Compare|Remove Sp Compare|Force Sp Compare"
+ValueDefault=ignore
+
+[Sp Inside Paren]
+Category=1
+Description="<html>Add or remove space inside '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_paren\s*=\s*ignore|sp_inside_paren\s*=\s*add|sp_inside_paren\s*=\s*remove|sp_inside_paren\s*=\s*force|sp_inside_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Paren|Add Sp Inside Paren|Remove Sp Inside Paren|Force Sp Inside Paren"
+ValueDefault=ignore
+
+[Sp Paren Paren]
+Category=1
+Description="<html>Add or remove space between nested parentheses, i.e. '((' vs. ') )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_paren\s*=\s*ignore|sp_paren_paren\s*=\s*add|sp_paren_paren\s*=\s*remove|sp_paren_paren\s*=\s*force|sp_paren_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Paren Paren|Add Sp Paren Paren|Remove Sp Paren Paren|Force Sp Paren Paren"
+ValueDefault=ignore
+
+[Sp Cparen Oparen]
+Category=1
+Description="<html>Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cparen_oparen\s*=\s*ignore|sp_cparen_oparen\s*=\s*add|sp_cparen_oparen\s*=\s*remove|sp_cparen_oparen\s*=\s*force|sp_cparen_oparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cparen Oparen|Add Sp Cparen Oparen|Remove Sp Cparen Oparen|Force Sp Cparen Oparen"
+ValueDefault=ignore
+
+[Sp Balance Nested Parens]
+Category=1
+Description="<html>Whether to balance spaces inside nested parentheses.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_balance_nested_parens\s*=\s*true|sp_balance_nested_parens\s*=\s*false
+ValueDefault=false
+
+[Sp Paren Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_brace\s*=\s*ignore|sp_paren_brace\s*=\s*add|sp_paren_brace\s*=\s*remove|sp_paren_brace\s*=\s*force|sp_paren_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Paren Brace|Add Sp Paren Brace|Remove Sp Paren Brace|Force Sp Paren Brace"
+ValueDefault=ignore
+
+[Sp Brace Brace]
+Category=1
+Description="<html>Add or remove space between nested braces, i.e. '{{' vs. '{ {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_brace\s*=\s*ignore|sp_brace_brace\s*=\s*add|sp_brace_brace\s*=\s*remove|sp_brace_brace\s*=\s*force|sp_brace_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Brace Brace|Add Sp Brace Brace|Remove Sp Brace Brace|Force Sp Brace Brace"
+ValueDefault=ignore
+
+[Sp Before Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star\s*=\s*ignore|sp_before_ptr_star\s*=\s*add|sp_before_ptr_star\s*=\s*remove|sp_before_ptr_star\s*=\s*force|sp_before_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star|Add Sp Before Ptr Star|Remove Sp Before Ptr Star|Force Sp Before Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Unnamed Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that isn't followed by a<br/>variable name. If set to ignore, sp_before_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_unnamed_ptr_star\s*=\s*ignore|sp_before_unnamed_ptr_star\s*=\s*add|sp_before_unnamed_ptr_star\s*=\s*remove|sp_before_unnamed_ptr_star\s*=\s*force|sp_before_unnamed_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Unnamed Ptr Star|Add Sp Before Unnamed Ptr Star|Remove Sp Before Unnamed Ptr Star|Force Sp Before Unnamed Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Qualifier Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that is followed by a qualifier.<br/>If set to ignore, sp_before_unnamed_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_qualifier_ptr_star\s*=\s*ignore|sp_before_qualifier_ptr_star\s*=\s*add|sp_before_qualifier_ptr_star\s*=\s*remove|sp_before_qualifier_ptr_star\s*=\s*force|sp_before_qualifier_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Qualifier Ptr Star|Add Sp Before Qualifier Ptr Star|Remove Sp Before Qualifier Ptr Star|Force Sp Before Qualifier Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Operator Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that is followed by 'operator' keyword.<br/>If set to ignore, sp_before_unnamed_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_operator_ptr_star\s*=\s*ignore|sp_before_operator_ptr_star\s*=\s*add|sp_before_operator_ptr_star\s*=\s*remove|sp_before_operator_ptr_star\s*=\s*force|sp_before_operator_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Operator Ptr Star|Add Sp Before Operator Ptr Star|Remove Sp Before Operator Ptr Star|Force Sp Before Operator Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Scope Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that is followed by<br/>a class scope (as in 'int *MyClass::method()') or namespace scope<br/>(as in 'int *my_ns::func()').<br/>If set to ignore, sp_before_unnamed_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_scope_ptr_star\s*=\s*ignore|sp_before_scope_ptr_star\s*=\s*add|sp_before_scope_ptr_star\s*=\s*remove|sp_before_scope_ptr_star\s*=\s*force|sp_before_scope_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Scope Ptr Star|Add Sp Before Scope Ptr Star|Remove Sp Before Scope Ptr Star|Force Sp Before Scope Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Global Scope Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that is followed by '::',<br/>as in 'int *::func()'.<br/>If set to ignore, sp_before_unnamed_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_global_scope_ptr_star\s*=\s*ignore|sp_before_global_scope_ptr_star\s*=\s*add|sp_before_global_scope_ptr_star\s*=\s*remove|sp_before_global_scope_ptr_star\s*=\s*force|sp_before_global_scope_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Global Scope Ptr Star|Add Sp Before Global Scope Ptr Star|Remove Sp Before Global Scope Ptr Star|Force Sp Before Global Scope Ptr Star"
+ValueDefault=ignore
+
+[Sp Qualifier Unnamed Ptr Star]
+Category=1
+Description="<html>Add or remove space between a qualifier and a pointer star '*' that isn't<br/>followed by a variable name, as in '(char const *)'. If set to ignore,<br/>sp_before_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_qualifier_unnamed_ptr_star\s*=\s*ignore|sp_qualifier_unnamed_ptr_star\s*=\s*add|sp_qualifier_unnamed_ptr_star\s*=\s*remove|sp_qualifier_unnamed_ptr_star\s*=\s*force|sp_qualifier_unnamed_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Qualifier Unnamed Ptr Star|Add Sp Qualifier Unnamed Ptr Star|Remove Sp Qualifier Unnamed Ptr Star|Force Sp Qualifier Unnamed Ptr Star"
+ValueDefault=ignore
+
+[Sp Between Ptr Star]
+Category=1
+Description="<html>Add or remove space between pointer stars '*', as in 'int ***a;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_ptr_star\s*=\s*ignore|sp_between_ptr_star\s*=\s*add|sp_between_ptr_star\s*=\s*remove|sp_between_ptr_star\s*=\s*force|sp_between_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Between Ptr Star|Add Sp Between Ptr Star|Remove Sp Between Ptr Star|Force Sp Between Ptr Star"
+ValueDefault=ignore
+
+[Sp Between Ptr Ref]
+Category=1
+Description="<html>Add or remove space between pointer star '*' and reference '&amp;', as in 'int *&amp; a;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_ptr_ref\s*=\s*ignore|sp_between_ptr_ref\s*=\s*add|sp_between_ptr_ref\s*=\s*remove|sp_between_ptr_ref\s*=\s*force|sp_between_ptr_ref\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Between Ptr Ref|Add Sp Between Ptr Ref|Remove Sp Between Ptr Ref|Force Sp Between Ptr Ref"
+ValueDefault=ignore
+
+[Sp After Ptr Star]
+Category=1
+Description="<html>Add or remove space after pointer star '*', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star\s*=\s*ignore|sp_after_ptr_star\s*=\s*add|sp_after_ptr_star\s*=\s*remove|sp_after_ptr_star\s*=\s*force|sp_after_ptr_star\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Ptr Star|Add Sp After Ptr Star|Remove Sp After Ptr Star|Force Sp After Ptr Star"
+ValueDefault=ignore
+
+[Sp After Ptr Block Caret]
+Category=1
+Description="<html>Add or remove space after pointer caret '^', if followed by a word.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_block_caret\s*=\s*ignore|sp_after_ptr_block_caret\s*=\s*add|sp_after_ptr_block_caret\s*=\s*remove|sp_after_ptr_block_caret\s*=\s*force|sp_after_ptr_block_caret\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Ptr Block Caret|Add Sp After Ptr Block Caret|Remove Sp After Ptr Block Caret|Force Sp After Ptr Block Caret"
+ValueDefault=ignore
+
+[Sp After Ptr Star Qualifier]
+Category=1
+Description="<html>Add or remove space after pointer star '*', if followed by a qualifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_qualifier\s*=\s*ignore|sp_after_ptr_star_qualifier\s*=\s*add|sp_after_ptr_star_qualifier\s*=\s*remove|sp_after_ptr_star_qualifier\s*=\s*force|sp_after_ptr_star_qualifier\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Qualifier|Add Sp After Ptr Star Qualifier|Remove Sp After Ptr Star Qualifier|Force Sp After Ptr Star Qualifier"
+ValueDefault=ignore
+
+[Sp After Ptr Star Func]
+Category=1
+Description="<html>Add or remove space after a pointer star '*', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_ptr_star and sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_func\s*=\s*ignore|sp_after_ptr_star_func\s*=\s*add|sp_after_ptr_star_func\s*=\s*remove|sp_after_ptr_star_func\s*=\s*force|sp_after_ptr_star_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Func|Add Sp After Ptr Star Func|Remove Sp After Ptr Star Func|Force Sp After Ptr Star Func"
+ValueDefault=ignore
+
+[Sp After Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space after a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_trailing\s*=\s*ignore|sp_after_ptr_star_trailing\s*=\s*add|sp_after_ptr_star_trailing\s*=\s*remove|sp_after_ptr_star_trailing\s*=\s*force|sp_after_ptr_star_trailing\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Trailing|Add Sp After Ptr Star Trailing|Remove Sp After Ptr Star Trailing|Force Sp After Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Ptr Star Func Var]
+Category=1
+Description="<html>Add or remove space between the pointer star '*' and the name of the variable<br/>in a function pointer definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_func_var\s*=\s*ignore|sp_ptr_star_func_var\s*=\s*add|sp_ptr_star_func_var\s*=\s*remove|sp_ptr_star_func_var\s*=\s*force|sp_ptr_star_func_var\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Ptr Star Func Var|Add Sp Ptr Star Func Var|Remove Sp Ptr Star Func Var|Force Sp Ptr Star Func Var"
+ValueDefault=ignore
+
+[Sp Ptr Star Func Type]
+Category=1
+Description="<html>Add or remove space between the pointer star '*' and the name of the type<br/>in a function pointer type definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_func_type\s*=\s*ignore|sp_ptr_star_func_type\s*=\s*add|sp_ptr_star_func_type\s*=\s*remove|sp_ptr_star_func_type\s*=\s*force|sp_ptr_star_func_type\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Ptr Star Func Type|Add Sp Ptr Star Func Type|Remove Sp Ptr Star Func Type|Force Sp Ptr Star Func Type"
+ValueDefault=ignore
+
+[Sp Ptr Star Paren]
+Category=1
+Description="<html>Add or remove space after a pointer star '*', if followed by an open<br/>parenthesis, as in 'void* (*)()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_paren\s*=\s*ignore|sp_ptr_star_paren\s*=\s*add|sp_ptr_star_paren\s*=\s*remove|sp_ptr_star_paren\s*=\s*force|sp_ptr_star_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Ptr Star Paren|Add Sp Ptr Star Paren|Remove Sp Ptr Star Paren|Force Sp Ptr Star Paren"
+ValueDefault=ignore
+
+[Sp Before Ptr Star Func]
+Category=1
+Description="<html>Add or remove space before a pointer star '*', if followed by a function<br/>prototype or function definition. If set to ignore, sp_before_ptr_star is<br/>used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star_func\s*=\s*ignore|sp_before_ptr_star_func\s*=\s*add|sp_before_ptr_star_func\s*=\s*remove|sp_before_ptr_star_func\s*=\s*force|sp_before_ptr_star_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star Func|Add Sp Before Ptr Star Func|Remove Sp Before Ptr Star Func|Force Sp Before Ptr Star Func"
+ValueDefault=ignore
+
+[Sp Qualifier Ptr Star Func]
+Category=1
+Description="<html>Add or remove space between a qualifier and a pointer star '*' followed by<br/>the name of the function in a function prototype or definition, as in<br/>'char const *foo()`. If set to ignore, sp_before_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_qualifier_ptr_star_func\s*=\s*ignore|sp_qualifier_ptr_star_func\s*=\s*add|sp_qualifier_ptr_star_func\s*=\s*remove|sp_qualifier_ptr_star_func\s*=\s*force|sp_qualifier_ptr_star_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Qualifier Ptr Star Func|Add Sp Qualifier Ptr Star Func|Remove Sp Qualifier Ptr Star Func|Force Sp Qualifier Ptr Star Func"
+ValueDefault=ignore
+
+[Sp Before Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space before a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star_trailing\s*=\s*ignore|sp_before_ptr_star_trailing\s*=\s*add|sp_before_ptr_star_trailing\s*=\s*remove|sp_before_ptr_star_trailing\s*=\s*force|sp_before_ptr_star_trailing\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star Trailing|Add Sp Before Ptr Star Trailing|Remove Sp Before Ptr Star Trailing|Force Sp Before Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Qualifier Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space between a qualifier and a pointer star '*' in the<br/>trailing return of a function prototype or function definition, as in<br/>'auto foo() -&gt; char const *'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_qualifier_ptr_star_trailing\s*=\s*ignore|sp_qualifier_ptr_star_trailing\s*=\s*add|sp_qualifier_ptr_star_trailing\s*=\s*remove|sp_qualifier_ptr_star_trailing\s*=\s*force|sp_qualifier_ptr_star_trailing\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Qualifier Ptr Star Trailing|Add Sp Qualifier Ptr Star Trailing|Remove Sp Qualifier Ptr Star Trailing|Force Sp Qualifier Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Before Byref]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_byref\s*=\s*ignore|sp_before_byref\s*=\s*add|sp_before_byref\s*=\s*remove|sp_before_byref\s*=\s*force|sp_before_byref\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Byref|Add Sp Before Byref|Remove Sp Before Byref|Force Sp Before Byref"
+ValueDefault=ignore
+
+[Sp Before Unnamed Byref]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;' that isn't followed by a<br/>variable name. If set to ignore, sp_before_byref is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_unnamed_byref\s*=\s*ignore|sp_before_unnamed_byref\s*=\s*add|sp_before_unnamed_byref\s*=\s*remove|sp_before_unnamed_byref\s*=\s*force|sp_before_unnamed_byref\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Unnamed Byref|Add Sp Before Unnamed Byref|Remove Sp Before Unnamed Byref|Force Sp Before Unnamed Byref"
+ValueDefault=ignore
+
+[Sp After Byref]
+Category=1
+Description="<html>Add or remove space after reference sign '&amp;', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_byref\s*=\s*ignore|sp_after_byref\s*=\s*add|sp_after_byref\s*=\s*remove|sp_after_byref\s*=\s*force|sp_after_byref\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Byref|Add Sp After Byref|Remove Sp After Byref|Force Sp After Byref"
+ValueDefault=ignore
+
+[Sp After Byref Func]
+Category=1
+Description="<html>Add or remove space after a reference sign '&amp;', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_byref and sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_byref_func\s*=\s*ignore|sp_after_byref_func\s*=\s*add|sp_after_byref_func\s*=\s*remove|sp_after_byref_func\s*=\s*force|sp_after_byref_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Byref Func|Add Sp After Byref Func|Remove Sp After Byref Func|Force Sp After Byref Func"
+ValueDefault=ignore
+
+[Sp Before Byref Func]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;', if followed by a function<br/>prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_byref_func\s*=\s*ignore|sp_before_byref_func\s*=\s*add|sp_before_byref_func\s*=\s*remove|sp_before_byref_func\s*=\s*force|sp_before_byref_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Byref Func|Add Sp Before Byref Func|Remove Sp Before Byref Func|Force Sp Before Byref Func"
+ValueDefault=ignore
+
+[Sp Byref Paren]
+Category=1
+Description="<html>Add or remove space after a reference sign '&amp;', if followed by an open<br/>parenthesis, as in 'char&amp; (*)()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_byref_paren\s*=\s*ignore|sp_byref_paren\s*=\s*add|sp_byref_paren\s*=\s*remove|sp_byref_paren\s*=\s*force|sp_byref_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Byref Paren|Add Sp Byref Paren|Remove Sp Byref Paren|Force Sp Byref Paren"
+ValueDefault=ignore
+
+[Sp After Type]
+Category=1
+Description="<html>Add or remove space between type and word. In cases where total removal of<br/>whitespace would be a syntax error, a value of 'remove' is treated the same<br/>as 'force'.<br/><br/>This also affects some other instances of space following a type that are<br/>not covered by other options; for example, between the return type and<br/>parenthesis of a function type template argument, between the type and<br/>parenthesis of an array parameter, or between 'decltype(...)' and the<br/>following word.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_type\s*=\s*ignore|sp_after_type\s*=\s*add|sp_after_type\s*=\s*remove|sp_after_type\s*=\s*force|sp_after_type\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Type|Add Sp After Type|Remove Sp After Type|Force Sp After Type"
+ValueDefault=force
+
+[Sp After Decltype]
+Category=1
+Description="<html>Add or remove space between 'decltype(...)' and word,<br/>brace or function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_decltype\s*=\s*ignore|sp_after_decltype\s*=\s*add|sp_after_decltype\s*=\s*remove|sp_after_decltype\s*=\s*force|sp_after_decltype\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Decltype|Add Sp After Decltype|Remove Sp After Decltype|Force Sp After Decltype"
+ValueDefault=ignore
+
+[Sp Before Template Paren]
+Category=1
+Description="<html>(D) Add or remove space before the parenthesis in the D constructs<br/>'template Foo(' and 'class Foo('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_template_paren\s*=\s*ignore|sp_before_template_paren\s*=\s*add|sp_before_template_paren\s*=\s*remove|sp_before_template_paren\s*=\s*force|sp_before_template_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Template Paren|Add Sp Before Template Paren|Remove Sp Before Template Paren|Force Sp Before Template Paren"
+ValueDefault=ignore
+
+[Sp Template Angle]
+Category=1
+Description="<html>Add or remove space between 'template' and '&lt;'.<br/>If set to ignore, sp_before_angle is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_template_angle\s*=\s*ignore|sp_template_angle\s*=\s*add|sp_template_angle\s*=\s*remove|sp_template_angle\s*=\s*force|sp_template_angle\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Template Angle|Add Sp Template Angle|Remove Sp Template Angle|Force Sp Template Angle"
+ValueDefault=ignore
+
+[Sp Before Angle]
+Category=1
+Description="<html>Add or remove space before '&lt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_angle\s*=\s*ignore|sp_before_angle\s*=\s*add|sp_before_angle\s*=\s*remove|sp_before_angle\s*=\s*force|sp_before_angle\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Angle|Add Sp Before Angle|Remove Sp Before Angle|Force Sp Before Angle"
+ValueDefault=ignore
+
+[Sp Inside Angle]
+Category=1
+Description="<html>Add or remove space inside '&lt;' and '&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_angle\s*=\s*ignore|sp_inside_angle\s*=\s*add|sp_inside_angle\s*=\s*remove|sp_inside_angle\s*=\s*force|sp_inside_angle\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Angle|Add Sp Inside Angle|Remove Sp Inside Angle|Force Sp Inside Angle"
+ValueDefault=ignore
+
+[Sp Inside Angle Empty]
+Category=1
+Description="<html>Add or remove space inside '&lt;&gt;'.<br/>if empty.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_angle_empty\s*=\s*ignore|sp_inside_angle_empty\s*=\s*add|sp_inside_angle_empty\s*=\s*remove|sp_inside_angle_empty\s*=\s*force|sp_inside_angle_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Angle Empty|Add Sp Inside Angle Empty|Remove Sp Inside Angle Empty|Force Sp Inside Angle Empty"
+ValueDefault=ignore
+
+[Sp Angle Colon]
+Category=1
+Description="<html>Add or remove space between '&gt;' and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_colon\s*=\s*ignore|sp_angle_colon\s*=\s*add|sp_angle_colon\s*=\s*remove|sp_angle_colon\s*=\s*force|sp_angle_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Angle Colon|Add Sp Angle Colon|Remove Sp Angle Colon|Force Sp Angle Colon"
+ValueDefault=ignore
+
+[Sp After Angle]
+Category=1
+Description="<html>Add or remove space after '&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_angle\s*=\s*ignore|sp_after_angle\s*=\s*add|sp_after_angle\s*=\s*remove|sp_after_angle\s*=\s*force|sp_after_angle\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Angle|Add Sp After Angle|Remove Sp After Angle|Force Sp After Angle"
+ValueDefault=ignore
+
+[Sp Angle Paren]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '(' as found in 'new List&lt;byte&gt;(foo);'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_paren\s*=\s*ignore|sp_angle_paren\s*=\s*add|sp_angle_paren\s*=\s*remove|sp_angle_paren\s*=\s*force|sp_angle_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Angle Paren|Add Sp Angle Paren|Remove Sp Angle Paren|Force Sp Angle Paren"
+ValueDefault=ignore
+
+[Sp Angle Paren Empty]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '()' as found in 'new List&lt;byte&gt;();'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_paren_empty\s*=\s*ignore|sp_angle_paren_empty\s*=\s*add|sp_angle_paren_empty\s*=\s*remove|sp_angle_paren_empty\s*=\s*force|sp_angle_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Angle Paren Empty|Add Sp Angle Paren Empty|Remove Sp Angle Paren Empty|Force Sp Angle Paren Empty"
+ValueDefault=ignore
+
+[Sp Angle Word]
+Category=1
+Description="<html>Add or remove space between '&gt;' and a word as in 'List&lt;byte&gt; m;' or<br/>'template &lt;typename T&gt; static ...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_word\s*=\s*ignore|sp_angle_word\s*=\s*add|sp_angle_word\s*=\s*remove|sp_angle_word\s*=\s*force|sp_angle_word\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Angle Word|Add Sp Angle Word|Remove Sp Angle Word|Force Sp Angle Word"
+ValueDefault=ignore
+
+[Sp Angle Shift]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '&gt;' in '&gt;&gt;' (template stuff).<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_shift\s*=\s*ignore|sp_angle_shift\s*=\s*add|sp_angle_shift\s*=\s*remove|sp_angle_shift\s*=\s*force|sp_angle_shift\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Angle Shift|Add Sp Angle Shift|Remove Sp Angle Shift|Force Sp Angle Shift"
+ValueDefault=add
+
+[Sp Permit Cpp11 Shift]
+Category=1
+Description="<html>(C++11) Permit removal of the space between '&gt;&gt;' in 'foo&lt;bar&lt;int&gt; &gt;'. Note<br/>that sp_angle_shift cannot remove the space without this option.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_permit_cpp11_shift\s*=\s*true|sp_permit_cpp11_shift\s*=\s*false
+ValueDefault=false
+
+[Sp Before Sparen]
+Category=1
+Description="<html>Add or remove space before '(' of control statements ('if', 'for', 'switch',<br/>'while', etc.).</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_sparen\s*=\s*ignore|sp_before_sparen\s*=\s*add|sp_before_sparen\s*=\s*remove|sp_before_sparen\s*=\s*force|sp_before_sparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Sparen|Add Sp Before Sparen|Remove Sp Before Sparen|Force Sp Before Sparen"
+ValueDefault=ignore
+
+[Sp Inside Sparen]
+Category=1
+Description="<html>Add or remove space inside '(' and ')' of control statements other than<br/>'for'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen\s*=\s*ignore|sp_inside_sparen\s*=\s*add|sp_inside_sparen\s*=\s*remove|sp_inside_sparen\s*=\s*force|sp_inside_sparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Sparen|Add Sp Inside Sparen|Remove Sp Inside Sparen|Force Sp Inside Sparen"
+ValueDefault=ignore
+
+[Sp Inside Sparen Open]
+Category=1
+Description="<html>Add or remove space after '(' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen_open\s*=\s*ignore|sp_inside_sparen_open\s*=\s*add|sp_inside_sparen_open\s*=\s*remove|sp_inside_sparen_open\s*=\s*force|sp_inside_sparen_open\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Sparen Open|Add Sp Inside Sparen Open|Remove Sp Inside Sparen Open|Force Sp Inside Sparen Open"
+ValueDefault=ignore
+
+[Sp Inside Sparen Close]
+Category=1
+Description="<html>Add or remove space before ')' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen_close\s*=\s*ignore|sp_inside_sparen_close\s*=\s*add|sp_inside_sparen_close\s*=\s*remove|sp_inside_sparen_close\s*=\s*force|sp_inside_sparen_close\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Sparen Close|Add Sp Inside Sparen Close|Remove Sp Inside Sparen Close|Force Sp Inside Sparen Close"
+ValueDefault=ignore
+
+[Sp Inside For]
+Category=1
+Description="<html>Add or remove space inside '(' and ')' of 'for' statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for\s*=\s*ignore|sp_inside_for\s*=\s*add|sp_inside_for\s*=\s*remove|sp_inside_for\s*=\s*force|sp_inside_for\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside For|Add Sp Inside For|Remove Sp Inside For|Force Sp Inside For"
+ValueDefault=ignore
+
+[Sp Inside For Open]
+Category=1
+Description="<html>Add or remove space after '(' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for_open\s*=\s*ignore|sp_inside_for_open\s*=\s*add|sp_inside_for_open\s*=\s*remove|sp_inside_for_open\s*=\s*force|sp_inside_for_open\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside For Open|Add Sp Inside For Open|Remove Sp Inside For Open|Force Sp Inside For Open"
+ValueDefault=ignore
+
+[Sp Inside For Close]
+Category=1
+Description="<html>Add or remove space before ')' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for_close\s*=\s*ignore|sp_inside_for_close\s*=\s*add|sp_inside_for_close\s*=\s*remove|sp_inside_for_close\s*=\s*force|sp_inside_for_close\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside For Close|Add Sp Inside For Close|Remove Sp Inside For Close|Force Sp Inside For Close"
+ValueDefault=ignore
+
+[Sp Sparen Paren]
+Category=1
+Description="<html>Add or remove space between '((' or '))' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sparen_paren\s*=\s*ignore|sp_sparen_paren\s*=\s*add|sp_sparen_paren\s*=\s*remove|sp_sparen_paren\s*=\s*force|sp_sparen_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Sparen Paren|Add Sp Sparen Paren|Remove Sp Sparen Paren|Force Sp Sparen Paren"
+ValueDefault=ignore
+
+[Sp After Sparen]
+Category=1
+Description="<html>Add or remove space after ')' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_sparen\s*=\s*ignore|sp_after_sparen\s*=\s*add|sp_after_sparen\s*=\s*remove|sp_after_sparen\s*=\s*force|sp_after_sparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Sparen|Add Sp After Sparen|Remove Sp After Sparen|Force Sp After Sparen"
+ValueDefault=ignore
+
+[Sp Sparen Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sparen_brace\s*=\s*ignore|sp_sparen_brace\s*=\s*add|sp_sparen_brace\s*=\s*remove|sp_sparen_brace\s*=\s*force|sp_sparen_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Sparen Brace|Add Sp Sparen Brace|Remove Sp Sparen Brace|Force Sp Sparen Brace"
+ValueDefault=ignore
+
+[Sp Do Brace Open]
+Category=1
+Description="<html>Add or remove space between 'do' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_do_brace_open\s*=\s*ignore|sp_do_brace_open\s*=\s*add|sp_do_brace_open\s*=\s*remove|sp_do_brace_open\s*=\s*force|sp_do_brace_open\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Do Brace Open|Add Sp Do Brace Open|Remove Sp Do Brace Open|Force Sp Do Brace Open"
+ValueDefault=ignore
+
+[Sp Brace Close While]
+Category=1
+Description="<html>Add or remove space between '}' and 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_close_while\s*=\s*ignore|sp_brace_close_while\s*=\s*add|sp_brace_close_while\s*=\s*remove|sp_brace_close_while\s*=\s*force|sp_brace_close_while\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Brace Close While|Add Sp Brace Close While|Remove Sp Brace Close While|Force Sp Brace Close While"
+ValueDefault=ignore
+
+[Sp While Paren Open]
+Category=1
+Description="<html>Add or remove space between 'while' and '('. Overrides sp_before_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_while_paren_open\s*=\s*ignore|sp_while_paren_open\s*=\s*add|sp_while_paren_open\s*=\s*remove|sp_while_paren_open\s*=\s*force|sp_while_paren_open\s*=\s*not_defined
+ChoicesReadable="Ignore Sp While Paren Open|Add Sp While Paren Open|Remove Sp While Paren Open|Force Sp While Paren Open"
+ValueDefault=ignore
+
+[Sp Invariant Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'invariant' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_invariant_paren\s*=\s*ignore|sp_invariant_paren\s*=\s*add|sp_invariant_paren\s*=\s*remove|sp_invariant_paren\s*=\s*force|sp_invariant_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Invariant Paren|Add Sp Invariant Paren|Remove Sp Invariant Paren|Force Sp Invariant Paren"
+ValueDefault=ignore
+
+[Sp After Invariant Paren]
+Category=1
+Description="<html>(D) Add or remove space after the ')' in 'invariant (C) c'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_invariant_paren\s*=\s*ignore|sp_after_invariant_paren\s*=\s*add|sp_after_invariant_paren\s*=\s*remove|sp_after_invariant_paren\s*=\s*force|sp_after_invariant_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Invariant Paren|Add Sp After Invariant Paren|Remove Sp After Invariant Paren|Force Sp After Invariant Paren"
+ValueDefault=ignore
+
+[Sp Special Semi]
+Category=1
+Description="<html>Add or remove space before empty statement ';' on 'if', 'for' and 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_special_semi\s*=\s*ignore|sp_special_semi\s*=\s*add|sp_special_semi\s*=\s*remove|sp_special_semi\s*=\s*force|sp_special_semi\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Special Semi|Add Sp Special Semi|Remove Sp Special Semi|Force Sp Special Semi"
+ValueDefault=ignore
+
+[Sp Before Semi]
+Category=1
+Description="<html>Add or remove space before ';'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi\s*=\s*ignore|sp_before_semi\s*=\s*add|sp_before_semi\s*=\s*remove|sp_before_semi\s*=\s*force|sp_before_semi\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Semi|Add Sp Before Semi|Remove Sp Before Semi|Force Sp Before Semi"
+ValueDefault=remove
+
+[Sp Before Semi For]
+Category=1
+Description="<html>Add or remove space before ';' in non-empty 'for' statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi_for\s*=\s*ignore|sp_before_semi_for\s*=\s*add|sp_before_semi_for\s*=\s*remove|sp_before_semi_for\s*=\s*force|sp_before_semi_for\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Semi For|Add Sp Before Semi For|Remove Sp Before Semi For|Force Sp Before Semi For"
+ValueDefault=ignore
+
+[Sp Before Semi For Empty]
+Category=1
+Description="<html>Add or remove space before a semicolon of an empty left part of a for<br/>statement, as in 'for ( &lt;here&gt; ; ; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi_for_empty\s*=\s*ignore|sp_before_semi_for_empty\s*=\s*add|sp_before_semi_for_empty\s*=\s*remove|sp_before_semi_for_empty\s*=\s*force|sp_before_semi_for_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Semi For Empty|Add Sp Before Semi For Empty|Remove Sp Before Semi For Empty|Force Sp Before Semi For Empty"
+ValueDefault=ignore
+
+[Sp Between Semi For Empty]
+Category=1
+Description="<html>Add or remove space between the semicolons of an empty middle part of a for<br/>statement, as in 'for ( ; &lt;here&gt; ; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_semi_for_empty\s*=\s*ignore|sp_between_semi_for_empty\s*=\s*add|sp_between_semi_for_empty\s*=\s*remove|sp_between_semi_for_empty\s*=\s*force|sp_between_semi_for_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Between Semi For Empty|Add Sp Between Semi For Empty|Remove Sp Between Semi For Empty|Force Sp Between Semi For Empty"
+ValueDefault=ignore
+
+[Sp After Semi]
+Category=1
+Description="<html>Add or remove space after ';', except when followed by a comment.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi\s*=\s*ignore|sp_after_semi\s*=\s*add|sp_after_semi\s*=\s*remove|sp_after_semi\s*=\s*force|sp_after_semi\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Semi|Add Sp After Semi|Remove Sp After Semi|Force Sp After Semi"
+ValueDefault=add
+
+[Sp After Semi For]
+Category=1
+Description="<html>Add or remove space after ';' in non-empty 'for' statements.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi_for\s*=\s*ignore|sp_after_semi_for\s*=\s*add|sp_after_semi_for\s*=\s*remove|sp_after_semi_for\s*=\s*force|sp_after_semi_for\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Semi For|Add Sp After Semi For|Remove Sp After Semi For|Force Sp After Semi For"
+ValueDefault=force
+
+[Sp After Semi For Empty]
+Category=1
+Description="<html>Add or remove space after the final semicolon of an empty part of a for<br/>statement, as in 'for ( ; ; &lt;here&gt; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi_for_empty\s*=\s*ignore|sp_after_semi_for_empty\s*=\s*add|sp_after_semi_for_empty\s*=\s*remove|sp_after_semi_for_empty\s*=\s*force|sp_after_semi_for_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Semi For Empty|Add Sp After Semi For Empty|Remove Sp After Semi For Empty|Force Sp After Semi For Empty"
+ValueDefault=ignore
+
+[Sp Before Square]
+Category=1
+Description="<html>Add or remove space before '[' (except '[]').</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_square\s*=\s*ignore|sp_before_square\s*=\s*add|sp_before_square\s*=\s*remove|sp_before_square\s*=\s*force|sp_before_square\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Square|Add Sp Before Square|Remove Sp Before Square|Force Sp Before Square"
+ValueDefault=ignore
+
+[Sp Before Vardef Square]
+Category=1
+Description="<html>Add or remove space before '[' for a variable definition.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_vardef_square\s*=\s*ignore|sp_before_vardef_square\s*=\s*add|sp_before_vardef_square\s*=\s*remove|sp_before_vardef_square\s*=\s*force|sp_before_vardef_square\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Vardef Square|Add Sp Before Vardef Square|Remove Sp Before Vardef Square|Force Sp Before Vardef Square"
+ValueDefault=remove
+
+[Sp Before Square Asm Block]
+Category=1
+Description="<html>Add or remove space before '[' for asm block.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_square_asm_block\s*=\s*ignore|sp_before_square_asm_block\s*=\s*add|sp_before_square_asm_block\s*=\s*remove|sp_before_square_asm_block\s*=\s*force|sp_before_square_asm_block\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Square Asm Block|Add Sp Before Square Asm Block|Remove Sp Before Square Asm Block|Force Sp Before Square Asm Block"
+ValueDefault=ignore
+
+[Sp Before Squares]
+Category=1
+Description="<html>Add or remove space before '[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_squares\s*=\s*ignore|sp_before_squares\s*=\s*add|sp_before_squares\s*=\s*remove|sp_before_squares\s*=\s*force|sp_before_squares\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Squares|Add Sp Before Squares|Remove Sp Before Squares|Force Sp Before Squares"
+ValueDefault=ignore
+
+[Sp Cpp Before Struct Binding]
+Category=1
+Description="<html>Add or remove space before C++17 structured bindings.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_before_struct_binding\s*=\s*ignore|sp_cpp_before_struct_binding\s*=\s*add|sp_cpp_before_struct_binding\s*=\s*remove|sp_cpp_before_struct_binding\s*=\s*force|sp_cpp_before_struct_binding\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Before Struct Binding|Add Sp Cpp Before Struct Binding|Remove Sp Cpp Before Struct Binding|Force Sp Cpp Before Struct Binding"
+ValueDefault=ignore
+
+[Sp Inside Square]
+Category=1
+Description="<html>Add or remove space inside a non-empty '[' and ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square\s*=\s*ignore|sp_inside_square\s*=\s*add|sp_inside_square\s*=\s*remove|sp_inside_square\s*=\s*force|sp_inside_square\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Square|Add Sp Inside Square|Remove Sp Inside Square|Force Sp Inside Square"
+ValueDefault=ignore
+
+[Sp Inside Square Empty]
+Category=1
+Description="<html>Add or remove space inside '[]'.<br/>if empty.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square_empty\s*=\s*ignore|sp_inside_square_empty\s*=\s*add|sp_inside_square_empty\s*=\s*remove|sp_inside_square_empty\s*=\s*force|sp_inside_square_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Square Empty|Add Sp Inside Square Empty|Remove Sp Inside Square Empty|Force Sp Inside Square Empty"
+ValueDefault=ignore
+
+[Sp Inside Square Oc Array]
+Category=1
+Description="<html>(OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and<br/>']'. If set to ignore, sp_inside_square is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square_oc_array\s*=\s*ignore|sp_inside_square_oc_array\s*=\s*add|sp_inside_square_oc_array\s*=\s*remove|sp_inside_square_oc_array\s*=\s*force|sp_inside_square_oc_array\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Square Oc Array|Add Sp Inside Square Oc Array|Remove Sp Inside Square Oc Array|Force Sp Inside Square Oc Array"
+ValueDefault=ignore
+
+[Sp After Comma]
+Category=1
+Description="<html>Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_comma\s*=\s*ignore|sp_after_comma\s*=\s*add|sp_after_comma\s*=\s*remove|sp_after_comma\s*=\s*force|sp_after_comma\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Comma|Add Sp After Comma|Remove Sp After Comma|Force Sp After Comma"
+ValueDefault=ignore
+
+[Sp Before Comma]
+Category=1
+Description="<html>Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_comma\s*=\s*ignore|sp_before_comma\s*=\s*add|sp_before_comma\s*=\s*remove|sp_before_comma\s*=\s*force|sp_before_comma\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Comma|Add Sp Before Comma|Remove Sp Before Comma|Force Sp Before Comma"
+ValueDefault=remove
+
+[Sp After Mdatype Commas]
+Category=1
+Description="<html>(C#, Vala) Add or remove space between ',' and ']' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_mdatype_commas\s*=\s*ignore|sp_after_mdatype_commas\s*=\s*add|sp_after_mdatype_commas\s*=\s*remove|sp_after_mdatype_commas\s*=\s*force|sp_after_mdatype_commas\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Mdatype Commas|Add Sp After Mdatype Commas|Remove Sp After Mdatype Commas|Force Sp After Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Before Mdatype Commas]
+Category=1
+Description="<html>(C#, Vala) Add or remove space between '[' and ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_mdatype_commas\s*=\s*ignore|sp_before_mdatype_commas\s*=\s*add|sp_before_mdatype_commas\s*=\s*remove|sp_before_mdatype_commas\s*=\s*force|sp_before_mdatype_commas\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Mdatype Commas|Add Sp Before Mdatype Commas|Remove Sp Before Mdatype Commas|Force Sp Before Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Between Mdatype Commas]
+Category=1
+Description="<html>(C#, Vala) Add or remove space between ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_mdatype_commas\s*=\s*ignore|sp_between_mdatype_commas\s*=\s*add|sp_between_mdatype_commas\s*=\s*remove|sp_between_mdatype_commas\s*=\s*force|sp_between_mdatype_commas\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Between Mdatype Commas|Add Sp Between Mdatype Commas|Remove Sp Between Mdatype Commas|Force Sp Between Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Paren Comma]
+Category=1
+Description="<html>Add or remove space between an open parenthesis and comma,<br/>i.e. '(,' vs. '( ,'.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_comma\s*=\s*ignore|sp_paren_comma\s*=\s*add|sp_paren_comma\s*=\s*remove|sp_paren_comma\s*=\s*force|sp_paren_comma\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Paren Comma|Add Sp Paren Comma|Remove Sp Paren Comma|Force Sp Paren Comma"
+ValueDefault=force
+
+[Sp Type Colon]
+Category=1
+Description="<html>Add or remove space between a type and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_colon\s*=\s*ignore|sp_type_colon\s*=\s*add|sp_type_colon\s*=\s*remove|sp_type_colon\s*=\s*force|sp_type_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Type Colon|Add Sp Type Colon|Remove Sp Type Colon|Force Sp Type Colon"
+ValueDefault=ignore
+
+[Sp After Ellipsis]
+Category=1
+Description="<html>Add or remove space after the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overridden with FORCE</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ellipsis\s*=\s*ignore|sp_after_ellipsis\s*=\s*add|sp_after_ellipsis\s*=\s*remove|sp_after_ellipsis\s*=\s*force|sp_after_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Ellipsis|Add Sp After Ellipsis|Remove Sp After Ellipsis|Force Sp After Ellipsis"
+ValueDefault=ignore
+
+[Sp Before Ellipsis]
+Category=1
+Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overridden with FORCE</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ellipsis\s*=\s*ignore|sp_before_ellipsis\s*=\s*add|sp_before_ellipsis\s*=\s*remove|sp_before_ellipsis\s*=\s*force|sp_before_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Ellipsis|Add Sp Before Ellipsis|Remove Sp Before Ellipsis|Force Sp Before Ellipsis"
+ValueDefault=ignore
+
+[Sp Type Ellipsis]
+Category=1
+Description="<html>Add or remove space between a type and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_ellipsis\s*=\s*ignore|sp_type_ellipsis\s*=\s*add|sp_type_ellipsis\s*=\s*remove|sp_type_ellipsis\s*=\s*force|sp_type_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Type Ellipsis|Add Sp Type Ellipsis|Remove Sp Type Ellipsis|Force Sp Type Ellipsis"
+ValueDefault=ignore
+
+[Sp Ptr Type Ellipsis]
+Category=1
+Description="<html>Add or remove space between a '*' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_type_ellipsis\s*=\s*ignore|sp_ptr_type_ellipsis\s*=\s*add|sp_ptr_type_ellipsis\s*=\s*remove|sp_ptr_type_ellipsis\s*=\s*force|sp_ptr_type_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Ptr Type Ellipsis|Add Sp Ptr Type Ellipsis|Remove Sp Ptr Type Ellipsis|Force Sp Ptr Type Ellipsis"
+ValueDefault=ignore
+
+[Sp Paren Ellipsis]
+Category=1
+Description="<html>Add or remove space between ')' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_ellipsis\s*=\s*ignore|sp_paren_ellipsis\s*=\s*add|sp_paren_ellipsis\s*=\s*remove|sp_paren_ellipsis\s*=\s*force|sp_paren_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Paren Ellipsis|Add Sp Paren Ellipsis|Remove Sp Paren Ellipsis|Force Sp Paren Ellipsis"
+ValueDefault=ignore
+
+[Sp Byref Ellipsis]
+Category=1
+Description="<html>Add or remove space between '&amp;&amp;' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_byref_ellipsis\s*=\s*ignore|sp_byref_ellipsis\s*=\s*add|sp_byref_ellipsis\s*=\s*remove|sp_byref_ellipsis\s*=\s*force|sp_byref_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Byref Ellipsis|Add Sp Byref Ellipsis|Remove Sp Byref Ellipsis|Force Sp Byref Ellipsis"
+ValueDefault=ignore
+
+[Sp Paren Qualifier]
+Category=1
+Description="<html>Add or remove space between ')' and a qualifier such as 'const'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_qualifier\s*=\s*ignore|sp_paren_qualifier\s*=\s*add|sp_paren_qualifier\s*=\s*remove|sp_paren_qualifier\s*=\s*force|sp_paren_qualifier\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Paren Qualifier|Add Sp Paren Qualifier|Remove Sp Paren Qualifier|Force Sp Paren Qualifier"
+ValueDefault=ignore
+
+[Sp Paren Noexcept]
+Category=1
+Description="<html>Add or remove space between ')' and 'noexcept'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_noexcept\s*=\s*ignore|sp_paren_noexcept\s*=\s*add|sp_paren_noexcept\s*=\s*remove|sp_paren_noexcept\s*=\s*force|sp_paren_noexcept\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Paren Noexcept|Add Sp Paren Noexcept|Remove Sp Paren Noexcept|Force Sp Paren Noexcept"
+ValueDefault=ignore
+
+[Sp After Class Colon]
+Category=1
+Description="<html>Add or remove space after class ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_class_colon\s*=\s*ignore|sp_after_class_colon\s*=\s*add|sp_after_class_colon\s*=\s*remove|sp_after_class_colon\s*=\s*force|sp_after_class_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Class Colon|Add Sp After Class Colon|Remove Sp After Class Colon|Force Sp After Class Colon"
+ValueDefault=ignore
+
+[Sp Before Class Colon]
+Category=1
+Description="<html>Add or remove space before class ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_class_colon\s*=\s*ignore|sp_before_class_colon\s*=\s*add|sp_before_class_colon\s*=\s*remove|sp_before_class_colon\s*=\s*force|sp_before_class_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Class Colon|Add Sp Before Class Colon|Remove Sp Before Class Colon|Force Sp Before Class Colon"
+ValueDefault=ignore
+
+[Sp After Constr Colon]
+Category=1
+Description="<html>Add or remove space after class constructor ':'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_constr_colon\s*=\s*ignore|sp_after_constr_colon\s*=\s*add|sp_after_constr_colon\s*=\s*remove|sp_after_constr_colon\s*=\s*force|sp_after_constr_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Constr Colon|Add Sp After Constr Colon|Remove Sp After Constr Colon|Force Sp After Constr Colon"
+ValueDefault=add
+
+[Sp Before Constr Colon]
+Category=1
+Description="<html>Add or remove space before class constructor ':'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_constr_colon\s*=\s*ignore|sp_before_constr_colon\s*=\s*add|sp_before_constr_colon\s*=\s*remove|sp_before_constr_colon\s*=\s*force|sp_before_constr_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Constr Colon|Add Sp Before Constr Colon|Remove Sp Before Constr Colon|Force Sp Before Constr Colon"
+ValueDefault=add
+
+[Sp Before Case Colon]
+Category=1
+Description="<html>Add or remove space before case ':'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_case_colon\s*=\s*ignore|sp_before_case_colon\s*=\s*add|sp_before_case_colon\s*=\s*remove|sp_before_case_colon\s*=\s*force|sp_before_case_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Case Colon|Add Sp Before Case Colon|Remove Sp Before Case Colon|Force Sp Before Case Colon"
+ValueDefault=remove
+
+[Sp After Operator]
+Category=1
+Description="<html>Add or remove space between 'operator' and operator sign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator\s*=\s*ignore|sp_after_operator\s*=\s*add|sp_after_operator\s*=\s*remove|sp_after_operator\s*=\s*force|sp_after_operator\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Operator|Add Sp After Operator|Remove Sp After Operator|Force Sp After Operator"
+ValueDefault=ignore
+
+[Sp After Operator Sym]
+Category=1
+Description="<html>Add or remove space between the operator symbol and the open parenthesis, as<br/>in 'operator ++('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator_sym\s*=\s*ignore|sp_after_operator_sym\s*=\s*add|sp_after_operator_sym\s*=\s*remove|sp_after_operator_sym\s*=\s*force|sp_after_operator_sym\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Operator Sym|Add Sp After Operator Sym|Remove Sp After Operator Sym|Force Sp After Operator Sym"
+ValueDefault=ignore
+
+[Sp After Operator Sym Empty]
+Category=1
+Description="<html>Overrides sp_after_operator_sym when the operator has no arguments, as in<br/>'operator *()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator_sym_empty\s*=\s*ignore|sp_after_operator_sym_empty\s*=\s*add|sp_after_operator_sym_empty\s*=\s*remove|sp_after_operator_sym_empty\s*=\s*force|sp_after_operator_sym_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Operator Sym Empty|Add Sp After Operator Sym Empty|Remove Sp After Operator Sym Empty|Force Sp After Operator Sym Empty"
+ValueDefault=ignore
+
+[Sp After Cast]
+Category=1
+Description="<html>Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or<br/>'(int)a' vs. '(int) a'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_cast\s*=\s*ignore|sp_after_cast\s*=\s*add|sp_after_cast\s*=\s*remove|sp_after_cast\s*=\s*force|sp_after_cast\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Cast|Add Sp After Cast|Remove Sp After Cast|Force Sp After Cast"
+ValueDefault=ignore
+
+[Sp Inside Paren Cast]
+Category=1
+Description="<html>Add or remove spaces inside cast parentheses.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_paren_cast\s*=\s*ignore|sp_inside_paren_cast\s*=\s*add|sp_inside_paren_cast\s*=\s*remove|sp_inside_paren_cast\s*=\s*force|sp_inside_paren_cast\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Paren Cast|Add Sp Inside Paren Cast|Remove Sp Inside Paren Cast|Force Sp Inside Paren Cast"
+ValueDefault=ignore
+
+[Sp Cpp Cast Paren]
+Category=1
+Description="<html>Add or remove space between the type and open parenthesis in a C++ cast,<br/>i.e. 'int(exp)' vs. 'int (exp)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_cast_paren\s*=\s*ignore|sp_cpp_cast_paren\s*=\s*add|sp_cpp_cast_paren\s*=\s*remove|sp_cpp_cast_paren\s*=\s*force|sp_cpp_cast_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cpp Cast Paren|Add Sp Cpp Cast Paren|Remove Sp Cpp Cast Paren|Force Sp Cpp Cast Paren"
+ValueDefault=ignore
+
+[Sp Sizeof Paren]
+Category=1
+Description="<html>Add or remove space between 'sizeof' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_paren\s*=\s*ignore|sp_sizeof_paren\s*=\s*add|sp_sizeof_paren\s*=\s*remove|sp_sizeof_paren\s*=\s*force|sp_sizeof_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Sizeof Paren|Add Sp Sizeof Paren|Remove Sp Sizeof Paren|Force Sp Sizeof Paren"
+ValueDefault=ignore
+
+[Sp Sizeof Ellipsis]
+Category=1
+Description="<html>Add or remove space between 'sizeof' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_ellipsis\s*=\s*ignore|sp_sizeof_ellipsis\s*=\s*add|sp_sizeof_ellipsis\s*=\s*remove|sp_sizeof_ellipsis\s*=\s*force|sp_sizeof_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Sizeof Ellipsis|Add Sp Sizeof Ellipsis|Remove Sp Sizeof Ellipsis|Force Sp Sizeof Ellipsis"
+ValueDefault=ignore
+
+[Sp Sizeof Ellipsis Paren]
+Category=1
+Description="<html>Add or remove space between 'sizeof...' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_ellipsis_paren\s*=\s*ignore|sp_sizeof_ellipsis_paren\s*=\s*add|sp_sizeof_ellipsis_paren\s*=\s*remove|sp_sizeof_ellipsis_paren\s*=\s*force|sp_sizeof_ellipsis_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Sizeof Ellipsis Paren|Add Sp Sizeof Ellipsis Paren|Remove Sp Sizeof Ellipsis Paren|Force Sp Sizeof Ellipsis Paren"
+ValueDefault=ignore
+
+[Sp Ellipsis Parameter Pack]
+Category=1
+Description="<html>Add or remove space between '...' and a parameter pack.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ellipsis_parameter_pack\s*=\s*ignore|sp_ellipsis_parameter_pack\s*=\s*add|sp_ellipsis_parameter_pack\s*=\s*remove|sp_ellipsis_parameter_pack\s*=\s*force|sp_ellipsis_parameter_pack\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Ellipsis Parameter Pack|Add Sp Ellipsis Parameter Pack|Remove Sp Ellipsis Parameter Pack|Force Sp Ellipsis Parameter Pack"
+ValueDefault=ignore
+
+[Sp Parameter Pack Ellipsis]
+Category=1
+Description="<html>Add or remove space between a parameter pack and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_parameter_pack_ellipsis\s*=\s*ignore|sp_parameter_pack_ellipsis\s*=\s*add|sp_parameter_pack_ellipsis\s*=\s*remove|sp_parameter_pack_ellipsis\s*=\s*force|sp_parameter_pack_ellipsis\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Parameter Pack Ellipsis|Add Sp Parameter Pack Ellipsis|Remove Sp Parameter Pack Ellipsis|Force Sp Parameter Pack Ellipsis"
+ValueDefault=ignore
+
+[Sp Decltype Paren]
+Category=1
+Description="<html>Add or remove space between 'decltype' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_decltype_paren\s*=\s*ignore|sp_decltype_paren\s*=\s*add|sp_decltype_paren\s*=\s*remove|sp_decltype_paren\s*=\s*force|sp_decltype_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Decltype Paren|Add Sp Decltype Paren|Remove Sp Decltype Paren|Force Sp Decltype Paren"
+ValueDefault=ignore
+
+[Sp After Tag]
+Category=1
+Description="<html>(Pawn) Add or remove space after the tag keyword.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_tag\s*=\s*ignore|sp_after_tag\s*=\s*add|sp_after_tag\s*=\s*remove|sp_after_tag\s*=\s*force|sp_after_tag\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Tag|Add Sp After Tag|Remove Sp After Tag|Force Sp After Tag"
+ValueDefault=ignore
+
+[Sp Inside Braces Enum]
+Category=1
+Description="<html>Add or remove space inside enum '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_enum\s*=\s*ignore|sp_inside_braces_enum\s*=\s*add|sp_inside_braces_enum\s*=\s*remove|sp_inside_braces_enum\s*=\s*force|sp_inside_braces_enum\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Braces Enum|Add Sp Inside Braces Enum|Remove Sp Inside Braces Enum|Force Sp Inside Braces Enum"
+ValueDefault=ignore
+
+[Sp Inside Braces Struct]
+Category=1
+Description="<html>Add or remove space inside struct/union '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_struct\s*=\s*ignore|sp_inside_braces_struct\s*=\s*add|sp_inside_braces_struct\s*=\s*remove|sp_inside_braces_struct\s*=\s*force|sp_inside_braces_struct\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Braces Struct|Add Sp Inside Braces Struct|Remove Sp Inside Braces Struct|Force Sp Inside Braces Struct"
+ValueDefault=ignore
+
+[Sp Inside Braces Oc Dict]
+Category=1
+Description="<html>(OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_oc_dict\s*=\s*ignore|sp_inside_braces_oc_dict\s*=\s*add|sp_inside_braces_oc_dict\s*=\s*remove|sp_inside_braces_oc_dict\s*=\s*force|sp_inside_braces_oc_dict\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Braces Oc Dict|Add Sp Inside Braces Oc Dict|Remove Sp Inside Braces Oc Dict|Force Sp Inside Braces Oc Dict"
+ValueDefault=ignore
+
+[Sp After Type Brace Init Lst Open]
+Category=1
+Description="<html>Add or remove space after open brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_type_brace_init_lst_open\s*=\s*ignore|sp_after_type_brace_init_lst_open\s*=\s*add|sp_after_type_brace_init_lst_open\s*=\s*remove|sp_after_type_brace_init_lst_open\s*=\s*force|sp_after_type_brace_init_lst_open\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Type Brace Init Lst Open|Add Sp After Type Brace Init Lst Open|Remove Sp After Type Brace Init Lst Open|Force Sp After Type Brace Init Lst Open"
+ValueDefault=ignore
+
+[Sp Before Type Brace Init Lst Close]
+Category=1
+Description="<html>Add or remove space before close brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_type_brace_init_lst_close\s*=\s*ignore|sp_before_type_brace_init_lst_close\s*=\s*add|sp_before_type_brace_init_lst_close\s*=\s*remove|sp_before_type_brace_init_lst_close\s*=\s*force|sp_before_type_brace_init_lst_close\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Type Brace Init Lst Close|Add Sp Before Type Brace Init Lst Close|Remove Sp Before Type Brace Init Lst Close|Force Sp Before Type Brace Init Lst Close"
+ValueDefault=ignore
+
+[Sp Inside Type Brace Init Lst]
+Category=1
+Description="<html>Add or remove space inside an unnamed temporary direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore<br/>works only if sp_before_type_brace_init_lst_close is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_type_brace_init_lst\s*=\s*ignore|sp_inside_type_brace_init_lst\s*=\s*add|sp_inside_type_brace_init_lst\s*=\s*remove|sp_inside_type_brace_init_lst\s*=\s*force|sp_inside_type_brace_init_lst\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Type Brace Init Lst|Add Sp Inside Type Brace Init Lst|Remove Sp Inside Type Brace Init Lst|Force Sp Inside Type Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Inside Braces]
+Category=1
+Description="<html>Add or remove space inside '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces\s*=\s*ignore|sp_inside_braces\s*=\s*add|sp_inside_braces\s*=\s*remove|sp_inside_braces\s*=\s*force|sp_inside_braces\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Braces|Add Sp Inside Braces|Remove Sp Inside Braces|Force Sp Inside Braces"
+ValueDefault=ignore
+
+[Sp Inside Braces Empty]
+Category=1
+Description="<html>Add or remove space inside '{}'.<br/>if empty.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_empty\s*=\s*ignore|sp_inside_braces_empty\s*=\s*add|sp_inside_braces_empty\s*=\s*remove|sp_inside_braces_empty\s*=\s*force|sp_inside_braces_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Braces Empty|Add Sp Inside Braces Empty|Remove Sp Inside Braces Empty|Force Sp Inside Braces Empty"
+ValueDefault=ignore
+
+[Sp Trailing Return]
+Category=1
+Description="<html>Add or remove space around trailing return operator '-&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_trailing_return\s*=\s*ignore|sp_trailing_return\s*=\s*add|sp_trailing_return\s*=\s*remove|sp_trailing_return\s*=\s*force|sp_trailing_return\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Trailing Return|Add Sp Trailing Return|Remove Sp Trailing Return|Force Sp Trailing Return"
+ValueDefault=ignore
+
+[Sp Type Func]
+Category=1
+Description="<html>Add or remove space between return type and function name. A minimum of 1<br/>is forced except for pointer return types.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_func\s*=\s*ignore|sp_type_func\s*=\s*add|sp_type_func\s*=\s*remove|sp_type_func\s*=\s*force|sp_type_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Type Func|Add Sp Type Func|Remove Sp Type Func|Force Sp Type Func"
+ValueDefault=ignore
+
+[Sp Type Brace Init Lst]
+Category=1
+Description="<html>Add or remove space between type and open brace of an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_brace_init_lst\s*=\s*ignore|sp_type_brace_init_lst\s*=\s*add|sp_type_brace_init_lst\s*=\s*remove|sp_type_brace_init_lst\s*=\s*force|sp_type_brace_init_lst\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Type Brace Init Lst|Add Sp Type Brace Init Lst|Remove Sp Type Brace Init Lst|Force Sp Type Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Func Proto Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' on function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_proto_paren\s*=\s*ignore|sp_func_proto_paren\s*=\s*add|sp_func_proto_paren\s*=\s*remove|sp_func_proto_paren\s*=\s*force|sp_func_proto_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Proto Paren|Add Sp Func Proto Paren|Remove Sp Func Proto Paren|Force Sp Func Proto Paren"
+ValueDefault=ignore
+
+[Sp Func Proto Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function declaration<br/>if empty.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_proto_paren_empty\s*=\s*ignore|sp_func_proto_paren_empty\s*=\s*add|sp_func_proto_paren_empty\s*=\s*remove|sp_func_proto_paren_empty\s*=\s*force|sp_func_proto_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Proto Paren Empty|Add Sp Func Proto Paren Empty|Remove Sp Func Proto Paren Empty|Force Sp Func Proto Paren Empty"
+ValueDefault=ignore
+
+[Sp Func Type Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' with a typedef specifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_type_paren\s*=\s*ignore|sp_func_type_paren\s*=\s*add|sp_func_type_paren\s*=\s*remove|sp_func_type_paren\s*=\s*force|sp_func_type_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Type Paren|Add Sp Func Type Paren|Remove Sp Func Type Paren|Force Sp Func Type Paren"
+ValueDefault=ignore
+
+[Sp Func Def Paren]
+Category=1
+Description="<html>Add or remove space between alias name and '(' of a non-pointer function type typedef.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_def_paren\s*=\s*ignore|sp_func_def_paren\s*=\s*add|sp_func_def_paren\s*=\s*remove|sp_func_def_paren\s*=\s*force|sp_func_def_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Def Paren|Add Sp Func Def Paren|Remove Sp Func Def Paren|Force Sp Func Def Paren"
+ValueDefault=ignore
+
+[Sp Func Def Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function definition<br/>if empty.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_def_paren_empty\s*=\s*ignore|sp_func_def_paren_empty\s*=\s*add|sp_func_def_paren_empty\s*=\s*remove|sp_func_def_paren_empty\s*=\s*force|sp_func_def_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Def Paren Empty|Add Sp Func Def Paren Empty|Remove Sp Func Def Paren Empty|Force Sp Func Def Paren Empty"
+ValueDefault=ignore
+
+[Sp Inside Fparens]
+Category=1
+Description="<html>Add or remove space inside empty function '()'.<br/>Overrides sp_after_angle unless use_sp_after_angle_always is set to true.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_fparens\s*=\s*ignore|sp_inside_fparens\s*=\s*add|sp_inside_fparens\s*=\s*remove|sp_inside_fparens\s*=\s*force|sp_inside_fparens\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Fparens|Add Sp Inside Fparens|Remove Sp Inside Fparens|Force Sp Inside Fparens"
+ValueDefault=ignore
+
+[Sp Inside Fparen]
+Category=1
+Description="<html>Add or remove space inside function '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_fparen\s*=\s*ignore|sp_inside_fparen\s*=\s*add|sp_inside_fparen\s*=\s*remove|sp_inside_fparen\s*=\s*force|sp_inside_fparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Fparen|Add Sp Inside Fparen|Remove Sp Inside Fparen|Force Sp Inside Fparen"
+ValueDefault=ignore
+
+[Sp Func Call User Inside Rparen]
+Category=1
+Description="<html>Add or remove space inside user functor '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_inside_rparen\s*=\s*ignore|sp_func_call_user_inside_rparen\s*=\s*add|sp_func_call_user_inside_rparen\s*=\s*remove|sp_func_call_user_inside_rparen\s*=\s*force|sp_func_call_user_inside_rparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Call User Inside Rparen|Add Sp Func Call User Inside Rparen|Remove Sp Func Call User Inside Rparen|Force Sp Func Call User Inside Rparen"
+ValueDefault=ignore
+
+[Sp Inside Rparens]
+Category=1
+Description="<html>Add or remove space inside empty functor '()'.<br/>Overrides sp_after_angle unless use_sp_after_angle_always is set to true.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_rparens\s*=\s*ignore|sp_inside_rparens\s*=\s*add|sp_inside_rparens\s*=\s*remove|sp_inside_rparens\s*=\s*force|sp_inside_rparens\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Rparens|Add Sp Inside Rparens|Remove Sp Inside Rparens|Force Sp Inside Rparens"
+ValueDefault=ignore
+
+[Sp Inside Rparen]
+Category=1
+Description="<html>Add or remove space inside functor '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_rparen\s*=\s*ignore|sp_inside_rparen\s*=\s*add|sp_inside_rparen\s*=\s*remove|sp_inside_rparen\s*=\s*force|sp_inside_rparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Rparen|Add Sp Inside Rparen|Remove Sp Inside Rparen|Force Sp Inside Rparen"
+ValueDefault=ignore
+
+[Sp Inside Tparen]
+Category=1
+Description="<html>Add or remove space inside the first parentheses in a function type, as in<br/>'void (*x)(...)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_tparen\s*=\s*ignore|sp_inside_tparen\s*=\s*add|sp_inside_tparen\s*=\s*remove|sp_inside_tparen\s*=\s*force|sp_inside_tparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Tparen|Add Sp Inside Tparen|Remove Sp Inside Tparen|Force Sp Inside Tparen"
+ValueDefault=ignore
+
+[Sp After Tparen Close]
+Category=1
+Description="<html>Add or remove space between the ')' and '(' in a function type, as in<br/>'void (*x)(...)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_tparen_close\s*=\s*ignore|sp_after_tparen_close\s*=\s*add|sp_after_tparen_close\s*=\s*remove|sp_after_tparen_close\s*=\s*force|sp_after_tparen_close\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Tparen Close|Add Sp After Tparen Close|Remove Sp After Tparen Close|Force Sp After Tparen Close"
+ValueDefault=ignore
+
+[Sp Square Fparen]
+Category=1
+Description="<html>Add or remove space between ']' and '(' when part of a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_square_fparen\s*=\s*ignore|sp_square_fparen\s*=\s*add|sp_square_fparen\s*=\s*remove|sp_square_fparen\s*=\s*force|sp_square_fparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Square Fparen|Add Sp Square Fparen|Remove Sp Square Fparen|Force Sp Square Fparen"
+ValueDefault=ignore
+
+[Sp Fparen Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of function.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_brace\s*=\s*ignore|sp_fparen_brace\s*=\s*add|sp_fparen_brace\s*=\s*remove|sp_fparen_brace\s*=\s*force|sp_fparen_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Fparen Brace|Add Sp Fparen Brace|Remove Sp Fparen Brace|Force Sp Fparen Brace"
+ValueDefault=ignore
+
+[Sp Fparen Brace Initializer]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of a function call in object<br/>initialization.<br/><br/>Overrides sp_fparen_brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_brace_initializer\s*=\s*ignore|sp_fparen_brace_initializer\s*=\s*add|sp_fparen_brace_initializer\s*=\s*remove|sp_fparen_brace_initializer\s*=\s*force|sp_fparen_brace_initializer\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Fparen Brace Initializer|Add Sp Fparen Brace Initializer|Remove Sp Fparen Brace Initializer|Force Sp Fparen Brace Initializer"
+ValueDefault=ignore
+
+[Sp Fparen Dbrace]
+Category=1
+Description="<html>(Java) Add or remove space between ')' and '{{' of double brace initializer.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_dbrace\s*=\s*ignore|sp_fparen_dbrace\s*=\s*add|sp_fparen_dbrace\s*=\s*remove|sp_fparen_dbrace\s*=\s*force|sp_fparen_dbrace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Fparen Dbrace|Add Sp Fparen Dbrace|Remove Sp Fparen Dbrace|Force Sp Fparen Dbrace"
+ValueDefault=ignore
+
+[Sp Func Call Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' on function calls.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_paren\s*=\s*ignore|sp_func_call_paren\s*=\s*add|sp_func_call_paren\s*=\s*remove|sp_func_call_paren\s*=\s*force|sp_func_call_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Call Paren|Add Sp Func Call Paren|Remove Sp Func Call Paren|Force Sp Func Call Paren"
+ValueDefault=ignore
+
+[Sp Func Call Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function calls without<br/>parameters. If set to ignore (the default), sp_func_call_paren is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_paren_empty\s*=\s*ignore|sp_func_call_paren_empty\s*=\s*add|sp_func_call_paren_empty\s*=\s*remove|sp_func_call_paren_empty\s*=\s*force|sp_func_call_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Call Paren Empty|Add Sp Func Call Paren Empty|Remove Sp Func Call Paren Empty|Force Sp Func Call Paren Empty"
+ValueDefault=ignore
+
+[Sp Func Call User Paren]
+Category=1
+Description="<html>Add or remove space between the user function name and '(' on function<br/>calls. You need to set a keyword to be a user function in the config file,<br/>like:<br/> set func_call_user tr _ i18n</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_paren\s*=\s*ignore|sp_func_call_user_paren\s*=\s*add|sp_func_call_user_paren\s*=\s*remove|sp_func_call_user_paren\s*=\s*force|sp_func_call_user_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Call User Paren|Add Sp Func Call User Paren|Remove Sp Func Call User Paren|Force Sp Func Call User Paren"
+ValueDefault=ignore
+
+[Sp Func Call User Inside Fparen]
+Category=1
+Description="<html>Add or remove space inside user function '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_inside_fparen\s*=\s*ignore|sp_func_call_user_inside_fparen\s*=\s*add|sp_func_call_user_inside_fparen\s*=\s*remove|sp_func_call_user_inside_fparen\s*=\s*force|sp_func_call_user_inside_fparen\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Call User Inside Fparen|Add Sp Func Call User Inside Fparen|Remove Sp Func Call User Inside Fparen|Force Sp Func Call User Inside Fparen"
+ValueDefault=ignore
+
+[Sp Func Call User Paren Paren]
+Category=1
+Description="<html>Add or remove space between nested parentheses with user functions,<br/>i.e. '((' vs. '( ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_paren_paren\s*=\s*ignore|sp_func_call_user_paren_paren\s*=\s*add|sp_func_call_user_paren_paren\s*=\s*remove|sp_func_call_user_paren_paren\s*=\s*force|sp_func_call_user_paren_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Call User Paren Paren|Add Sp Func Call User Paren Paren|Remove Sp Func Call User Paren Paren|Force Sp Func Call User Paren Paren"
+ValueDefault=ignore
+
+[Sp Func Class Paren]
+Category=1
+Description="<html>Add or remove space between a constructor/destructor and the open<br/>parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_class_paren\s*=\s*ignore|sp_func_class_paren\s*=\s*add|sp_func_class_paren\s*=\s*remove|sp_func_class_paren\s*=\s*force|sp_func_class_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Class Paren|Add Sp Func Class Paren|Remove Sp Func Class Paren|Force Sp Func Class Paren"
+ValueDefault=ignore
+
+[Sp Func Class Paren Empty]
+Category=1
+Description="<html>Add or remove space between a constructor without parameters or destructor<br/>and '()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_class_paren_empty\s*=\s*ignore|sp_func_class_paren_empty\s*=\s*add|sp_func_class_paren_empty\s*=\s*remove|sp_func_class_paren_empty\s*=\s*force|sp_func_class_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Func Class Paren Empty|Add Sp Func Class Paren Empty|Remove Sp Func Class Paren Empty|Force Sp Func Class Paren Empty"
+ValueDefault=ignore
+
+[Sp Return]
+Category=1
+Description="<html>Add or remove space after 'return'.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return\s*=\s*ignore|sp_return\s*=\s*add|sp_return\s*=\s*remove|sp_return\s*=\s*force|sp_return\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Return|Add Sp Return|Remove Sp Return|Force Sp Return"
+ValueDefault=force
+
+[Sp Return Paren]
+Category=1
+Description="<html>Add or remove space between 'return' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return_paren\s*=\s*ignore|sp_return_paren\s*=\s*add|sp_return_paren\s*=\s*remove|sp_return_paren\s*=\s*force|sp_return_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Return Paren|Add Sp Return Paren|Remove Sp Return Paren|Force Sp Return Paren"
+ValueDefault=ignore
+
+[Sp Return Brace]
+Category=1
+Description="<html>Add or remove space between 'return' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return_brace\s*=\s*ignore|sp_return_brace\s*=\s*add|sp_return_brace\s*=\s*remove|sp_return_brace\s*=\s*force|sp_return_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Return Brace|Add Sp Return Brace|Remove Sp Return Brace|Force Sp Return Brace"
+ValueDefault=ignore
+
+[Sp Attribute Paren]
+Category=1
+Description="<html>Add or remove space between '__attribute__' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_attribute_paren\s*=\s*ignore|sp_attribute_paren\s*=\s*add|sp_attribute_paren\s*=\s*remove|sp_attribute_paren\s*=\s*force|sp_attribute_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Attribute Paren|Add Sp Attribute Paren|Remove Sp Attribute Paren|Force Sp Attribute Paren"
+ValueDefault=ignore
+
+[Sp Defined Paren]
+Category=1
+Description="<html>Add or remove space between 'defined' and '(' in '#if defined (FOO)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_defined_paren\s*=\s*ignore|sp_defined_paren\s*=\s*add|sp_defined_paren\s*=\s*remove|sp_defined_paren\s*=\s*force|sp_defined_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Defined Paren|Add Sp Defined Paren|Remove Sp Defined Paren|Force Sp Defined Paren"
+ValueDefault=ignore
+
+[Sp Throw Paren]
+Category=1
+Description="<html>Add or remove space between 'throw' and '(' in 'throw (something)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_throw_paren\s*=\s*ignore|sp_throw_paren\s*=\s*add|sp_throw_paren\s*=\s*remove|sp_throw_paren\s*=\s*force|sp_throw_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Throw Paren|Add Sp Throw Paren|Remove Sp Throw Paren|Force Sp Throw Paren"
+ValueDefault=ignore
+
+[Sp After Throw]
+Category=1
+Description="<html>Add or remove space between 'throw' and anything other than '(' as in<br/>'@throw [...];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_throw\s*=\s*ignore|sp_after_throw\s*=\s*add|sp_after_throw\s*=\s*remove|sp_after_throw\s*=\s*force|sp_after_throw\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Throw|Add Sp After Throw|Remove Sp After Throw|Force Sp After Throw"
+ValueDefault=ignore
+
+[Sp Catch Paren]
+Category=1
+Description="<html>Add or remove space between 'catch' and '(' in 'catch (something) { }'.<br/>If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_catch_paren\s*=\s*ignore|sp_catch_paren\s*=\s*add|sp_catch_paren\s*=\s*remove|sp_catch_paren\s*=\s*force|sp_catch_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Catch Paren|Add Sp Catch Paren|Remove Sp Catch Paren|Force Sp Catch Paren"
+ValueDefault=ignore
+
+[Sp Oc Catch Paren]
+Category=1
+Description="<html>(OC) Add or remove space between '@catch' and '('<br/>in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_catch_paren\s*=\s*ignore|sp_oc_catch_paren\s*=\s*add|sp_oc_catch_paren\s*=\s*remove|sp_oc_catch_paren\s*=\s*force|sp_oc_catch_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Oc Catch Paren|Add Sp Oc Catch Paren|Remove Sp Oc Catch Paren|Force Sp Oc Catch Paren"
+ValueDefault=ignore
+
+[Sp Before Oc Proto List]
+Category=1
+Description="<html>(OC) Add or remove space before Objective-C protocol list<br/>as in '@protocol Protocol&lt;here&gt;&lt;Protocol_A&gt;' or '@interface MyClass : NSObject&lt;here&gt;&lt;MyProtocol&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_proto_list\s*=\s*ignore|sp_before_oc_proto_list\s*=\s*add|sp_before_oc_proto_list\s*=\s*remove|sp_before_oc_proto_list\s*=\s*force|sp_before_oc_proto_list\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Oc Proto List|Add Sp Before Oc Proto List|Remove Sp Before Oc Proto List|Force Sp Before Oc Proto List"
+ValueDefault=ignore
+
+[Sp Oc Classname Paren]
+Category=1
+Description="<html>(OC) Add or remove space between class name and '('<br/>in '@interface className(categoryName)&lt;ProtocolName&gt;:BaseClass'</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_classname_paren\s*=\s*ignore|sp_oc_classname_paren\s*=\s*add|sp_oc_classname_paren\s*=\s*remove|sp_oc_classname_paren\s*=\s*force|sp_oc_classname_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Oc Classname Paren|Add Sp Oc Classname Paren|Remove Sp Oc Classname Paren|Force Sp Oc Classname Paren"
+ValueDefault=ignore
+
+[Sp Version Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'version' and '('<br/>in 'version (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_version_paren\s*=\s*ignore|sp_version_paren\s*=\s*add|sp_version_paren\s*=\s*remove|sp_version_paren\s*=\s*force|sp_version_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Version Paren|Add Sp Version Paren|Remove Sp Version Paren|Force Sp Version Paren"
+ValueDefault=ignore
+
+[Sp Scope Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'scope' and '('<br/>in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_scope_paren\s*=\s*ignore|sp_scope_paren\s*=\s*add|sp_scope_paren\s*=\s*remove|sp_scope_paren\s*=\s*force|sp_scope_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Scope Paren|Add Sp Scope Paren|Remove Sp Scope Paren|Force Sp Scope Paren"
+ValueDefault=ignore
+
+[Sp Super Paren]
+Category=1
+Description="<html>Add or remove space between 'super' and '(' in 'super (something)'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_super_paren\s*=\s*ignore|sp_super_paren\s*=\s*add|sp_super_paren\s*=\s*remove|sp_super_paren\s*=\s*force|sp_super_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Super Paren|Add Sp Super Paren|Remove Sp Super Paren|Force Sp Super Paren"
+ValueDefault=remove
+
+[Sp This Paren]
+Category=1
+Description="<html>Add or remove space between 'this' and '(' in 'this (something)'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_this_paren\s*=\s*ignore|sp_this_paren\s*=\s*add|sp_this_paren\s*=\s*remove|sp_this_paren\s*=\s*force|sp_this_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp This Paren|Add Sp This Paren|Remove Sp This Paren|Force Sp This Paren"
+ValueDefault=remove
+
+[Sp Macro]
+Category=1
+Description="<html>Add or remove space between a macro name and its definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_macro\s*=\s*ignore|sp_macro\s*=\s*add|sp_macro\s*=\s*remove|sp_macro\s*=\s*force|sp_macro\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Macro|Add Sp Macro|Remove Sp Macro|Force Sp Macro"
+ValueDefault=ignore
+
+[Sp Macro Func]
+Category=1
+Description="<html>Add or remove space between a macro function ')' and its definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_macro_func\s*=\s*ignore|sp_macro_func\s*=\s*add|sp_macro_func\s*=\s*remove|sp_macro_func\s*=\s*force|sp_macro_func\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Macro Func|Add Sp Macro Func|Remove Sp Macro Func|Force Sp Macro Func"
+ValueDefault=ignore
+
+[Sp Else Brace]
+Category=1
+Description="<html>Add or remove space between 'else' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_else_brace\s*=\s*ignore|sp_else_brace\s*=\s*add|sp_else_brace\s*=\s*remove|sp_else_brace\s*=\s*force|sp_else_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Else Brace|Add Sp Else Brace|Remove Sp Else Brace|Force Sp Else Brace"
+ValueDefault=ignore
+
+[Sp Brace Else]
+Category=1
+Description="<html>Add or remove space between '}' and 'else' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_else\s*=\s*ignore|sp_brace_else\s*=\s*add|sp_brace_else\s*=\s*remove|sp_brace_else\s*=\s*force|sp_brace_else\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Brace Else|Add Sp Brace Else|Remove Sp Brace Else|Force Sp Brace Else"
+ValueDefault=ignore
+
+[Sp Brace Typedef]
+Category=1
+Description="<html>Add or remove space between '}' and the name of a typedef on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_typedef\s*=\s*ignore|sp_brace_typedef\s*=\s*add|sp_brace_typedef\s*=\s*remove|sp_brace_typedef\s*=\s*force|sp_brace_typedef\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Brace Typedef|Add Sp Brace Typedef|Remove Sp Brace Typedef|Force Sp Brace Typedef"
+ValueDefault=ignore
+
+[Sp Catch Brace]
+Category=1
+Description="<html>Add or remove space before the '{' of a 'catch' statement, if the '{' and<br/>'catch' are on the same line, as in 'catch (decl) &lt;here&gt; {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_catch_brace\s*=\s*ignore|sp_catch_brace\s*=\s*add|sp_catch_brace\s*=\s*remove|sp_catch_brace\s*=\s*force|sp_catch_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Catch Brace|Add Sp Catch Brace|Remove Sp Catch Brace|Force Sp Catch Brace"
+ValueDefault=ignore
+
+[Sp Oc Catch Brace]
+Category=1
+Description="<html>(OC) Add or remove space before the '{' of a '@catch' statement, if the '{'<br/>and '@catch' are on the same line, as in '@catch (decl) &lt;here&gt; {'.<br/>If set to ignore, sp_catch_brace is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_catch_brace\s*=\s*ignore|sp_oc_catch_brace\s*=\s*add|sp_oc_catch_brace\s*=\s*remove|sp_oc_catch_brace\s*=\s*force|sp_oc_catch_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Oc Catch Brace|Add Sp Oc Catch Brace|Remove Sp Oc Catch Brace|Force Sp Oc Catch Brace"
+ValueDefault=ignore
+
+[Sp Brace Catch]
+Category=1
+Description="<html>Add or remove space between '}' and 'catch' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_catch\s*=\s*ignore|sp_brace_catch\s*=\s*add|sp_brace_catch\s*=\s*remove|sp_brace_catch\s*=\s*force|sp_brace_catch\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Brace Catch|Add Sp Brace Catch|Remove Sp Brace Catch|Force Sp Brace Catch"
+ValueDefault=ignore
+
+[Sp Oc Brace Catch]
+Category=1
+Description="<html>(OC) Add or remove space between '}' and '@catch' if on the same line.<br/>If set to ignore, sp_brace_catch is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_brace_catch\s*=\s*ignore|sp_oc_brace_catch\s*=\s*add|sp_oc_brace_catch\s*=\s*remove|sp_oc_brace_catch\s*=\s*force|sp_oc_brace_catch\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Oc Brace Catch|Add Sp Oc Brace Catch|Remove Sp Oc Brace Catch|Force Sp Oc Brace Catch"
+ValueDefault=ignore
+
+[Sp Finally Brace]
+Category=1
+Description="<html>Add or remove space between 'finally' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_finally_brace\s*=\s*ignore|sp_finally_brace\s*=\s*add|sp_finally_brace\s*=\s*remove|sp_finally_brace\s*=\s*force|sp_finally_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Finally Brace|Add Sp Finally Brace|Remove Sp Finally Brace|Force Sp Finally Brace"
+ValueDefault=ignore
+
+[Sp Brace Finally]
+Category=1
+Description="<html>Add or remove space between '}' and 'finally' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_finally\s*=\s*ignore|sp_brace_finally\s*=\s*add|sp_brace_finally\s*=\s*remove|sp_brace_finally\s*=\s*force|sp_brace_finally\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Brace Finally|Add Sp Brace Finally|Remove Sp Brace Finally|Force Sp Brace Finally"
+ValueDefault=ignore
+
+[Sp Try Brace]
+Category=1
+Description="<html>Add or remove space between 'try' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_try_brace\s*=\s*ignore|sp_try_brace\s*=\s*add|sp_try_brace\s*=\s*remove|sp_try_brace\s*=\s*force|sp_try_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Try Brace|Add Sp Try Brace|Remove Sp Try Brace|Force Sp Try Brace"
+ValueDefault=ignore
+
+[Sp Getset Brace]
+Category=1
+Description="<html>Add or remove space between get/set and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_getset_brace\s*=\s*ignore|sp_getset_brace\s*=\s*add|sp_getset_brace\s*=\s*remove|sp_getset_brace\s*=\s*force|sp_getset_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Getset Brace|Add Sp Getset Brace|Remove Sp Getset Brace|Force Sp Getset Brace"
+ValueDefault=ignore
+
+[Sp Word Brace Init Lst]
+Category=1
+Description="<html>Add or remove space between a variable and '{' for C++ uniform<br/>initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_word_brace_init_lst\s*=\s*ignore|sp_word_brace_init_lst\s*=\s*add|sp_word_brace_init_lst\s*=\s*remove|sp_word_brace_init_lst\s*=\s*force|sp_word_brace_init_lst\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Word Brace Init Lst|Add Sp Word Brace Init Lst|Remove Sp Word Brace Init Lst|Force Sp Word Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Word Brace Ns]
+Category=1
+Description="<html>Add or remove space between a variable and '{' for a namespace.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_word_brace_ns\s*=\s*ignore|sp_word_brace_ns\s*=\s*add|sp_word_brace_ns\s*=\s*remove|sp_word_brace_ns\s*=\s*force|sp_word_brace_ns\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Word Brace Ns|Add Sp Word Brace Ns|Remove Sp Word Brace Ns|Force Sp Word Brace Ns"
+ValueDefault=add
+
+[Sp Before Dc]
+Category=1
+Description="<html>Add or remove space before the '::' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_dc\s*=\s*ignore|sp_before_dc\s*=\s*add|sp_before_dc\s*=\s*remove|sp_before_dc\s*=\s*force|sp_before_dc\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Dc|Add Sp Before Dc|Remove Sp Before Dc|Force Sp Before Dc"
+ValueDefault=ignore
+
+[Sp After Dc]
+Category=1
+Description="<html>Add or remove space after the '::' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_dc\s*=\s*ignore|sp_after_dc\s*=\s*add|sp_after_dc\s*=\s*remove|sp_after_dc\s*=\s*force|sp_after_dc\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Dc|Add Sp After Dc|Remove Sp After Dc|Force Sp After Dc"
+ValueDefault=ignore
+
+[Sp D Array Colon]
+Category=1
+Description="<html>(D) Add or remove around the D named array initializer ':' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_d_array_colon\s*=\s*ignore|sp_d_array_colon\s*=\s*add|sp_d_array_colon\s*=\s*remove|sp_d_array_colon\s*=\s*force|sp_d_array_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp D Array Colon|Add Sp D Array Colon|Remove Sp D Array Colon|Force Sp D Array Colon"
+ValueDefault=ignore
+
+[Sp Not]
+Category=1
+Description="<html>Add or remove space after the '!' (not) unary operator.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_not\s*=\s*ignore|sp_not\s*=\s*add|sp_not\s*=\s*remove|sp_not\s*=\s*force|sp_not\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Not|Add Sp Not|Remove Sp Not|Force Sp Not"
+ValueDefault=remove
+
+[Sp Not Not]
+Category=1
+Description="<html>Add or remove space between two '!' (not) unary operators.<br/>If set to ignore, sp_not will be used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_not_not\s*=\s*ignore|sp_not_not\s*=\s*add|sp_not_not\s*=\s*remove|sp_not_not\s*=\s*force|sp_not_not\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Not Not|Add Sp Not Not|Remove Sp Not Not|Force Sp Not Not"
+ValueDefault=ignore
+
+[Sp Inv]
+Category=1
+Description="<html>Add or remove space after the '~' (invert) unary operator.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inv\s*=\s*ignore|sp_inv\s*=\s*add|sp_inv\s*=\s*remove|sp_inv\s*=\s*force|sp_inv\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inv|Add Sp Inv|Remove Sp Inv|Force Sp Inv"
+ValueDefault=remove
+
+[Sp Addr]
+Category=1
+Description="<html>Add or remove space after the '&amp;' (address-of) unary operator. This does not<br/>affect the spacing after a '&amp;' that is part of a type.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_addr\s*=\s*ignore|sp_addr\s*=\s*add|sp_addr\s*=\s*remove|sp_addr\s*=\s*force|sp_addr\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Addr|Add Sp Addr|Remove Sp Addr|Force Sp Addr"
+ValueDefault=remove
+
+[Sp Member]
+Category=1
+Description="<html>Add or remove space around the '.' or '-&gt;' operators.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_member\s*=\s*ignore|sp_member\s*=\s*add|sp_member\s*=\s*remove|sp_member\s*=\s*force|sp_member\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Member|Add Sp Member|Remove Sp Member|Force Sp Member"
+ValueDefault=remove
+
+[Sp Deref]
+Category=1
+Description="<html>Add or remove space after the '*' (dereference) unary operator. This does<br/>not affect the spacing after a '*' that is part of a type.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_deref\s*=\s*ignore|sp_deref\s*=\s*add|sp_deref\s*=\s*remove|sp_deref\s*=\s*force|sp_deref\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Deref|Add Sp Deref|Remove Sp Deref|Force Sp Deref"
+ValueDefault=remove
+
+[Sp Sign]
+Category=1
+Description="<html>Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sign\s*=\s*ignore|sp_sign\s*=\s*add|sp_sign\s*=\s*remove|sp_sign\s*=\s*force|sp_sign\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Sign|Add Sp Sign|Remove Sp Sign|Force Sp Sign"
+ValueDefault=remove
+
+[Sp Incdec]
+Category=1
+Description="<html>Add or remove space between '++' and '--' the word to which it is being<br/>applied, as in '(--x)' or 'y++;'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_incdec\s*=\s*ignore|sp_incdec\s*=\s*add|sp_incdec\s*=\s*remove|sp_incdec\s*=\s*force|sp_incdec\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Incdec|Add Sp Incdec|Remove Sp Incdec|Force Sp Incdec"
+ValueDefault=remove
+
+[Sp Before Nl Cont]
+Category=1
+Description="<html>Add or remove space before a backslash-newline at the end of a line.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_nl_cont\s*=\s*ignore|sp_before_nl_cont\s*=\s*add|sp_before_nl_cont\s*=\s*remove|sp_before_nl_cont\s*=\s*force|sp_before_nl_cont\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Nl Cont|Add Sp Before Nl Cont|Remove Sp Before Nl Cont|Force Sp Before Nl Cont"
+ValueDefault=add
+
+[Sp After Oc Scope]
+Category=1
+Description="<html>(OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'<br/>or '+(int) bar;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_scope\s*=\s*ignore|sp_after_oc_scope\s*=\s*add|sp_after_oc_scope\s*=\s*remove|sp_after_oc_scope\s*=\s*force|sp_after_oc_scope\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Scope|Add Sp After Oc Scope|Remove Sp After Oc Scope|Force Sp After Oc Scope"
+ValueDefault=ignore
+
+[Sp After Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_colon\s*=\s*ignore|sp_after_oc_colon\s*=\s*add|sp_after_oc_colon\s*=\s*remove|sp_after_oc_colon\s*=\s*force|sp_after_oc_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Colon|Add Sp After Oc Colon|Remove Sp After Oc Colon|Force Sp After Oc Colon"
+ValueDefault=ignore
+
+[Sp Before Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_colon\s*=\s*ignore|sp_before_oc_colon\s*=\s*add|sp_before_oc_colon\s*=\s*remove|sp_before_oc_colon\s*=\s*force|sp_before_oc_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Oc Colon|Add Sp Before Oc Colon|Remove Sp Before Oc Colon|Force Sp Before Oc Colon"
+ValueDefault=ignore
+
+[Sp After Oc Dict Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_dict_colon\s*=\s*ignore|sp_after_oc_dict_colon\s*=\s*add|sp_after_oc_dict_colon\s*=\s*remove|sp_after_oc_dict_colon\s*=\s*force|sp_after_oc_dict_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Dict Colon|Add Sp After Oc Dict Colon|Remove Sp After Oc Dict Colon|Force Sp After Oc Dict Colon"
+ValueDefault=ignore
+
+[Sp Before Oc Dict Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_dict_colon\s*=\s*ignore|sp_before_oc_dict_colon\s*=\s*add|sp_before_oc_dict_colon\s*=\s*remove|sp_before_oc_dict_colon\s*=\s*force|sp_before_oc_dict_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Oc Dict Colon|Add Sp Before Oc Dict Colon|Remove Sp Before Oc Dict Colon|Force Sp Before Oc Dict Colon"
+ValueDefault=ignore
+
+[Sp After Send Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue: 1];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_send_oc_colon\s*=\s*ignore|sp_after_send_oc_colon\s*=\s*add|sp_after_send_oc_colon\s*=\s*remove|sp_after_send_oc_colon\s*=\s*force|sp_after_send_oc_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Send Oc Colon|Add Sp After Send Oc Colon|Remove Sp After Send Oc Colon|Force Sp After Send Oc Colon"
+ValueDefault=ignore
+
+[Sp Before Send Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue :1];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_send_oc_colon\s*=\s*ignore|sp_before_send_oc_colon\s*=\s*add|sp_before_send_oc_colon\s*=\s*remove|sp_before_send_oc_colon\s*=\s*force|sp_before_send_oc_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Send Oc Colon|Add Sp Before Send Oc Colon|Remove Sp Before Send Oc Colon|Force Sp Before Send Oc Colon"
+ValueDefault=ignore
+
+[Sp After Oc Type]
+Category=1
+Description="<html>(OC) Add or remove space after the (type) in message specs,<br/>i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_type\s*=\s*ignore|sp_after_oc_type\s*=\s*add|sp_after_oc_type\s*=\s*remove|sp_after_oc_type\s*=\s*force|sp_after_oc_type\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Type|Add Sp After Oc Type|Remove Sp After Oc Type|Force Sp After Oc Type"
+ValueDefault=ignore
+
+[Sp After Oc Return Type]
+Category=1
+Description="<html>(OC) Add or remove space after the first (type) in message specs,<br/>i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_return_type\s*=\s*ignore|sp_after_oc_return_type\s*=\s*add|sp_after_oc_return_type\s*=\s*remove|sp_after_oc_return_type\s*=\s*force|sp_after_oc_return_type\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Return Type|Add Sp After Oc Return Type|Remove Sp After Oc Return Type|Force Sp After Oc Return Type"
+ValueDefault=ignore
+
+[Sp After Oc At Sel]
+Category=1
+Description="<html>(OC) Add or remove space between '@selector' and '(',<br/>i.e. '@selector(msgName)' vs. '@selector (msgName)'.<br/>Also applies to '@protocol()' constructs.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_at_sel\s*=\s*ignore|sp_after_oc_at_sel\s*=\s*add|sp_after_oc_at_sel\s*=\s*remove|sp_after_oc_at_sel\s*=\s*force|sp_after_oc_at_sel\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc At Sel|Add Sp After Oc At Sel|Remove Sp After Oc At Sel|Force Sp After Oc At Sel"
+ValueDefault=ignore
+
+[Sp After Oc At Sel Parens]
+Category=1
+Description="<html>(OC) Add or remove space between '@selector(x)' and the following word,<br/>i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_at_sel_parens\s*=\s*ignore|sp_after_oc_at_sel_parens\s*=\s*add|sp_after_oc_at_sel_parens\s*=\s*remove|sp_after_oc_at_sel_parens\s*=\s*force|sp_after_oc_at_sel_parens\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc At Sel Parens|Add Sp After Oc At Sel Parens|Remove Sp After Oc At Sel Parens|Force Sp After Oc At Sel Parens"
+ValueDefault=ignore
+
+[Sp Inside Oc At Sel Parens]
+Category=1
+Description="<html>(OC) Add or remove space inside '@selector' parentheses,<br/>i.e. '@selector(foo)' vs. '@selector( foo )'.<br/>Also applies to '@protocol()' constructs.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_oc_at_sel_parens\s*=\s*ignore|sp_inside_oc_at_sel_parens\s*=\s*add|sp_inside_oc_at_sel_parens\s*=\s*remove|sp_inside_oc_at_sel_parens\s*=\s*force|sp_inside_oc_at_sel_parens\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Oc At Sel Parens|Add Sp Inside Oc At Sel Parens|Remove Sp Inside Oc At Sel Parens|Force Sp Inside Oc At Sel Parens"
+ValueDefault=ignore
+
+[Sp Before Oc Block Caret]
+Category=1
+Description="<html>(OC) Add or remove space before a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_block_caret\s*=\s*ignore|sp_before_oc_block_caret\s*=\s*add|sp_before_oc_block_caret\s*=\s*remove|sp_before_oc_block_caret\s*=\s*force|sp_before_oc_block_caret\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Oc Block Caret|Add Sp Before Oc Block Caret|Remove Sp Before Oc Block Caret|Force Sp Before Oc Block Caret"
+ValueDefault=ignore
+
+[Sp After Oc Block Caret]
+Category=1
+Description="<html>(OC) Add or remove space after a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_block_caret\s*=\s*ignore|sp_after_oc_block_caret\s*=\s*add|sp_after_oc_block_caret\s*=\s*remove|sp_after_oc_block_caret\s*=\s*force|sp_after_oc_block_caret\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Block Caret|Add Sp After Oc Block Caret|Remove Sp After Oc Block Caret|Force Sp After Oc Block Caret"
+ValueDefault=ignore
+
+[Sp After Oc Msg Receiver]
+Category=1
+Description="<html>(OC) Add or remove space between the receiver and selector in a message,<br/>as in '[receiver selector ...]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_msg_receiver\s*=\s*ignore|sp_after_oc_msg_receiver\s*=\s*add|sp_after_oc_msg_receiver\s*=\s*remove|sp_after_oc_msg_receiver\s*=\s*force|sp_after_oc_msg_receiver\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Msg Receiver|Add Sp After Oc Msg Receiver|Remove Sp After Oc Msg Receiver|Force Sp After Oc Msg Receiver"
+ValueDefault=ignore
+
+[Sp After Oc Property]
+Category=1
+Description="<html>(OC) Add or remove space after '@property'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_property\s*=\s*ignore|sp_after_oc_property\s*=\s*add|sp_after_oc_property\s*=\s*remove|sp_after_oc_property\s*=\s*force|sp_after_oc_property\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Property|Add Sp After Oc Property|Remove Sp After Oc Property|Force Sp After Oc Property"
+ValueDefault=ignore
+
+[Sp After Oc Synchronized]
+Category=1
+Description="<html>(OC) Add or remove space between '@synchronized' and the open parenthesis,<br/>i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_synchronized\s*=\s*ignore|sp_after_oc_synchronized\s*=\s*add|sp_after_oc_synchronized\s*=\s*remove|sp_after_oc_synchronized\s*=\s*force|sp_after_oc_synchronized\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Oc Synchronized|Add Sp After Oc Synchronized|Remove Sp After Oc Synchronized|Force Sp After Oc Synchronized"
+ValueDefault=ignore
+
+[Sp Cond Colon]
+Category=1
+Description="<html>Add or remove space around the ':' in 'b ? t : f'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon\s*=\s*ignore|sp_cond_colon\s*=\s*add|sp_cond_colon\s*=\s*remove|sp_cond_colon\s*=\s*force|sp_cond_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Colon|Add Sp Cond Colon|Remove Sp Cond Colon|Force Sp Cond Colon"
+ValueDefault=ignore
+
+[Sp Cond Colon Before]
+Category=1
+Description="<html>Add or remove space before the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon_before\s*=\s*ignore|sp_cond_colon_before\s*=\s*add|sp_cond_colon_before\s*=\s*remove|sp_cond_colon_before\s*=\s*force|sp_cond_colon_before\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Colon Before|Add Sp Cond Colon Before|Remove Sp Cond Colon Before|Force Sp Cond Colon Before"
+ValueDefault=ignore
+
+[Sp Cond Colon After]
+Category=1
+Description="<html>Add or remove space after the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon_after\s*=\s*ignore|sp_cond_colon_after\s*=\s*add|sp_cond_colon_after\s*=\s*remove|sp_cond_colon_after\s*=\s*force|sp_cond_colon_after\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Colon After|Add Sp Cond Colon After|Remove Sp Cond Colon After|Force Sp Cond Colon After"
+ValueDefault=ignore
+
+[Sp Cond Question]
+Category=1
+Description="<html>Add or remove space around the '?' in 'b ? t : f'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question\s*=\s*ignore|sp_cond_question\s*=\s*add|sp_cond_question\s*=\s*remove|sp_cond_question\s*=\s*force|sp_cond_question\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Question|Add Sp Cond Question|Remove Sp Cond Question|Force Sp Cond Question"
+ValueDefault=ignore
+
+[Sp Cond Question Before]
+Category=1
+Description="<html>Add or remove space before the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question_before\s*=\s*ignore|sp_cond_question_before\s*=\s*add|sp_cond_question_before\s*=\s*remove|sp_cond_question_before\s*=\s*force|sp_cond_question_before\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Question Before|Add Sp Cond Question Before|Remove Sp Cond Question Before|Force Sp Cond Question Before"
+ValueDefault=ignore
+
+[Sp Cond Question After]
+Category=1
+Description="<html>Add or remove space after the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question_after\s*=\s*ignore|sp_cond_question_after\s*=\s*add|sp_cond_question_after\s*=\s*remove|sp_cond_question_after\s*=\s*force|sp_cond_question_after\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Question After|Add Sp Cond Question After|Remove Sp Cond Question After|Force Sp Cond Question After"
+ValueDefault=ignore
+
+[Sp Cond Ternary Short]
+Category=1
+Description="<html>In the abbreviated ternary form '(a ?: b)', add or remove space between '?'<br/>and ':'.<br/><br/>Overrides all other sp_cond_* options.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_ternary_short\s*=\s*ignore|sp_cond_ternary_short\s*=\s*add|sp_cond_ternary_short\s*=\s*remove|sp_cond_ternary_short\s*=\s*force|sp_cond_ternary_short\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cond Ternary Short|Add Sp Cond Ternary Short|Remove Sp Cond Ternary Short|Force Sp Cond Ternary Short"
+ValueDefault=ignore
+
+[Sp Case Label]
+Category=1
+Description="<html>Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make<br/>sense here.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_case_label\s*=\s*ignore|sp_case_label\s*=\s*add|sp_case_label\s*=\s*remove|sp_case_label\s*=\s*force|sp_case_label\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Case Label|Add Sp Case Label|Remove Sp Case Label|Force Sp Case Label"
+ValueDefault=ignore
+
+[Sp Range]
+Category=1
+Description="<html>(D) Add or remove space around the D '..' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_range\s*=\s*ignore|sp_range\s*=\s*add|sp_range\s*=\s*remove|sp_range\s*=\s*force|sp_range\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Range|Add Sp Range|Remove Sp Range|Force Sp Range"
+ValueDefault=ignore
+
+[Sp After For Colon]
+Category=1
+Description="<html>Add or remove space after ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var : &lt;here&gt; expr)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_for_colon\s*=\s*ignore|sp_after_for_colon\s*=\s*add|sp_after_for_colon\s*=\s*remove|sp_after_for_colon\s*=\s*force|sp_after_for_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After For Colon|Add Sp After For Colon|Remove Sp After For Colon|Force Sp After For Colon"
+ValueDefault=ignore
+
+[Sp Before For Colon]
+Category=1
+Description="<html>Add or remove space before ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var &lt;here&gt; : expr)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_for_colon\s*=\s*ignore|sp_before_for_colon\s*=\s*add|sp_before_for_colon\s*=\s*remove|sp_before_for_colon\s*=\s*force|sp_before_for_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before For Colon|Add Sp Before For Colon|Remove Sp Before For Colon|Force Sp Before For Colon"
+ValueDefault=ignore
+
+[Sp Extern Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'extern' and '(' as in 'extern &lt;here&gt; (C)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_extern_paren\s*=\s*ignore|sp_extern_paren\s*=\s*add|sp_extern_paren\s*=\s*remove|sp_extern_paren\s*=\s*force|sp_extern_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Extern Paren|Add Sp Extern Paren|Remove Sp Extern Paren|Force Sp Extern Paren"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Start]
+Category=1
+Description="<html>Add or remove space after the opening of a C++ comment, as in '// &lt;here&gt; A'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cmt_cpp_start\s*=\s*ignore|sp_cmt_cpp_start\s*=\s*add|sp_cmt_cpp_start\s*=\s*remove|sp_cmt_cpp_start\s*=\s*force|sp_cmt_cpp_start\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cmt Cpp Start|Add Sp Cmt Cpp Start|Remove Sp Cmt Cpp Start|Force Sp Cmt Cpp Start"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Pvs]
+Category=1
+Description="<html>remove space after the '//' and the pvs command '-V1234',<br/>only works with sp_cmt_cpp_start set to add or force.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_pvs\s*=\s*true|sp_cmt_cpp_pvs\s*=\s*false
+ValueDefault=false
+
+[Sp Cmt Cpp Lint]
+Category=1
+Description="<html>remove space after the '//' and the command 'lint',<br/>only works with sp_cmt_cpp_start set to add or force.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_lint\s*=\s*true|sp_cmt_cpp_lint\s*=\s*false
+ValueDefault=false
+
+[Sp Cmt Cpp Region]
+Category=1
+Description="<html>Add or remove space in a C++ region marker comment, as in '// &lt;here&gt; BEGIN'.<br/>A region marker is defined as a comment which is not preceded by other text<br/>(i.e. the comment is the first non-whitespace on the line), and which starts<br/>with either 'BEGIN' or 'END'.<br/><br/>Overrides sp_cmt_cpp_start.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cmt_cpp_region\s*=\s*ignore|sp_cmt_cpp_region\s*=\s*add|sp_cmt_cpp_region\s*=\s*remove|sp_cmt_cpp_region\s*=\s*force|sp_cmt_cpp_region\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Cmt Cpp Region|Add Sp Cmt Cpp Region|Remove Sp Cmt Cpp Region|Force Sp Cmt Cpp Region"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Doxygen]
+Category=1
+Description="<html>If true, space added with sp_cmt_cpp_start will be added after Doxygen<br/>sequences like '///', '///&lt;', '//!' and '//!&lt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_doxygen\s*=\s*true|sp_cmt_cpp_doxygen\s*=\s*false
+ValueDefault=false
+
+[Sp Cmt Cpp Qttr]
+Category=1
+Description="<html>If true, space added with sp_cmt_cpp_start will be added after Qt translator<br/>or meta-data comments like '//:', '//=', and '//~'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_qttr\s*=\s*true|sp_cmt_cpp_qttr\s*=\s*false
+ValueDefault=false
+
+[Sp Endif Cmt]
+Category=1
+Description="<html>Add or remove space between #else or #endif and a trailing comment.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_endif_cmt\s*=\s*ignore|sp_endif_cmt\s*=\s*add|sp_endif_cmt\s*=\s*remove|sp_endif_cmt\s*=\s*force|sp_endif_cmt\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Endif Cmt|Add Sp Endif Cmt|Remove Sp Endif Cmt|Force Sp Endif Cmt"
+ValueDefault=ignore
+
+[Sp After New]
+Category=1
+Description="<html>Add or remove space after 'new', 'delete' and 'delete[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_new\s*=\s*ignore|sp_after_new\s*=\s*add|sp_after_new\s*=\s*remove|sp_after_new\s*=\s*force|sp_after_new\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After New|Add Sp After New|Remove Sp After New|Force Sp After New"
+ValueDefault=ignore
+
+[Sp Between New Paren]
+Category=1
+Description="<html>Add or remove space between 'new' and '(' in 'new()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_new_paren\s*=\s*ignore|sp_between_new_paren\s*=\s*add|sp_between_new_paren\s*=\s*remove|sp_between_new_paren\s*=\s*force|sp_between_new_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Between New Paren|Add Sp Between New Paren|Remove Sp Between New Paren|Force Sp Between New Paren"
+ValueDefault=ignore
+
+[Sp After Newop Paren]
+Category=1
+Description="<html>Add or remove space between ')' and type in 'new(foo) BAR'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_newop_paren\s*=\s*ignore|sp_after_newop_paren\s*=\s*add|sp_after_newop_paren\s*=\s*remove|sp_after_newop_paren\s*=\s*force|sp_after_newop_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Newop Paren|Add Sp After Newop Paren|Remove Sp After Newop Paren|Force Sp After Newop Paren"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren]
+Category=1
+Description="<html>Add or remove space inside parentheses of the new operator<br/>as in 'new(foo) BAR'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren\s*=\s*ignore|sp_inside_newop_paren\s*=\s*add|sp_inside_newop_paren\s*=\s*remove|sp_inside_newop_paren\s*=\s*force|sp_inside_newop_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren|Add Sp Inside Newop Paren|Remove Sp Inside Newop Paren|Force Sp Inside Newop Paren"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren Open]
+Category=1
+Description="<html>Add or remove space after the open parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren_open\s*=\s*ignore|sp_inside_newop_paren_open\s*=\s*add|sp_inside_newop_paren_open\s*=\s*remove|sp_inside_newop_paren_open\s*=\s*force|sp_inside_newop_paren_open\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren Open|Add Sp Inside Newop Paren Open|Remove Sp Inside Newop Paren Open|Force Sp Inside Newop Paren Open"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren Close]
+Category=1
+Description="<html>Add or remove space before the close parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren_close\s*=\s*ignore|sp_inside_newop_paren_close\s*=\s*add|sp_inside_newop_paren_close\s*=\s*remove|sp_inside_newop_paren_close\s*=\s*force|sp_inside_newop_paren_close\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren Close|Add Sp Inside Newop Paren Close|Remove Sp Inside Newop Paren Close|Force Sp Inside Newop Paren Close"
+ValueDefault=ignore
+
+[Sp Before Tr Cmt]
+Category=1
+Description="<html>Add or remove space before a trailing comment.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_tr_cmt\s*=\s*ignore|sp_before_tr_cmt\s*=\s*add|sp_before_tr_cmt\s*=\s*remove|sp_before_tr_cmt\s*=\s*force|sp_before_tr_cmt\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Tr Cmt|Add Sp Before Tr Cmt|Remove Sp Before Tr Cmt|Force Sp Before Tr Cmt"
+ValueDefault=ignore
+
+[Sp Num Before Tr Cmt]
+Category=1
+Description="<html>Number of spaces before a trailing comment.</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_before_tr_cmt\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Sp Before Emb Cmt]
+Category=1
+Description="<html>Add or remove space before an embedded comment.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_emb_cmt\s*=\s*ignore|sp_before_emb_cmt\s*=\s*add|sp_before_emb_cmt\s*=\s*remove|sp_before_emb_cmt\s*=\s*force|sp_before_emb_cmt\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Emb Cmt|Add Sp Before Emb Cmt|Remove Sp Before Emb Cmt|Force Sp Before Emb Cmt"
+ValueDefault=force
+
+[Sp Num Before Emb Cmt]
+Category=1
+Description="<html>Number of spaces before an embedded comment.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_before_emb_cmt\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Sp After Emb Cmt]
+Category=1
+Description="<html>Add or remove space after an embedded comment.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_emb_cmt\s*=\s*ignore|sp_after_emb_cmt\s*=\s*add|sp_after_emb_cmt\s*=\s*remove|sp_after_emb_cmt\s*=\s*force|sp_after_emb_cmt\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Emb Cmt|Add Sp After Emb Cmt|Remove Sp After Emb Cmt|Force Sp After Emb Cmt"
+ValueDefault=force
+
+[Sp Num After Emb Cmt]
+Category=1
+Description="<html>Number of spaces after an embedded comment.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_after_emb_cmt\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Sp Annotation Paren]
+Category=1
+Description="<html>(Java) Add or remove space between an annotation and the open parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_annotation_paren\s*=\s*ignore|sp_annotation_paren\s*=\s*add|sp_annotation_paren\s*=\s*remove|sp_annotation_paren\s*=\s*force|sp_annotation_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Annotation Paren|Add Sp Annotation Paren|Remove Sp Annotation Paren|Force Sp Annotation Paren"
+ValueDefault=ignore
+
+[Sp Skip Vbrace Tokens]
+Category=1
+Description="<html>If true, vbrace tokens are dropped to the previous token and skipped.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_skip_vbrace_tokens\s*=\s*true|sp_skip_vbrace_tokens\s*=\s*false
+ValueDefault=false
+
+[Sp After Noexcept]
+Category=1
+Description="<html>Add or remove space after 'noexcept'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_noexcept\s*=\s*ignore|sp_after_noexcept\s*=\s*add|sp_after_noexcept\s*=\s*remove|sp_after_noexcept\s*=\s*force|sp_after_noexcept\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Noexcept|Add Sp After Noexcept|Remove Sp After Noexcept|Force Sp After Noexcept"
+ValueDefault=ignore
+
+[Sp Vala After Translation]
+Category=1
+Description="<html>Add or remove space after '_'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_vala_after_translation\s*=\s*ignore|sp_vala_after_translation\s*=\s*add|sp_vala_after_translation\s*=\s*remove|sp_vala_after_translation\s*=\s*force|sp_vala_after_translation\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Vala After Translation|Add Sp Vala After Translation|Remove Sp Vala After Translation|Force Sp Vala After Translation"
+ValueDefault=ignore
+
+[Sp Before Bit Colon]
+Category=1
+Description="<html>Add or remove space before a bit colon ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_bit_colon\s*=\s*ignore|sp_before_bit_colon\s*=\s*add|sp_before_bit_colon\s*=\s*remove|sp_before_bit_colon\s*=\s*force|sp_before_bit_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp Before Bit Colon|Add Sp Before Bit Colon|Remove Sp Before Bit Colon|Force Sp Before Bit Colon"
+ValueDefault=ignore
+
+[Sp After Bit Colon]
+Category=1
+Description="<html>Add or remove space after a bit colon ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_bit_colon\s*=\s*ignore|sp_after_bit_colon\s*=\s*add|sp_after_bit_colon\s*=\s*remove|sp_after_bit_colon\s*=\s*force|sp_after_bit_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Sp After Bit Colon|Add Sp After Bit Colon|Remove Sp After Bit Colon|Force Sp After Bit Colon"
+ValueDefault=ignore
+
+[Force Tab After Define]
+Category=1
+Description="<html>If true, a &lt;TAB&gt; is inserted after #define.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=force_tab_after_define\s*=\s*true|force_tab_after_define\s*=\s*false
+ValueDefault=false
+
+[Indent Columns]
+Category=2
+Description="<html>The number of columns to indent per level. Usually 2, 3, 4, or 8.<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_columns\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=8
+
+[Indent Ignore First Continue]
+Category=2
+Description="<html>Whether to ignore indent for the first continuation line. Subsequent<br/>continuation lines will still be indented to match the first.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_first_continue\s*=\s*true|indent_ignore_first_continue\s*=\s*false
+ValueDefault=false
+
+[Indent Continue]
+Category=2
+Description="<html>The continuation indent. If non-zero, this overrides the indent of '(', '['<br/>and '=' continuation indents. Negative values are OK; negative value is<br/>absolute and not increased for each '(' or '[' level.<br/><br/>For FreeBSD, this is set to 4.<br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_continue\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Continue Class Head]
+Category=2
+Description="<html>The continuation indent, only for class header line(s). If non-zero, this<br/>overrides the indent of 'class' continuation indents.<br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_continue_class_head\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Single Newlines]
+Category=2
+Description="<html>Whether to indent empty lines (i.e. lines which contain only spaces before<br/>the newline character).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_single_newlines\s*=\s*true|indent_single_newlines\s*=\s*false
+ValueDefault=false
+
+[Indent Param]
+Category=2
+Description="<html>The continuation indent for func_*_param if they are true. If non-zero, this<br/>overrides the indent.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_param\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent With Tabs]
+Category=2
+Description="<html>How to use tabs when indenting code.<br/><br/>0: Spaces only<br/>1: Indent with tabs to brace level, align with spaces (default)<br/>2: Indent and align with tabs, using spaces when not on a tabstop<br/><br/>Default: 1</html>"
+Enabled=true
+EditorType=multiple
+Choices="indent_with_tabs\s*=\s*0|indent_with_tabs\s*=\s*1|indent_with_tabs\s*=\s*2"
+ChoicesReadable="Spaces only|Indent with tabs, align with spaces|Indent and align with tabs"
+ValueDefault=1
+
+[Indent Cmt With Tabs]
+Category=2
+Description="<html>Whether to indent comments that are not at a brace level with tabs on a<br/>tabstop. Requires indent_with_tabs=2. If false, will use spaces.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cmt_with_tabs\s*=\s*true|indent_cmt_with_tabs\s*=\s*false
+ValueDefault=false
+
+[Indent Align String]
+Category=2
+Description="<html>Whether to indent strings broken by '\' so that they line up.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_string\s*=\s*true|indent_align_string\s*=\s*false
+ValueDefault=false
+
+[Indent Xml String]
+Category=2
+Description="<html>The number of spaces to indent multi-line XML strings.<br/>Requires indent_align_string=true.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_xml_string\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Brace]
+Category=2
+Description="<html>Spaces to indent '{' from level.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_brace\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Braces]
+Category=2
+Description="<html>Whether braces are indented to the body level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces\s*=\s*true|indent_braces\s*=\s*false
+ValueDefault=false
+
+[Indent Braces No Func]
+Category=2
+Description="<html>Whether to disable indenting function braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_func\s*=\s*true|indent_braces_no_func\s*=\s*false
+ValueDefault=false
+
+[Indent Braces No Class]
+Category=2
+Description="<html>Whether to disable indenting class braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_class\s*=\s*true|indent_braces_no_class\s*=\s*false
+ValueDefault=false
+
+[Indent Braces No Struct]
+Category=2
+Description="<html>Whether to disable indenting struct braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_struct\s*=\s*true|indent_braces_no_struct\s*=\s*false
+ValueDefault=false
+
+[Indent Brace Parent]
+Category=2
+Description="<html>Whether to indent based on the size of the brace parent,<br/>i.e. 'if' =&gt; 3 spaces, 'for' =&gt; 4 spaces, etc.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_brace_parent\s*=\s*true|indent_brace_parent\s*=\s*false
+ValueDefault=false
+
+[Indent Paren Open Brace]
+Category=2
+Description="<html>Whether to indent based on the open parenthesis instead of the open brace<br/>in '({\n'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_open_brace\s*=\s*true|indent_paren_open_brace\s*=\s*false
+ValueDefault=false
+
+[Indent Cs Delegate Brace]
+Category=2
+Description="<html>(C#) Whether to indent the brace of a C# delegate by another level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cs_delegate_brace\s*=\s*true|indent_cs_delegate_brace\s*=\s*false
+ValueDefault=false
+
+[Indent Cs Delegate Body]
+Category=2
+Description="<html>(C#) Whether to indent a C# delegate (to handle delegates with no brace) by<br/>another level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cs_delegate_body\s*=\s*true|indent_cs_delegate_body\s*=\s*false
+ValueDefault=false
+
+[Indent Namespace]
+Category=2
+Description="<html>Whether to indent the body of a 'namespace'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace\s*=\s*true|indent_namespace\s*=\s*false
+ValueDefault=false
+
+[Indent Namespace Single Indent]
+Category=2
+Description="<html>Whether to indent only the first namespace, and not any nested namespaces.<br/>Requires indent_namespace=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace_single_indent\s*=\s*true|indent_namespace_single_indent\s*=\s*false
+ValueDefault=false
+
+[Indent Namespace Level]
+Category=2
+Description="<html>The number of spaces to indent a namespace block.<br/>If set to zero, use the value indent_columns</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_namespace_level\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Namespace Limit]
+Category=2
+Description="<html>If the body of the namespace is longer than this number, it won't be<br/>indented. Requires indent_namespace=true. 0 means no limit.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_namespace_limit\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Indent Namespace Inner Only]
+Category=2
+Description="<html>Whether to indent only in inner namespaces (nested in other namespaces).<br/>Requires indent_namespace=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace_inner_only\s*=\s*true|indent_namespace_inner_only\s*=\s*false
+ValueDefault=false
+
+[Indent Extern]
+Category=2
+Description="<html>Whether the 'extern "C"' body is indented.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_extern\s*=\s*true|indent_extern\s*=\s*false
+ValueDefault=false
+
+[Indent Class]
+Category=2
+Description="<html>Whether the 'class' body is indented.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class\s*=\s*true|indent_class\s*=\s*false
+ValueDefault=false
+
+[Indent Ignore Before Class Colon]
+Category=2
+Description="<html>Whether to ignore indent for the leading base class colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_before_class_colon\s*=\s*true|indent_ignore_before_class_colon\s*=\s*false
+ValueDefault=false
+
+[Indent Before Class Colon]
+Category=2
+Description="<html>Additional indent before the leading base class colon.<br/>Negative values decrease indent down to the first column.<br/>Requires indent_ignore_before_class_colon=false and a newline break before<br/>the colon (see pos_class_colon and nl_class_colon)</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_before_class_colon\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Class Colon]
+Category=2
+Description="<html>Whether to indent the stuff after a leading base class colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class_colon\s*=\s*true|indent_class_colon\s*=\s*false
+ValueDefault=false
+
+[Indent Class On Colon]
+Category=2
+Description="<html>Whether to indent based on a class colon instead of the stuff after the<br/>colon. Requires indent_class_colon=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class_on_colon\s*=\s*true|indent_class_on_colon\s*=\s*false
+ValueDefault=false
+
+[Indent Ignore Before Constr Colon]
+Category=2
+Description="<html>Whether to ignore indent for a leading class initializer colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_before_constr_colon\s*=\s*true|indent_ignore_before_constr_colon\s*=\s*false
+ValueDefault=false
+
+[Indent Constr Colon]
+Category=2
+Description="<html>Whether to indent the stuff after a leading class initializer colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_constr_colon\s*=\s*true|indent_constr_colon\s*=\s*false
+ValueDefault=false
+
+[Indent Ctor Init Leading]
+Category=2
+Description="<html>Virtual indent from the ':' for leading member initializers.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init_leading\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=2
+
+[Indent Ctor Init Following]
+Category=2
+Description="<html>Virtual indent from the ':' for following member initializers.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init_following\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=2
+
+[Indent Ctor Init]
+Category=2
+Description="<html>Additional indent for constructor initializer list.<br/>Negative values decrease indent down to the first column.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Else If]
+Category=2
+Description="<html>Whether to indent 'if' following 'else' as a new block under the 'else'.<br/>If false, 'else\nif' is treated as 'else if' for indenting purposes.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_else_if\s*=\s*true|indent_else_if\s*=\s*false
+ValueDefault=false
+
+[Indent Var Def Blk]
+Category=2
+Description="<html>Amount to indent variable declarations after a open brace.<br/><br/> &lt;0: Relative<br/>&gt;=0: Absolute</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_var_def_blk\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Var Def Cont]
+Category=2
+Description="<html>Whether to indent continued variable declarations instead of aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_var_def_cont\s*=\s*true|indent_var_def_cont\s*=\s*false
+ValueDefault=false
+
+[Indent Shift]
+Category=2
+Description="<html>How to indent continued shift expressions ('&lt;&lt;' and '&gt;&gt;').<br/>Set align_left_shift=false when using this.<br/> 0: Align shift operators instead of indenting them (default)<br/> 1: Indent by one level<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_shift\s*=\s*"
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Func Def Force Col1]
+Category=2
+Description="<html>Whether to force indentation of function definitions to start in column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_def_force_col1\s*=\s*true|indent_func_def_force_col1\s*=\s*false
+ValueDefault=false
+
+[Indent Func Call Param]
+Category=2
+Description="<html>Whether to indent continued function call parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_call_param\s*=\s*true|indent_func_call_param\s*=\s*false
+ValueDefault=false
+
+[Indent Func Def Param]
+Category=2
+Description="<html>Whether to indent continued function definition parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_def_param\s*=\s*true|indent_func_def_param\s*=\s*false
+ValueDefault=false
+
+[Indent Func Def Param Paren Pos Threshold]
+Category=2
+Description="<html>for function definitions, only if indent_func_def_param is false<br/>Allows to align params when appropriate and indent them when not<br/>behave as if it was true if paren position is more than this value<br/>if paren position is more than the option value</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_def_param_paren_pos_threshold\s*=\s*"
+MinVal=0
+MaxVal=160
+ValueDefault=0
+
+[Indent Func Proto Param]
+Category=2
+Description="<html>Whether to indent continued function call prototype one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_proto_param\s*=\s*true|indent_func_proto_param\s*=\s*false
+ValueDefault=false
+
+[Indent Func Class Param]
+Category=2
+Description="<html>Whether to indent continued function call declaration one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_class_param\s*=\s*true|indent_func_class_param\s*=\s*false
+ValueDefault=false
+
+[Indent Func Ctor Var Param]
+Category=2
+Description="<html>Whether to indent continued class variable constructors one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_ctor_var_param\s*=\s*true|indent_func_ctor_var_param\s*=\s*false
+ValueDefault=false
+
+[Indent Template Param]
+Category=2
+Description="<html>Whether to indent continued template parameter list one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_template_param\s*=\s*true|indent_template_param\s*=\s*false
+ValueDefault=false
+
+[Indent Func Param Double]
+Category=2
+Description="<html>Double the indent for indent_func_xxx_param options.<br/>Use both values of the options indent_columns and indent_param.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_param_double\s*=\s*true|indent_func_param_double\s*=\s*false
+ValueDefault=false
+
+[Indent Func Const]
+Category=2
+Description="<html>Indentation column for standalone 'const' qualifier on a function<br/>prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_const\s*=\s*"
+MinVal=0
+MaxVal=69
+ValueDefault=0
+
+[Indent Func Throw]
+Category=2
+Description="<html>Indentation column for standalone 'throw' qualifier on a function<br/>prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_throw\s*=\s*"
+MinVal=0
+MaxVal=41
+ValueDefault=0
+
+[Indent Macro Brace]
+Category=2
+Description="<html>How to indent within a macro followed by a brace on the same line<br/>This allows reducing the indent in macros that have (for example)<br/>`do { ... } while ` blocks bracketing them.<br/><br/>true: add an indent for the brace on the same line as the macro<br/>false: do not add an indent for the brace on the same line as the macro<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_macro_brace\s*=\s*true|indent_macro_brace\s*=\s*false
+ValueDefault=true
+
+[Indent Member]
+Category=2
+Description="<html>The number of spaces to indent a continued '-&gt;' or '.'.<br/>Usually set to 0, 1, or indent_columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_member\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Member Single]
+Category=2
+Description="<html>Whether lines broken at '.' or '-&gt;' should be indented by a single indent.<br/>The indent_member option will not be effective if this is set to true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_member_single\s*=\s*true|indent_member_single\s*=\s*false
+ValueDefault=false
+
+[Indent Single Line Comments Before]
+Category=2
+Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_single_line_comments_before\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Single Line Comments After]
+Category=2
+Description="<html>Spaces to indent single line ('//') comments on lines after code.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_single_line_comments_after\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Sparen Extra]
+Category=2
+Description="<html>When opening a paren for a control statement (if, for, while, etc), increase<br/>the indent level by this value. Negative values decrease the indent level.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_sparen_extra\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Relative Single Line Comments]
+Category=2
+Description="<html>Whether to indent trailing single line ('//') comments relative to the code<br/>instead of trying to keep the same absolute column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_relative_single_line_comments\s*=\s*true|indent_relative_single_line_comments\s*=\s*false
+ValueDefault=false
+
+[Indent Switch Case]
+Category=2
+Description="<html>Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.<br/>It might be wise to choose the same value for the option indent_case_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_switch_case\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Switch Body]
+Category=2
+Description="<html>Spaces to indent the body of a 'switch' before any 'case'.<br/>Usually the same as indent_columns or indent_switch_case.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_switch_body\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Ignore Case Brace]
+Category=2
+Description="<html>Whether to ignore indent for '{' following 'case'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_case_brace\s*=\s*true|indent_ignore_case_brace\s*=\s*false
+ValueDefault=false
+
+[Indent Case Brace]
+Category=2
+Description="<html>Spaces to indent '{' from 'case'. By default, the brace will appear under<br/>the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.<br/>It might be wise to choose the same value for the option indent_switch_case.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_case_brace\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Switch Break With Case]
+Category=2
+Description="<html>indent 'break' with 'case' from 'switch'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_switch_break_with_case\s*=\s*true|indent_switch_break_with_case\s*=\s*false
+ValueDefault=false
+
+[Indent Switch Pp]
+Category=2
+Description="<html>Whether to indent preprocessor statements inside of switch statements.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_switch_pp\s*=\s*true|indent_switch_pp\s*=\s*false
+ValueDefault=true
+
+[Indent Case Shift]
+Category=2
+Description="<html>Spaces to shift the 'case' line, without affecting any other lines.<br/>Usually 0.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_case_shift\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Case Comment]
+Category=2
+Description="<html>Whether to align comments before 'case' with the 'case'.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_case_comment\s*=\s*true|indent_case_comment\s*=\s*false
+ValueDefault=true
+
+[Indent Comment]
+Category=2
+Description="<html>Whether to indent comments not found in first column.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_comment\s*=\s*true|indent_comment\s*=\s*false
+ValueDefault=true
+
+[Indent Col1 Comment]
+Category=2
+Description="<html>Whether to indent comments found in first column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_col1_comment\s*=\s*true|indent_col1_comment\s*=\s*false
+ValueDefault=false
+
+[Indent Col1 Multi String Literal]
+Category=2
+Description="<html>Whether to indent multi string literal in first column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_col1_multi_string_literal\s*=\s*true|indent_col1_multi_string_literal\s*=\s*false
+ValueDefault=false
+
+[Indent Comment Align Thresh]
+Category=2
+Description="<html>Align comments on adjacent lines that are this many columns apart or less.<br/><br/>Default: 3</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comment_align_thresh\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=3
+
+[Indent Ignore Label]
+Category=2
+Description="<html>Whether to ignore indent for goto labels.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_label\s*=\s*true|indent_ignore_label\s*=\s*false
+ValueDefault=false
+
+[Indent Label]
+Category=2
+Description="<html>How to indent goto labels. Requires indent_ignore_label=false.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_label\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=1
+
+[Indent Access Spec]
+Category=2
+Description="<html>How to indent access specifiers that are followed by a<br/>colon.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_access_spec\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=1
+
+[Indent Access Spec Body]
+Category=2
+Description="<html>Whether to indent the code after an access specifier by one level.<br/>If true, this option forces 'indent_access_spec=0'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_access_spec_body\s*=\s*true|indent_access_spec_body\s*=\s*false
+ValueDefault=false
+
+[Indent Paren Nl]
+Category=2
+Description="<html>If an open parenthesis is followed by a newline, whether to indent the next<br/>line so that it lines up after the open parenthesis (not recommended).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_nl\s*=\s*true|indent_paren_nl\s*=\s*false
+ValueDefault=false
+
+[Indent Paren Close]
+Category=2
+Description="<html>How to indent a close parenthesis after a newline.<br/><br/> 0: Indent to body level (default)<br/> 1: Align under the open parenthesis<br/> 2: Indent to the brace level<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_paren_close\s*=\s*"
+MinVal=-1
+MaxVal=2
+ValueDefault=0
+
+[Indent Paren After Func Def]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_def\s*=\s*true|indent_paren_after_func_def\s*=\s*false
+ValueDefault=false
+
+[Indent Paren After Func Decl]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function declaration,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_decl\s*=\s*true|indent_paren_after_func_decl\s*=\s*false
+ValueDefault=false
+
+[Indent Paren After Func Call]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function call,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_call\s*=\s*true|indent_paren_after_func_call\s*=\s*false
+ValueDefault=false
+
+[Indent Comma Brace]
+Category=2
+Description="<html>How to indent a comma when inside braces.<br/> 0: Indent by one level (default)<br/> 1: Align under the open brace<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comma_brace\s*=\s*"
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Comma Paren]
+Category=2
+Description="<html>How to indent a comma when inside parentheses.<br/> 0: Indent by one level (default)<br/> 1: Align under the open parenthesis<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comma_paren\s*=\s*"
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Bool Paren]
+Category=2
+Description="<html>How to indent a Boolean operator when inside parentheses.<br/> 0: Indent by one level (default)<br/> 1: Align under the open parenthesis<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_bool_paren\s*=\s*"
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Ignore Bool]
+Category=2
+Description="<html>Whether to ignore the indentation of a Boolean operator when outside<br/>parentheses.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_bool\s*=\s*true|indent_ignore_bool\s*=\s*false
+ValueDefault=false
+
+[Indent Ignore Arith]
+Category=2
+Description="<html>Whether to ignore the indentation of an arithmetic operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_arith\s*=\s*true|indent_ignore_arith\s*=\s*false
+ValueDefault=false
+
+[Indent Semicolon For Paren]
+Category=2
+Description="<html>Whether to indent a semicolon when inside a for parenthesis.<br/>If true, aligns under the open for parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_semicolon_for_paren\s*=\s*true|indent_semicolon_for_paren\s*=\s*false
+ValueDefault=false
+
+[Indent Ignore Semicolon]
+Category=2
+Description="<html>Whether to ignore the indentation of a semicolon outside of a 'for'<br/>statement.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_semicolon\s*=\s*true|indent_ignore_semicolon\s*=\s*false
+ValueDefault=false
+
+[Indent First Bool Expr]
+Category=2
+Description="<html>Whether to align the first expression to following ones<br/>if indent_bool_paren=1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_first_bool_expr\s*=\s*true|indent_first_bool_expr\s*=\s*false
+ValueDefault=false
+
+[Indent First For Expr]
+Category=2
+Description="<html>Whether to align the first expression to following ones<br/>if indent_semicolon_for_paren=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_first_for_expr\s*=\s*true|indent_first_for_expr\s*=\s*false
+ValueDefault=false
+
+[Indent Square Nl]
+Category=2
+Description="<html>If an open square is followed by a newline, whether to indent the next line<br/>so that it lines up after the open square (not recommended).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_square_nl\s*=\s*true|indent_square_nl\s*=\s*false
+ValueDefault=false
+
+[Indent Preserve Sql]
+Category=2
+Description="<html>(ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_preserve_sql\s*=\s*true|indent_preserve_sql\s*=\s*false
+ValueDefault=false
+
+[Indent Ignore Assign]
+Category=2
+Description="<html>Whether to ignore the indentation of an assignment operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_assign\s*=\s*true|indent_ignore_assign\s*=\s*false
+ValueDefault=false
+
+[Indent Align Assign]
+Category=2
+Description="<html>Whether to align continued statements at the '='. If false or if the '=' is<br/>followed by a newline, the next line is indent one tab.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_assign\s*=\s*true|indent_align_assign\s*=\s*false
+ValueDefault=true
+
+[Indent Off After Assign]
+Category=2
+Description="<html>If true, the indentation of the chunks after a '=' sequence will be set at<br/>LHS token indentation column before '='.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_assign\s*=\s*true|indent_off_after_assign\s*=\s*false
+ValueDefault=false
+
+[Indent Align Paren]
+Category=2
+Description="<html>Whether to align continued statements at the '('. If false or the '(' is<br/>followed by a newline, the next line indent is one tab.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_paren\s*=\s*true|indent_align_paren\s*=\s*false
+ValueDefault=true
+
+[Indent Oc Inside Msg Sel]
+Category=2
+Description="<html>(OC) Whether to indent Objective-C code inside message selectors.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_inside_msg_sel\s*=\s*true|indent_oc_inside_msg_sel\s*=\s*false
+ValueDefault=false
+
+[Indent Oc Block]
+Category=2
+Description="<html>(OC) Whether to indent Objective-C blocks at brace level instead of usual<br/>rules.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block\s*=\s*true|indent_oc_block\s*=\s*false
+ValueDefault=false
+
+[Indent Oc Block Msg]
+Category=2
+Description="<html>(OC) Indent for Objective-C blocks in a message relative to the parameter<br/>name.<br/><br/>=0: Use indent_oc_block rules<br/>&gt;0: Use specified number of spaces to indent</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_oc_block_msg\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Oc Msg Colon]
+Category=2
+Description="<html>(OC) Minimum indent for subsequent parameters</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_oc_msg_colon\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Indent Oc Msg Prioritize First Colon]
+Category=2
+Description="<html>(OC) Whether to prioritize aligning with initial colon (and stripping spaces<br/>from lines, if necessary).<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_msg_prioritize_first_colon\s*=\s*true|indent_oc_msg_prioritize_first_colon\s*=\s*false
+ValueDefault=true
+
+[Indent Oc Block Msg Xcode Style]
+Category=2
+Description="<html>(OC) Whether to indent blocks the way that Xcode does by default<br/>(from the keyword if the parameter is on its own line; otherwise, from the<br/>previous indentation level). Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_xcode_style\s*=\s*true|indent_oc_block_msg_xcode_style\s*=\s*false
+ValueDefault=false
+
+[Indent Oc Block Msg From Keyword]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a<br/>message keyword. Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_keyword\s*=\s*true|indent_oc_block_msg_from_keyword\s*=\s*false
+ValueDefault=false
+
+[Indent Oc Block Msg From Colon]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a message<br/>colon. Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_colon\s*=\s*true|indent_oc_block_msg_from_colon\s*=\s*false
+ValueDefault=false
+
+[Indent Oc Block Msg From Caret]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the block caret is.<br/>Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_caret\s*=\s*true|indent_oc_block_msg_from_caret\s*=\s*false
+ValueDefault=false
+
+[Indent Oc Block Msg From Brace]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace caret is.<br/>Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_brace\s*=\s*true|indent_oc_block_msg_from_brace\s*=\s*false
+ValueDefault=false
+
+[Indent Min Vbrace Open]
+Category=2
+Description="<html>When indenting after virtual brace open and newline add further spaces to<br/>reach this minimum indent.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_min_vbrace_open\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Vbrace Open On Tabstop]
+Category=2
+Description="<html>Whether to add further spaces after regular indent to reach next tabstop<br/>when indenting after virtual brace open and newline.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_vbrace_open_on_tabstop\s*=\s*true|indent_vbrace_open_on_tabstop\s*=\s*false
+ValueDefault=false
+
+[Indent Token After Brace]
+Category=2
+Description="<html>How to indent after a brace followed by another token (not a newline).<br/>true: indent all contained lines to match the token<br/>false: indent all contained lines to match the brace<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_token_after_brace\s*=\s*true|indent_token_after_brace\s*=\s*false
+ValueDefault=true
+
+[Indent Cpp Lambda Body]
+Category=2
+Description="<html>Whether to indent the body of a C++11 lambda.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cpp_lambda_body\s*=\s*true|indent_cpp_lambda_body\s*=\s*false
+ValueDefault=false
+
+[Indent Compound Literal Return]
+Category=2
+Description="<html>How to indent compound literals that are being returned.<br/>true: add both the indent from return &amp; the compound literal open brace<br/> (i.e. 2 indent levels)<br/>false: only indent 1 level, don't add the indent for the open brace, only<br/> add the indent for the return.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_compound_literal_return\s*=\s*true|indent_compound_literal_return\s*=\s*false
+ValueDefault=true
+
+[Indent Using Block]
+Category=2
+Description="<html>(C#) Whether to indent a 'using' block if no braces are used.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_using_block\s*=\s*true|indent_using_block\s*=\s*false
+ValueDefault=true
+
+[Indent Ternary Operator]
+Category=2
+Description="<html>How to indent the continuation of ternary operator.<br/><br/>0: Off (default)<br/>1: When the `if_false` is a continuation, indent it under the `if_true` branch<br/>2: When the `:` is a continuation, indent it under `?`</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ternary_operator\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Indent Inside Ternary Operator]
+Category=2
+Description="<html>Whether to indent the statements inside ternary operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_inside_ternary_operator\s*=\s*true|indent_inside_ternary_operator\s*=\s*false
+ValueDefault=false
+
+[Indent Off After Return]
+Category=2
+Description="<html>If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_return\s*=\s*true|indent_off_after_return\s*=\s*false
+ValueDefault=false
+
+[Indent Off After Return New]
+Category=2
+Description="<html>If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_return_new\s*=\s*true|indent_off_after_return_new\s*=\s*false
+ValueDefault=false
+
+[Indent Single After Return]
+Category=2
+Description="<html>If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_single_after_return\s*=\s*true|indent_single_after_return\s*=\s*false
+ValueDefault=false
+
+[Indent Ignore Asm Block]
+Category=2
+Description="<html>Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they<br/>have their own indentation).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_asm_block\s*=\s*true|indent_ignore_asm_block\s*=\s*false
+ValueDefault=false
+
+[Donot Indent Func Def Close Paren]
+Category=2
+Description="<html>Don't indent the close parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=donot_indent_func_def_close_paren\s*=\s*true|donot_indent_func_def_close_paren\s*=\s*false
+ValueDefault=false
+
+[Nl Collapse Empty Body]
+Category=3
+Description="<html>Whether to collapse empty blocks between '{' and '}' except for functions.<br/>Use nl_collapse_empty_body_functions to specify how empty function braces<br/>should be formatted.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_collapse_empty_body\s*=\s*true|nl_collapse_empty_body\s*=\s*false
+ValueDefault=false
+
+[Nl Collapse Empty Body Functions]
+Category=3
+Description="<html>Whether to collapse empty blocks between '{' and '}' for functions only.<br/>If true, overrides nl_inside_empty_func.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_collapse_empty_body_functions\s*=\s*true|nl_collapse_empty_body_functions\s*=\s*false
+ValueDefault=false
+
+[Nl Assign Leave One Liners]
+Category=3
+Description="<html>Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_assign_leave_one_liners\s*=\s*true|nl_assign_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Class Leave One Liners]
+Category=3
+Description="<html>Don't split one-line braced statements inside a 'class xx { }' body.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_class_leave_one_liners\s*=\s*true|nl_class_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Enum Leave One Liners]
+Category=3
+Description="<html>Don't split one-line enums, as in 'enum foo { BAR = 15 };'</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_enum_leave_one_liners\s*=\s*true|nl_enum_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Getset Leave One Liners]
+Category=3
+Description="<html>Don't split one-line get or set functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_getset_leave_one_liners\s*=\s*true|nl_getset_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Cs Property Leave One Liners]
+Category=3
+Description="<html>(C#) Don't split one-line property get or set functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_cs_property_leave_one_liners\s*=\s*true|nl_cs_property_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Func Leave One Liners]
+Category=3
+Description="<html>Don't split one-line function definitions, as in 'int foo() { return 0; }'.<br/>might modify nl_func_type_name</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_leave_one_liners\s*=\s*true|nl_func_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Cpp Lambda Leave One Liners]
+Category=3
+Description="<html>Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_cpp_lambda_leave_one_liners\s*=\s*true|nl_cpp_lambda_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl If Leave One Liners]
+Category=3
+Description="<html>Don't split one-line if/else statements, as in 'if(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_if_leave_one_liners\s*=\s*true|nl_if_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl While Leave One Liners]
+Category=3
+Description="<html>Don't split one-line while statements, as in 'while(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_while_leave_one_liners\s*=\s*true|nl_while_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Do Leave One Liners]
+Category=3
+Description="<html>Don't split one-line do statements, as in 'do { b++; } while(...);'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_do_leave_one_liners\s*=\s*true|nl_do_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl For Leave One Liners]
+Category=3
+Description="<html>Don't split one-line for statements, as in 'for(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_for_leave_one_liners\s*=\s*true|nl_for_leave_one_liners\s*=\s*false
+ValueDefault=false
+
+[Nl Oc Msg Leave One Liner]
+Category=3
+Description="<html>(OC) Don't split one-line Objective-C messages.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_oc_msg_leave_one_liner\s*=\s*true|nl_oc_msg_leave_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Oc Mdef Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between method declaration and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_mdef_brace\s*=\s*ignore|nl_oc_mdef_brace\s*=\s*add|nl_oc_mdef_brace\s*=\s*remove|nl_oc_mdef_brace\s*=\s*force|nl_oc_mdef_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Mdef Brace|Add Nl Oc Mdef Brace|Remove Nl Oc Mdef Brace|Force Nl Oc Mdef Brace"
+ValueDefault=ignore
+
+[Nl Oc Block Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between Objective-C block signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_block_brace\s*=\s*ignore|nl_oc_block_brace\s*=\s*add|nl_oc_block_brace\s*=\s*remove|nl_oc_block_brace\s*=\s*force|nl_oc_block_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Block Brace|Add Nl Oc Block Brace|Remove Nl Oc Block Brace|Force Nl Oc Block Brace"
+ValueDefault=ignore
+
+[Nl Oc Before Interface]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@interface' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_interface\s*=\s*ignore|nl_oc_before_interface\s*=\s*add|nl_oc_before_interface\s*=\s*remove|nl_oc_before_interface\s*=\s*force|nl_oc_before_interface\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Before Interface|Add Nl Oc Before Interface|Remove Nl Oc Before Interface|Force Nl Oc Before Interface"
+ValueDefault=ignore
+
+[Nl Oc Before Implementation]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@implementation' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_implementation\s*=\s*ignore|nl_oc_before_implementation\s*=\s*add|nl_oc_before_implementation\s*=\s*remove|nl_oc_before_implementation\s*=\s*force|nl_oc_before_implementation\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Before Implementation|Add Nl Oc Before Implementation|Remove Nl Oc Before Implementation|Force Nl Oc Before Implementation"
+ValueDefault=ignore
+
+[Nl Oc Before End]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@end' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_end\s*=\s*ignore|nl_oc_before_end\s*=\s*add|nl_oc_before_end\s*=\s*remove|nl_oc_before_end\s*=\s*force|nl_oc_before_end\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Before End|Add Nl Oc Before End|Remove Nl Oc Before End|Force Nl Oc Before End"
+ValueDefault=ignore
+
+[Nl Oc Interface Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between '@interface' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_interface_brace\s*=\s*ignore|nl_oc_interface_brace\s*=\s*add|nl_oc_interface_brace\s*=\s*remove|nl_oc_interface_brace\s*=\s*force|nl_oc_interface_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Interface Brace|Add Nl Oc Interface Brace|Remove Nl Oc Interface Brace|Force Nl Oc Interface Brace"
+ValueDefault=ignore
+
+[Nl Oc Implementation Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between '@implementation' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_implementation_brace\s*=\s*ignore|nl_oc_implementation_brace\s*=\s*add|nl_oc_implementation_brace\s*=\s*remove|nl_oc_implementation_brace\s*=\s*force|nl_oc_implementation_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Implementation Brace|Add Nl Oc Implementation Brace|Remove Nl Oc Implementation Brace|Force Nl Oc Implementation Brace"
+ValueDefault=ignore
+
+[Nl Start Of File]
+Category=3
+Description="<html>Add or remove newlines at the start of the file.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_start_of_file\s*=\s*ignore|nl_start_of_file\s*=\s*add|nl_start_of_file\s*=\s*remove|nl_start_of_file\s*=\s*force|nl_start_of_file\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Start Of File|Add Nl Start Of File|Remove Nl Start Of File|Force Nl Start Of File"
+ValueDefault=ignore
+
+[Nl Start Of File Min]
+Category=3
+Description="<html>The minimum number of newlines at the start of the file (only used if<br/>nl_start_of_file is 'add' or 'force').</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_start_of_file_min\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl End Of File]
+Category=3
+Description="<html>Add or remove newline at the end of the file.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_end_of_file\s*=\s*ignore|nl_end_of_file\s*=\s*add|nl_end_of_file\s*=\s*remove|nl_end_of_file\s*=\s*force|nl_end_of_file\s*=\s*not_defined
+ChoicesReadable="Ignore Nl End Of File|Add Nl End Of File|Remove Nl End Of File|Force Nl End Of File"
+ValueDefault=ignore
+
+[Nl End Of File Min]
+Category=3
+Description="<html>The minimum number of newlines at the end of the file (only used if<br/>nl_end_of_file is 'add' or 'force').</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_end_of_file_min\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Assign Brace]
+Category=3
+Description="<html>Add or remove newline between '=' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_assign_brace\s*=\s*ignore|nl_assign_brace\s*=\s*add|nl_assign_brace\s*=\s*remove|nl_assign_brace\s*=\s*force|nl_assign_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Assign Brace|Add Nl Assign Brace|Remove Nl Assign Brace|Force Nl Assign Brace"
+ValueDefault=ignore
+
+[Nl Assign Square]
+Category=3
+Description="<html>(D) Add or remove newline between '=' and '['.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_assign_square\s*=\s*ignore|nl_assign_square\s*=\s*add|nl_assign_square\s*=\s*remove|nl_assign_square\s*=\s*force|nl_assign_square\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Assign Square|Add Nl Assign Square|Remove Nl Assign Square|Force Nl Assign Square"
+ValueDefault=ignore
+
+[Nl Tsquare Brace]
+Category=3
+Description="<html>Add or remove newline between '[]' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_tsquare_brace\s*=\s*ignore|nl_tsquare_brace\s*=\s*add|nl_tsquare_brace\s*=\s*remove|nl_tsquare_brace\s*=\s*force|nl_tsquare_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Tsquare Brace|Add Nl Tsquare Brace|Remove Nl Tsquare Brace|Force Nl Tsquare Brace"
+ValueDefault=ignore
+
+[Nl After Square Assign]
+Category=3
+Description="<html>(D) Add or remove newline after '= ['. Will also affect the newline before<br/>the ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_square_assign\s*=\s*ignore|nl_after_square_assign\s*=\s*add|nl_after_square_assign\s*=\s*remove|nl_after_square_assign\s*=\s*force|nl_after_square_assign\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After Square Assign|Add Nl After Square Assign|Remove Nl After Square Assign|Force Nl After Square Assign"
+ValueDefault=ignore
+
+[Nl Fcall Brace]
+Category=3
+Description="<html>Add or remove newline between a function call's ')' and '{', as in<br/>'list_for_each(item, &amp;list) { }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fcall_brace\s*=\s*ignore|nl_fcall_brace\s*=\s*add|nl_fcall_brace\s*=\s*remove|nl_fcall_brace\s*=\s*force|nl_fcall_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Fcall Brace|Add Nl Fcall Brace|Remove Nl Fcall Brace|Force Nl Fcall Brace"
+ValueDefault=ignore
+
+[Nl Enum Brace]
+Category=3
+Description="<html>Add or remove newline between 'enum' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_brace\s*=\s*ignore|nl_enum_brace\s*=\s*add|nl_enum_brace\s*=\s*remove|nl_enum_brace\s*=\s*force|nl_enum_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Enum Brace|Add Nl Enum Brace|Remove Nl Enum Brace|Force Nl Enum Brace"
+ValueDefault=ignore
+
+[Nl Enum Class]
+Category=3
+Description="<html>Add or remove newline between 'enum' and 'class'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_class\s*=\s*ignore|nl_enum_class\s*=\s*add|nl_enum_class\s*=\s*remove|nl_enum_class\s*=\s*force|nl_enum_class\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Enum Class|Add Nl Enum Class|Remove Nl Enum Class|Force Nl Enum Class"
+ValueDefault=ignore
+
+[Nl Enum Class Identifier]
+Category=3
+Description="<html>Add or remove newline between 'enum class' and the identifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_class_identifier\s*=\s*ignore|nl_enum_class_identifier\s*=\s*add|nl_enum_class_identifier\s*=\s*remove|nl_enum_class_identifier\s*=\s*force|nl_enum_class_identifier\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Enum Class Identifier|Add Nl Enum Class Identifier|Remove Nl Enum Class Identifier|Force Nl Enum Class Identifier"
+ValueDefault=ignore
+
+[Nl Enum Identifier Colon]
+Category=3
+Description="<html>Add or remove newline between 'enum class' type and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_identifier_colon\s*=\s*ignore|nl_enum_identifier_colon\s*=\s*add|nl_enum_identifier_colon\s*=\s*remove|nl_enum_identifier_colon\s*=\s*force|nl_enum_identifier_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Enum Identifier Colon|Add Nl Enum Identifier Colon|Remove Nl Enum Identifier Colon|Force Nl Enum Identifier Colon"
+ValueDefault=ignore
+
+[Nl Enum Colon Type]
+Category=3
+Description="<html>Add or remove newline between 'enum class identifier :' and type.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_colon_type\s*=\s*ignore|nl_enum_colon_type\s*=\s*add|nl_enum_colon_type\s*=\s*remove|nl_enum_colon_type\s*=\s*force|nl_enum_colon_type\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Enum Colon Type|Add Nl Enum Colon Type|Remove Nl Enum Colon Type|Force Nl Enum Colon Type"
+ValueDefault=ignore
+
+[Nl Struct Brace]
+Category=3
+Description="<html>Add or remove newline between 'struct and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_struct_brace\s*=\s*ignore|nl_struct_brace\s*=\s*add|nl_struct_brace\s*=\s*remove|nl_struct_brace\s*=\s*force|nl_struct_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Struct Brace|Add Nl Struct Brace|Remove Nl Struct Brace|Force Nl Struct Brace"
+ValueDefault=ignore
+
+[Nl Union Brace]
+Category=3
+Description="<html>Add or remove newline between 'union' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_union_brace\s*=\s*ignore|nl_union_brace\s*=\s*add|nl_union_brace\s*=\s*remove|nl_union_brace\s*=\s*force|nl_union_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Union Brace|Add Nl Union Brace|Remove Nl Union Brace|Force Nl Union Brace"
+ValueDefault=ignore
+
+[Nl If Brace]
+Category=3
+Description="<html>Add or remove newline between 'if' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_if_brace\s*=\s*ignore|nl_if_brace\s*=\s*add|nl_if_brace\s*=\s*remove|nl_if_brace\s*=\s*force|nl_if_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl If Brace|Add Nl If Brace|Remove Nl If Brace|Force Nl If Brace"
+ValueDefault=ignore
+
+[Nl Brace Else]
+Category=3
+Description="<html>Add or remove newline between '}' and 'else'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_else\s*=\s*ignore|nl_brace_else\s*=\s*add|nl_brace_else\s*=\s*remove|nl_brace_else\s*=\s*force|nl_brace_else\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Else|Add Nl Brace Else|Remove Nl Brace Else|Force Nl Brace Else"
+ValueDefault=ignore
+
+[Nl Elseif Brace]
+Category=3
+Description="<html>Add or remove newline between 'else if' and '{'. If set to ignore,<br/>nl_if_brace is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_elseif_brace\s*=\s*ignore|nl_elseif_brace\s*=\s*add|nl_elseif_brace\s*=\s*remove|nl_elseif_brace\s*=\s*force|nl_elseif_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Elseif Brace|Add Nl Elseif Brace|Remove Nl Elseif Brace|Force Nl Elseif Brace"
+ValueDefault=ignore
+
+[Nl Else Brace]
+Category=3
+Description="<html>Add or remove newline between 'else' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_else_brace\s*=\s*ignore|nl_else_brace\s*=\s*add|nl_else_brace\s*=\s*remove|nl_else_brace\s*=\s*force|nl_else_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Else Brace|Add Nl Else Brace|Remove Nl Else Brace|Force Nl Else Brace"
+ValueDefault=ignore
+
+[Nl Else If]
+Category=3
+Description="<html>Add or remove newline between 'else' and 'if'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_else_if\s*=\s*ignore|nl_else_if\s*=\s*add|nl_else_if\s*=\s*remove|nl_else_if\s*=\s*force|nl_else_if\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Else If|Add Nl Else If|Remove Nl Else If|Force Nl Else If"
+ValueDefault=ignore
+
+[Nl Before Opening Brace Func Class Def]
+Category=3
+Description="<html>Add or remove newline before '{' opening brace</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_opening_brace_func_class_def\s*=\s*ignore|nl_before_opening_brace_func_class_def\s*=\s*add|nl_before_opening_brace_func_class_def\s*=\s*remove|nl_before_opening_brace_func_class_def\s*=\s*force|nl_before_opening_brace_func_class_def\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before Opening Brace Func Class Def|Add Nl Before Opening Brace Func Class Def|Remove Nl Before Opening Brace Func Class Def|Force Nl Before Opening Brace Func Class Def"
+ValueDefault=ignore
+
+[Nl Before If Closing Paren]
+Category=3
+Description="<html>Add or remove newline before 'if'/'else if' closing parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_if_closing_paren\s*=\s*ignore|nl_before_if_closing_paren\s*=\s*add|nl_before_if_closing_paren\s*=\s*remove|nl_before_if_closing_paren\s*=\s*force|nl_before_if_closing_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before If Closing Paren|Add Nl Before If Closing Paren|Remove Nl Before If Closing Paren|Force Nl Before If Closing Paren"
+ValueDefault=ignore
+
+[Nl Brace Finally]
+Category=3
+Description="<html>Add or remove newline between '}' and 'finally'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_finally\s*=\s*ignore|nl_brace_finally\s*=\s*add|nl_brace_finally\s*=\s*remove|nl_brace_finally\s*=\s*force|nl_brace_finally\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Finally|Add Nl Brace Finally|Remove Nl Brace Finally|Force Nl Brace Finally"
+ValueDefault=ignore
+
+[Nl Finally Brace]
+Category=3
+Description="<html>Add or remove newline between 'finally' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_finally_brace\s*=\s*ignore|nl_finally_brace\s*=\s*add|nl_finally_brace\s*=\s*remove|nl_finally_brace\s*=\s*force|nl_finally_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Finally Brace|Add Nl Finally Brace|Remove Nl Finally Brace|Force Nl Finally Brace"
+ValueDefault=ignore
+
+[Nl Try Brace]
+Category=3
+Description="<html>Add or remove newline between 'try' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_try_brace\s*=\s*ignore|nl_try_brace\s*=\s*add|nl_try_brace\s*=\s*remove|nl_try_brace\s*=\s*force|nl_try_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Try Brace|Add Nl Try Brace|Remove Nl Try Brace|Force Nl Try Brace"
+ValueDefault=ignore
+
+[Nl Getset Brace]
+Category=3
+Description="<html>Add or remove newline between get/set and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_getset_brace\s*=\s*ignore|nl_getset_brace\s*=\s*add|nl_getset_brace\s*=\s*remove|nl_getset_brace\s*=\s*force|nl_getset_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Getset Brace|Add Nl Getset Brace|Remove Nl Getset Brace|Force Nl Getset Brace"
+ValueDefault=ignore
+
+[Nl For Brace]
+Category=3
+Description="<html>Add or remove newline between 'for' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_for_brace\s*=\s*ignore|nl_for_brace\s*=\s*add|nl_for_brace\s*=\s*remove|nl_for_brace\s*=\s*force|nl_for_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl For Brace|Add Nl For Brace|Remove Nl For Brace|Force Nl For Brace"
+ValueDefault=ignore
+
+[Nl Catch Brace]
+Category=3
+Description="<html>Add or remove newline before the '{' of a 'catch' statement, as in<br/>'catch (decl) &lt;here&gt; {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_catch_brace\s*=\s*ignore|nl_catch_brace\s*=\s*add|nl_catch_brace\s*=\s*remove|nl_catch_brace\s*=\s*force|nl_catch_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Catch Brace|Add Nl Catch Brace|Remove Nl Catch Brace|Force Nl Catch Brace"
+ValueDefault=ignore
+
+[Nl Oc Catch Brace]
+Category=3
+Description="<html>(OC) Add or remove newline before the '{' of a '@catch' statement, as in<br/>'@catch (decl) &lt;here&gt; {'. If set to ignore, nl_catch_brace is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_catch_brace\s*=\s*ignore|nl_oc_catch_brace\s*=\s*add|nl_oc_catch_brace\s*=\s*remove|nl_oc_catch_brace\s*=\s*force|nl_oc_catch_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Catch Brace|Add Nl Oc Catch Brace|Remove Nl Oc Catch Brace|Force Nl Oc Catch Brace"
+ValueDefault=ignore
+
+[Nl Brace Catch]
+Category=3
+Description="<html>Add or remove newline between '}' and 'catch'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_catch\s*=\s*ignore|nl_brace_catch\s*=\s*add|nl_brace_catch\s*=\s*remove|nl_brace_catch\s*=\s*force|nl_brace_catch\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Catch|Add Nl Brace Catch|Remove Nl Brace Catch|Force Nl Brace Catch"
+ValueDefault=ignore
+
+[Nl Oc Brace Catch]
+Category=3
+Description="<html>(OC) Add or remove newline between '}' and '@catch'. If set to ignore,<br/>nl_brace_catch is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_brace_catch\s*=\s*ignore|nl_oc_brace_catch\s*=\s*add|nl_oc_brace_catch\s*=\s*remove|nl_oc_brace_catch\s*=\s*force|nl_oc_brace_catch\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Oc Brace Catch|Add Nl Oc Brace Catch|Remove Nl Oc Brace Catch|Force Nl Oc Brace Catch"
+ValueDefault=ignore
+
+[Nl Brace Square]
+Category=3
+Description="<html>Add or remove newline between '}' and ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_square\s*=\s*ignore|nl_brace_square\s*=\s*add|nl_brace_square\s*=\s*remove|nl_brace_square\s*=\s*force|nl_brace_square\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Square|Add Nl Brace Square|Remove Nl Brace Square|Force Nl Brace Square"
+ValueDefault=ignore
+
+[Nl Brace Fparen]
+Category=3
+Description="<html>Add or remove newline between '}' and ')' in a function invocation.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_fparen\s*=\s*ignore|nl_brace_fparen\s*=\s*add|nl_brace_fparen\s*=\s*remove|nl_brace_fparen\s*=\s*force|nl_brace_fparen\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Fparen|Add Nl Brace Fparen|Remove Nl Brace Fparen|Force Nl Brace Fparen"
+ValueDefault=ignore
+
+[Nl While Brace]
+Category=3
+Description="<html>Add or remove newline between 'while' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_while_brace\s*=\s*ignore|nl_while_brace\s*=\s*add|nl_while_brace\s*=\s*remove|nl_while_brace\s*=\s*force|nl_while_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl While Brace|Add Nl While Brace|Remove Nl While Brace|Force Nl While Brace"
+ValueDefault=ignore
+
+[Nl Scope Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'scope (x)' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_scope_brace\s*=\s*ignore|nl_scope_brace\s*=\s*add|nl_scope_brace\s*=\s*remove|nl_scope_brace\s*=\s*force|nl_scope_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Scope Brace|Add Nl Scope Brace|Remove Nl Scope Brace|Force Nl Scope Brace"
+ValueDefault=ignore
+
+[Nl Unittest Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'unittest' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_unittest_brace\s*=\s*ignore|nl_unittest_brace\s*=\s*add|nl_unittest_brace\s*=\s*remove|nl_unittest_brace\s*=\s*force|nl_unittest_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Unittest Brace|Add Nl Unittest Brace|Remove Nl Unittest Brace|Force Nl Unittest Brace"
+ValueDefault=ignore
+
+[Nl Version Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'version (x)' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_version_brace\s*=\s*ignore|nl_version_brace\s*=\s*add|nl_version_brace\s*=\s*remove|nl_version_brace\s*=\s*force|nl_version_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Version Brace|Add Nl Version Brace|Remove Nl Version Brace|Force Nl Version Brace"
+ValueDefault=ignore
+
+[Nl Using Brace]
+Category=3
+Description="<html>(C#) Add or remove newline between 'using' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_using_brace\s*=\s*ignore|nl_using_brace\s*=\s*add|nl_using_brace\s*=\s*remove|nl_using_brace\s*=\s*force|nl_using_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Using Brace|Add Nl Using Brace|Remove Nl Using Brace|Force Nl Using Brace"
+ValueDefault=ignore
+
+[Nl Brace Brace]
+Category=3
+Description="<html>Add or remove newline between two open or close braces. Due to general<br/>newline/brace handling, REMOVE may not work.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_brace\s*=\s*ignore|nl_brace_brace\s*=\s*add|nl_brace_brace\s*=\s*remove|nl_brace_brace\s*=\s*force|nl_brace_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Brace|Add Nl Brace Brace|Remove Nl Brace Brace|Force Nl Brace Brace"
+ValueDefault=ignore
+
+[Nl Do Brace]
+Category=3
+Description="<html>Add or remove newline between 'do' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_do_brace\s*=\s*ignore|nl_do_brace\s*=\s*add|nl_do_brace\s*=\s*remove|nl_do_brace\s*=\s*force|nl_do_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Do Brace|Add Nl Do Brace|Remove Nl Do Brace|Force Nl Do Brace"
+ValueDefault=ignore
+
+[Nl Brace While]
+Category=3
+Description="<html>Add or remove newline between '}' and 'while' of 'do' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_while\s*=\s*ignore|nl_brace_while\s*=\s*add|nl_brace_while\s*=\s*remove|nl_brace_while\s*=\s*force|nl_brace_while\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace While|Add Nl Brace While|Remove Nl Brace While|Force Nl Brace While"
+ValueDefault=ignore
+
+[Nl Switch Brace]
+Category=3
+Description="<html>Add or remove newline between 'switch' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_switch_brace\s*=\s*ignore|nl_switch_brace\s*=\s*add|nl_switch_brace\s*=\s*remove|nl_switch_brace\s*=\s*force|nl_switch_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Switch Brace|Add Nl Switch Brace|Remove Nl Switch Brace|Force Nl Switch Brace"
+ValueDefault=ignore
+
+[Nl Synchronized Brace]
+Category=3
+Description="<html>Add or remove newline between 'synchronized' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_synchronized_brace\s*=\s*ignore|nl_synchronized_brace\s*=\s*add|nl_synchronized_brace\s*=\s*remove|nl_synchronized_brace\s*=\s*force|nl_synchronized_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Synchronized Brace|Add Nl Synchronized Brace|Remove Nl Synchronized Brace|Force Nl Synchronized Brace"
+ValueDefault=ignore
+
+[Nl Multi Line Cond]
+Category=3
+Description="<html>Add a newline between ')' and '{' if the ')' is on a different line than the<br/>if/for/etc.<br/><br/>Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and<br/>nl_catch_brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_multi_line_cond\s*=\s*true|nl_multi_line_cond\s*=\s*false
+ValueDefault=false
+
+[Nl Multi Line Sparen Open]
+Category=3
+Description="<html>Add a newline after '(' if an if/for/while/switch condition spans multiple<br/>lines</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_multi_line_sparen_open\s*=\s*ignore|nl_multi_line_sparen_open\s*=\s*add|nl_multi_line_sparen_open\s*=\s*remove|nl_multi_line_sparen_open\s*=\s*force|nl_multi_line_sparen_open\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Multi Line Sparen Open|Add Nl Multi Line Sparen Open|Remove Nl Multi Line Sparen Open|Force Nl Multi Line Sparen Open"
+ValueDefault=ignore
+
+[Nl Multi Line Sparen Close]
+Category=3
+Description="<html>Add a newline before ')' if an if/for/while/switch condition spans multiple<br/>lines. Overrides nl_before_if_closing_paren if both are specified.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_multi_line_sparen_close\s*=\s*ignore|nl_multi_line_sparen_close\s*=\s*add|nl_multi_line_sparen_close\s*=\s*remove|nl_multi_line_sparen_close\s*=\s*force|nl_multi_line_sparen_close\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Multi Line Sparen Close|Add Nl Multi Line Sparen Close|Remove Nl Multi Line Sparen Close|Force Nl Multi Line Sparen Close"
+ValueDefault=ignore
+
+[Nl Multi Line Define]
+Category=3
+Description="<html>Force a newline in a define after the macro name for multi-line defines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_multi_line_define\s*=\s*true|nl_multi_line_define\s*=\s*false
+ValueDefault=false
+
+[Nl Before Case]
+Category=3
+Description="<html>Whether to add a newline before 'case', and a blank line before a 'case'<br/>statement that follows a ';' or '}'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_case\s*=\s*true|nl_before_case\s*=\s*false
+ValueDefault=false
+
+[Nl After Case]
+Category=3
+Description="<html>Whether to add a newline after a 'case' statement.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_case\s*=\s*true|nl_after_case\s*=\s*false
+ValueDefault=false
+
+[Nl Case Colon Brace]
+Category=3
+Description="<html>Add or remove newline between a case ':' and '{'.<br/><br/>Overrides nl_after_case.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_case_colon_brace\s*=\s*ignore|nl_case_colon_brace\s*=\s*add|nl_case_colon_brace\s*=\s*remove|nl_case_colon_brace\s*=\s*force|nl_case_colon_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Case Colon Brace|Add Nl Case Colon Brace|Remove Nl Case Colon Brace|Force Nl Case Colon Brace"
+ValueDefault=ignore
+
+[Nl Before Throw]
+Category=3
+Description="<html>Add or remove newline between ')' and 'throw'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_throw\s*=\s*ignore|nl_before_throw\s*=\s*add|nl_before_throw\s*=\s*remove|nl_before_throw\s*=\s*force|nl_before_throw\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before Throw|Add Nl Before Throw|Remove Nl Before Throw|Force Nl Before Throw"
+ValueDefault=ignore
+
+[Nl Namespace Brace]
+Category=3
+Description="<html>Add or remove newline between 'namespace' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_namespace_brace\s*=\s*ignore|nl_namespace_brace\s*=\s*add|nl_namespace_brace\s*=\s*remove|nl_namespace_brace\s*=\s*force|nl_namespace_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Namespace Brace|Add Nl Namespace Brace|Remove Nl Namespace Brace|Force Nl Namespace Brace"
+ValueDefault=ignore
+
+[Nl Template Class]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class\s*=\s*ignore|nl_template_class\s*=\s*add|nl_template_class\s*=\s*remove|nl_template_class\s*=\s*force|nl_template_class\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Class|Add Nl Template Class|Remove Nl Template Class|Force Nl Template Class"
+ValueDefault=ignore
+
+[Nl Template Class Decl]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class declaration.<br/><br/>Overrides nl_template_class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_decl\s*=\s*ignore|nl_template_class_decl\s*=\s*add|nl_template_class_decl\s*=\s*remove|nl_template_class_decl\s*=\s*force|nl_template_class_decl\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Class Decl|Add Nl Template Class Decl|Remove Nl Template Class Decl|Force Nl Template Class Decl"
+ValueDefault=ignore
+
+[Nl Template Class Decl Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class declaration.<br/><br/>Overrides nl_template_class_decl.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_decl_special\s*=\s*ignore|nl_template_class_decl_special\s*=\s*add|nl_template_class_decl_special\s*=\s*remove|nl_template_class_decl_special\s*=\s*force|nl_template_class_decl_special\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Class Decl Special|Add Nl Template Class Decl Special|Remove Nl Template Class Decl Special|Force Nl Template Class Decl Special"
+ValueDefault=ignore
+
+[Nl Template Class Def]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class definition.<br/><br/>Overrides nl_template_class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_def\s*=\s*ignore|nl_template_class_def\s*=\s*add|nl_template_class_def\s*=\s*remove|nl_template_class_def\s*=\s*force|nl_template_class_def\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Class Def|Add Nl Template Class Def|Remove Nl Template Class Def|Force Nl Template Class Def"
+ValueDefault=ignore
+
+[Nl Template Class Def Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class definition.<br/><br/>Overrides nl_template_class_def.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_def_special\s*=\s*ignore|nl_template_class_def_special\s*=\s*add|nl_template_class_def_special\s*=\s*remove|nl_template_class_def_special\s*=\s*force|nl_template_class_def_special\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Class Def Special|Add Nl Template Class Def Special|Remove Nl Template Class Def Special|Force Nl Template Class Def Special"
+ValueDefault=ignore
+
+[Nl Template Func]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func\s*=\s*ignore|nl_template_func\s*=\s*add|nl_template_func\s*=\s*remove|nl_template_func\s*=\s*force|nl_template_func\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Func|Add Nl Template Func|Remove Nl Template Func|Force Nl Template Func"
+ValueDefault=ignore
+
+[Nl Template Func Decl]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>declaration.<br/><br/>Overrides nl_template_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_decl\s*=\s*ignore|nl_template_func_decl\s*=\s*add|nl_template_func_decl\s*=\s*remove|nl_template_func_decl\s*=\s*force|nl_template_func_decl\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Func Decl|Add Nl Template Func Decl|Remove Nl Template Func Decl|Force Nl Template Func Decl"
+ValueDefault=ignore
+
+[Nl Template Func Decl Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>declaration.<br/><br/>Overrides nl_template_func_decl.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_decl_special\s*=\s*ignore|nl_template_func_decl_special\s*=\s*add|nl_template_func_decl_special\s*=\s*remove|nl_template_func_decl_special\s*=\s*force|nl_template_func_decl_special\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Func Decl Special|Add Nl Template Func Decl Special|Remove Nl Template Func Decl Special|Force Nl Template Func Decl Special"
+ValueDefault=ignore
+
+[Nl Template Func Def]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>definition.<br/><br/>Overrides nl_template_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_def\s*=\s*ignore|nl_template_func_def\s*=\s*add|nl_template_func_def\s*=\s*remove|nl_template_func_def\s*=\s*force|nl_template_func_def\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Func Def|Add Nl Template Func Def|Remove Nl Template Func Def|Force Nl Template Func Def"
+ValueDefault=ignore
+
+[Nl Template Func Def Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>definition.<br/><br/>Overrides nl_template_func_def.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_def_special\s*=\s*ignore|nl_template_func_def_special\s*=\s*add|nl_template_func_def_special\s*=\s*remove|nl_template_func_def_special\s*=\s*force|nl_template_func_def_special\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Func Def Special|Add Nl Template Func Def Special|Remove Nl Template Func Def Special|Force Nl Template Func Def Special"
+ValueDefault=ignore
+
+[Nl Template Var]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template variable.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_var\s*=\s*ignore|nl_template_var\s*=\s*add|nl_template_var\s*=\s*remove|nl_template_var\s*=\s*force|nl_template_var\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Var|Add Nl Template Var|Remove Nl Template Var|Force Nl Template Var"
+ValueDefault=ignore
+
+[Nl Template Using]
+Category=3
+Description="<html>Add or remove newline between 'template&lt;...&gt;' and 'using' of a templated<br/>type alias.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_using\s*=\s*ignore|nl_template_using\s*=\s*add|nl_template_using\s*=\s*remove|nl_template_using\s*=\s*force|nl_template_using\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Template Using|Add Nl Template Using|Remove Nl Template Using|Force Nl Template Using"
+ValueDefault=ignore
+
+[Nl Class Brace]
+Category=3
+Description="<html>Add or remove newline between 'class' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_brace\s*=\s*ignore|nl_class_brace\s*=\s*add|nl_class_brace\s*=\s*remove|nl_class_brace\s*=\s*force|nl_class_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Class Brace|Add Nl Class Brace|Remove Nl Class Brace|Force Nl Class Brace"
+ValueDefault=ignore
+
+[Nl Class Init Args]
+Category=3
+Description="<html>Add or remove newline before or after (depending on pos_class_comma,<br/>may not be IGNORE) each',' in the base class list.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_init_args\s*=\s*ignore|nl_class_init_args\s*=\s*add|nl_class_init_args\s*=\s*remove|nl_class_init_args\s*=\s*force|nl_class_init_args\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Class Init Args|Add Nl Class Init Args|Remove Nl Class Init Args|Force Nl Class Init Args"
+ValueDefault=ignore
+
+[Nl Constr Init Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in the constructor member<br/>initialization. Related to nl_constr_colon, pos_constr_colon and<br/>pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_constr_init_args\s*=\s*ignore|nl_constr_init_args\s*=\s*add|nl_constr_init_args\s*=\s*remove|nl_constr_init_args\s*=\s*force|nl_constr_init_args\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Constr Init Args|Add Nl Constr Init Args|Remove Nl Constr Init Args|Force Nl Constr Init Args"
+ValueDefault=ignore
+
+[Nl Enum Own Lines]
+Category=3
+Description="<html>Add or remove newline before first element, after comma, and after last<br/>element, in 'enum'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_own_lines\s*=\s*ignore|nl_enum_own_lines\s*=\s*add|nl_enum_own_lines\s*=\s*remove|nl_enum_own_lines\s*=\s*force|nl_enum_own_lines\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Enum Own Lines|Add Nl Enum Own Lines|Remove Nl Enum Own Lines|Force Nl Enum Own Lines"
+ValueDefault=ignore
+
+[Nl Func Type Name]
+Category=3
+Description="<html>Add or remove newline between return type and function name in a function<br/>definition.<br/>might be modified by nl_func_leave_one_liners</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_type_name\s*=\s*ignore|nl_func_type_name\s*=\s*add|nl_func_type_name\s*=\s*remove|nl_func_type_name\s*=\s*force|nl_func_type_name\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Type Name|Add Nl Func Type Name|Remove Nl Func Type Name|Force Nl Func Type Name"
+ValueDefault=ignore
+
+[Nl Func Type Name Class]
+Category=3
+Description="<html>Add or remove newline between return type and function name inside a class<br/>definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name<br/>is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_type_name_class\s*=\s*ignore|nl_func_type_name_class\s*=\s*add|nl_func_type_name_class\s*=\s*remove|nl_func_type_name_class\s*=\s*force|nl_func_type_name_class\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Type Name Class|Add Nl Func Type Name Class|Remove Nl Func Type Name Class|Force Nl Func Type Name Class"
+ValueDefault=ignore
+
+[Nl Func Class Scope]
+Category=3
+Description="<html>Add or remove newline between class specification and '::'<br/>in 'void A::f() { }'. Only appears in separate member implementation (does<br/>not appear with in-line implementation).</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_class_scope\s*=\s*ignore|nl_func_class_scope\s*=\s*add|nl_func_class_scope\s*=\s*remove|nl_func_class_scope\s*=\s*force|nl_func_class_scope\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Class Scope|Add Nl Func Class Scope|Remove Nl Func Class Scope|Force Nl Func Class Scope"
+ValueDefault=ignore
+
+[Nl Func Scope Name]
+Category=3
+Description="<html>Add or remove newline between function scope and name, as in<br/>'void A :: &lt;here&gt; f() { }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_scope_name\s*=\s*ignore|nl_func_scope_name\s*=\s*add|nl_func_scope_name\s*=\s*remove|nl_func_scope_name\s*=\s*force|nl_func_scope_name\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Scope Name|Add Nl Func Scope Name|Remove Nl Func Scope Name|Force Nl Func Scope Name"
+ValueDefault=ignore
+
+[Nl Func Proto Type Name]
+Category=3
+Description="<html>Add or remove newline between return type and function name in a prototype.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_proto_type_name\s*=\s*ignore|nl_func_proto_type_name\s*=\s*add|nl_func_proto_type_name\s*=\s*remove|nl_func_proto_type_name\s*=\s*force|nl_func_proto_type_name\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Proto Type Name|Add Nl Func Proto Type Name|Remove Nl Func Proto Type Name|Force Nl Func Proto Type Name"
+ValueDefault=ignore
+
+[Nl Func Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_paren\s*=\s*ignore|nl_func_paren\s*=\s*add|nl_func_paren\s*=\s*remove|nl_func_paren\s*=\s*force|nl_func_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Paren|Add Nl Func Paren|Remove Nl Func Paren|Force Nl Func Paren"
+ValueDefault=ignore
+
+[Nl Func Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_paren_empty\s*=\s*ignore|nl_func_paren_empty\s*=\s*add|nl_func_paren_empty\s*=\s*remove|nl_func_paren_empty\s*=\s*force|nl_func_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Paren Empty|Add Nl Func Paren Empty|Remove Nl Func Paren Empty|Force Nl Func Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Def Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_paren\s*=\s*ignore|nl_func_def_paren\s*=\s*add|nl_func_def_paren\s*=\s*remove|nl_func_def_paren\s*=\s*force|nl_func_def_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def Paren|Add Nl Func Def Paren|Remove Nl Func Def Paren|Force Nl Func Def Paren"
+ValueDefault=ignore
+
+[Nl Func Def Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_def_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_paren_empty\s*=\s*ignore|nl_func_def_paren_empty\s*=\s*add|nl_func_def_paren_empty\s*=\s*remove|nl_func_def_paren_empty\s*=\s*force|nl_func_def_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def Paren Empty|Add Nl Func Def Paren Empty|Remove Nl Func Def Paren Empty|Force Nl Func Def Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Call Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_paren\s*=\s*ignore|nl_func_call_paren\s*=\s*add|nl_func_call_paren\s*=\s*remove|nl_func_call_paren\s*=\s*force|nl_func_call_paren\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Call Paren|Add Nl Func Call Paren|Remove Nl Func Call Paren|Force Nl Func Call Paren"
+ValueDefault=ignore
+
+[Nl Func Call Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_call_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_paren_empty\s*=\s*ignore|nl_func_call_paren_empty\s*=\s*add|nl_func_call_paren_empty\s*=\s*remove|nl_func_call_paren_empty\s*=\s*force|nl_func_call_paren_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Call Paren Empty|Add Nl Func Call Paren Empty|Remove Nl Func Call Paren Empty|Force Nl Func Call Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Decl Start]
+Category=3
+Description="<html>Add or remove newline after '(' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_start\s*=\s*ignore|nl_func_decl_start\s*=\s*add|nl_func_decl_start\s*=\s*remove|nl_func_decl_start\s*=\s*force|nl_func_decl_start\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Decl Start|Add Nl Func Decl Start|Remove Nl Func Decl Start|Force Nl Func Decl Start"
+ValueDefault=ignore
+
+[Nl Func Def Start]
+Category=3
+Description="<html>Add or remove newline after '(' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_start\s*=\s*ignore|nl_func_def_start\s*=\s*add|nl_func_def_start\s*=\s*remove|nl_func_def_start\s*=\s*force|nl_func_def_start\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def Start|Add Nl Func Def Start|Remove Nl Func Def Start|Force Nl Func Def Start"
+ValueDefault=ignore
+
+[Nl Func Decl Start Single]
+Category=3
+Description="<html>Overrides nl_func_decl_start when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_start_single\s*=\s*ignore|nl_func_decl_start_single\s*=\s*add|nl_func_decl_start_single\s*=\s*remove|nl_func_decl_start_single\s*=\s*force|nl_func_decl_start_single\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Decl Start Single|Add Nl Func Decl Start Single|Remove Nl Func Decl Start Single|Force Nl Func Decl Start Single"
+ValueDefault=ignore
+
+[Nl Func Def Start Single]
+Category=3
+Description="<html>Overrides nl_func_def_start when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_start_single\s*=\s*ignore|nl_func_def_start_single\s*=\s*add|nl_func_def_start_single\s*=\s*remove|nl_func_def_start_single\s*=\s*force|nl_func_def_start_single\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def Start Single|Add Nl Func Def Start Single|Remove Nl Func Def Start Single|Force Nl Func Def Start Single"
+ValueDefault=ignore
+
+[Nl Func Decl Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_start is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_start_multi_line\s*=\s*true|nl_func_decl_start_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Def Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_start is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_start_multi_line\s*=\s*true|nl_func_def_start_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Decl Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_args\s*=\s*ignore|nl_func_decl_args\s*=\s*add|nl_func_decl_args\s*=\s*remove|nl_func_decl_args\s*=\s*force|nl_func_decl_args\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Decl Args|Add Nl Func Decl Args|Remove Nl Func Decl Args|Force Nl Func Decl Args"
+ValueDefault=ignore
+
+[Nl Func Def Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_args\s*=\s*ignore|nl_func_def_args\s*=\s*add|nl_func_def_args\s*=\s*remove|nl_func_def_args\s*=\s*force|nl_func_def_args\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def Args|Add Nl Func Def Args|Remove Nl Func Def Args|Force Nl Func Def Args"
+ValueDefault=ignore
+
+[Nl Func Call Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_args\s*=\s*ignore|nl_func_call_args\s*=\s*add|nl_func_call_args\s*=\s*remove|nl_func_call_args\s*=\s*force|nl_func_call_args\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Call Args|Add Nl Func Call Args|Remove Nl Func Call Args|Force Nl Func Call Args"
+ValueDefault=ignore
+
+[Nl Func Decl Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function declaration if '('<br/>and ')' are in different lines. If false, nl_func_decl_args is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_args_multi_line\s*=\s*true|nl_func_decl_args_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Def Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function definition if '('<br/>and ')' are in different lines. If false, nl_func_def_args is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_args_multi_line\s*=\s*true|nl_func_def_args_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Decl End]
+Category=3
+Description="<html>Add or remove newline before the ')' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_end\s*=\s*ignore|nl_func_decl_end\s*=\s*add|nl_func_decl_end\s*=\s*remove|nl_func_decl_end\s*=\s*force|nl_func_decl_end\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Decl End|Add Nl Func Decl End|Remove Nl Func Decl End|Force Nl Func Decl End"
+ValueDefault=ignore
+
+[Nl Func Def End]
+Category=3
+Description="<html>Add or remove newline before the ')' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_end\s*=\s*ignore|nl_func_def_end\s*=\s*add|nl_func_def_end\s*=\s*remove|nl_func_def_end\s*=\s*force|nl_func_def_end\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def End|Add Nl Func Def End|Remove Nl Func Def End|Force Nl Func Def End"
+ValueDefault=ignore
+
+[Nl Func Decl End Single]
+Category=3
+Description="<html>Overrides nl_func_decl_end when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_end_single\s*=\s*ignore|nl_func_decl_end_single\s*=\s*add|nl_func_decl_end_single\s*=\s*remove|nl_func_decl_end_single\s*=\s*force|nl_func_decl_end_single\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Decl End Single|Add Nl Func Decl End Single|Remove Nl Func Decl End Single|Force Nl Func Decl End Single"
+ValueDefault=ignore
+
+[Nl Func Def End Single]
+Category=3
+Description="<html>Overrides nl_func_def_end when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_end_single\s*=\s*ignore|nl_func_def_end_single\s*=\s*add|nl_func_def_end_single\s*=\s*remove|nl_func_def_end_single\s*=\s*force|nl_func_def_end_single\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def End Single|Add Nl Func Def End Single|Remove Nl Func Def End Single|Force Nl Func Def End Single"
+ValueDefault=ignore
+
+[Nl Func Decl End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_end is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_end_multi_line\s*=\s*true|nl_func_decl_end_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Def End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_end is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_end_multi_line\s*=\s*true|nl_func_def_end_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Decl Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_empty\s*=\s*ignore|nl_func_decl_empty\s*=\s*add|nl_func_decl_empty\s*=\s*remove|nl_func_decl_empty\s*=\s*force|nl_func_decl_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Decl Empty|Add Nl Func Decl Empty|Remove Nl Func Decl Empty|Force Nl Func Decl Empty"
+ValueDefault=ignore
+
+[Nl Func Def Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_empty\s*=\s*ignore|nl_func_def_empty\s*=\s*add|nl_func_def_empty\s*=\s*remove|nl_func_def_empty\s*=\s*force|nl_func_def_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Def Empty|Add Nl Func Def Empty|Remove Nl Func Def Empty|Force Nl Func Def Empty"
+ValueDefault=ignore
+
+[Nl Func Call Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_empty\s*=\s*ignore|nl_func_call_empty\s*=\s*add|nl_func_call_empty\s*=\s*remove|nl_func_call_empty\s*=\s*force|nl_func_call_empty\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Call Empty|Add Nl Func Call Empty|Remove Nl Func Call Empty|Force Nl Func Call Empty"
+ValueDefault=ignore
+
+[Nl Func Call Start]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function call,<br/>has preference over nl_func_call_start_multi_line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_start\s*=\s*ignore|nl_func_call_start\s*=\s*add|nl_func_call_start\s*=\s*remove|nl_func_call_start\s*=\s*force|nl_func_call_start\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Call Start|Add Nl Func Call Start|Remove Nl Func Call Start|Force Nl Func Call Start"
+ValueDefault=ignore
+
+[Nl Func Call End]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_end\s*=\s*ignore|nl_func_call_end\s*=\s*add|nl_func_call_end\s*=\s*remove|nl_func_call_end\s*=\s*force|nl_func_call_end\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Func Call End|Add Nl Func Call End|Remove Nl Func Call End|Force Nl Func Call End"
+ValueDefault=ignore
+
+[Nl Func Call Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function call if '(' and ')' are in<br/>different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_start_multi_line\s*=\s*true|nl_func_call_start_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Call Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function call if '(' and ')'<br/>are in different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_args_multi_line\s*=\s*true|nl_func_call_args_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Call End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function call if '(' and ')' are in<br/>different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_end_multi_line\s*=\s*true|nl_func_call_end_multi_line\s*=\s*false
+ValueDefault=false
+
+[Nl Func Call Args Multi Line Ignore Closures]
+Category=3
+Description="<html>Whether to respect nl_func_call_XXX option in case of closure args.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_args_multi_line_ignore_closures\s*=\s*true|nl_func_call_args_multi_line_ignore_closures\s*=\s*false
+ValueDefault=false
+
+[Nl Template Start]
+Category=3
+Description="<html>Whether to add a newline after '&lt;' of a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_start\s*=\s*true|nl_template_start\s*=\s*false
+ValueDefault=false
+
+[Nl Template Args]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_args\s*=\s*true|nl_template_args\s*=\s*false
+ValueDefault=false
+
+[Nl Template End]
+Category=3
+Description="<html>Whether to add a newline before '&gt;' of a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_end\s*=\s*true|nl_template_end\s*=\s*false
+ValueDefault=false
+
+[Nl Oc Msg Args]
+Category=3
+Description="<html>(OC) Whether to put each Objective-C message parameter on a separate line.<br/>See nl_oc_msg_leave_one_liner.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_oc_msg_args\s*=\s*true|nl_oc_msg_args\s*=\s*false
+ValueDefault=false
+
+[Nl Oc Msg Args Min Params]
+Category=3
+Description="<html>(OC) Minimum number of Objective-C message parameters before applying nl_oc_msg_args.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_oc_msg_args_min_params\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Oc Msg Args Max Code Width]
+Category=3
+Description="<html>(OC) Max code width of Objective-C message before applying nl_oc_msg_args.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_oc_msg_args_max_code_width\s*=\s*"
+MinVal=0
+MaxVal=10000
+ValueDefault=0
+
+[Nl Fdef Brace]
+Category=3
+Description="<html>Add or remove newline between function signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fdef_brace\s*=\s*ignore|nl_fdef_brace\s*=\s*add|nl_fdef_brace\s*=\s*remove|nl_fdef_brace\s*=\s*force|nl_fdef_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Fdef Brace|Add Nl Fdef Brace|Remove Nl Fdef Brace|Force Nl Fdef Brace"
+ValueDefault=ignore
+
+[Nl Fdef Brace Cond]
+Category=3
+Description="<html>Add or remove newline between function signature and '{',<br/>if signature ends with ')'. Overrides nl_fdef_brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fdef_brace_cond\s*=\s*ignore|nl_fdef_brace_cond\s*=\s*add|nl_fdef_brace_cond\s*=\s*remove|nl_fdef_brace_cond\s*=\s*force|nl_fdef_brace_cond\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Fdef Brace Cond|Add Nl Fdef Brace Cond|Remove Nl Fdef Brace Cond|Force Nl Fdef Brace Cond"
+ValueDefault=ignore
+
+[Nl Cpp Ldef Brace]
+Category=3
+Description="<html>Add or remove newline between C++11 lambda signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_cpp_ldef_brace\s*=\s*ignore|nl_cpp_ldef_brace\s*=\s*add|nl_cpp_ldef_brace\s*=\s*remove|nl_cpp_ldef_brace\s*=\s*force|nl_cpp_ldef_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Cpp Ldef Brace|Add Nl Cpp Ldef Brace|Remove Nl Cpp Ldef Brace|Force Nl Cpp Ldef Brace"
+ValueDefault=ignore
+
+[Nl Return Expr]
+Category=3
+Description="<html>Add or remove newline between 'return' and the return expression.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_return_expr\s*=\s*ignore|nl_return_expr\s*=\s*add|nl_return_expr\s*=\s*remove|nl_return_expr\s*=\s*force|nl_return_expr\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Return Expr|Add Nl Return Expr|Remove Nl Return Expr|Force Nl Return Expr"
+ValueDefault=ignore
+
+[Nl Throw Expr]
+Category=3
+Description="<html>Add or remove newline between 'throw' and the throw expression.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_throw_expr\s*=\s*ignore|nl_throw_expr\s*=\s*add|nl_throw_expr\s*=\s*remove|nl_throw_expr\s*=\s*force|nl_throw_expr\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Throw Expr|Add Nl Throw Expr|Remove Nl Throw Expr|Force Nl Throw Expr"
+ValueDefault=ignore
+
+[Nl After Semicolon]
+Category=3
+Description="<html>Whether to add a newline after semicolons, except in 'for' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_semicolon\s*=\s*true|nl_after_semicolon\s*=\s*false
+ValueDefault=false
+
+[Nl Paren Dbrace Open]
+Category=3
+Description="<html>(Java) Add or remove newline between the ')' and '{{' of the double brace<br/>initializer.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_paren_dbrace_open\s*=\s*ignore|nl_paren_dbrace_open\s*=\s*add|nl_paren_dbrace_open\s*=\s*remove|nl_paren_dbrace_open\s*=\s*force|nl_paren_dbrace_open\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Paren Dbrace Open|Add Nl Paren Dbrace Open|Remove Nl Paren Dbrace Open|Force Nl Paren Dbrace Open"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst]
+Category=3
+Description="<html>Whether to add a newline after the type in an unnamed temporary<br/>direct-list-initialization, better:<br/>before a direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst\s*=\s*ignore|nl_type_brace_init_lst\s*=\s*add|nl_type_brace_init_lst\s*=\s*remove|nl_type_brace_init_lst\s*=\s*force|nl_type_brace_init_lst\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst|Add Nl Type Brace Init Lst|Remove Nl Type Brace Init Lst|Force Nl Type Brace Init Lst"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst Open]
+Category=3
+Description="<html>Whether to add a newline after the open brace in an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst_open\s*=\s*ignore|nl_type_brace_init_lst_open\s*=\s*add|nl_type_brace_init_lst_open\s*=\s*remove|nl_type_brace_init_lst_open\s*=\s*force|nl_type_brace_init_lst_open\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst Open|Add Nl Type Brace Init Lst Open|Remove Nl Type Brace Init Lst Open|Force Nl Type Brace Init Lst Open"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst Close]
+Category=3
+Description="<html>Whether to add a newline before the close brace in an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst_close\s*=\s*ignore|nl_type_brace_init_lst_close\s*=\s*add|nl_type_brace_init_lst_close\s*=\s*remove|nl_type_brace_init_lst_close\s*=\s*force|nl_type_brace_init_lst_close\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst Close|Add Nl Type Brace Init Lst Close|Remove Nl Type Brace Init Lst Close|Force Nl Type Brace Init Lst Close"
+ValueDefault=ignore
+
+[Nl Before Brace Open]
+Category=3
+Description="<html>Whether to add a newline before '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_brace_open\s*=\s*true|nl_before_brace_open\s*=\s*false
+ValueDefault=false
+
+[Nl After Brace Open]
+Category=3
+Description="<html>Whether to add a newline after '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_open\s*=\s*true|nl_after_brace_open\s*=\s*false
+ValueDefault=false
+
+[Nl After Brace Open Cmt]
+Category=3
+Description="<html>Whether to add a newline between the open brace and a trailing single-line<br/>comment. Requires nl_after_brace_open=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_open_cmt\s*=\s*true|nl_after_brace_open_cmt\s*=\s*false
+ValueDefault=false
+
+[Nl After Vbrace Open]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace open with a non-empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_open\s*=\s*true|nl_after_vbrace_open\s*=\s*false
+ValueDefault=false
+
+[Nl After Vbrace Open Empty]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace open with an empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_open_empty\s*=\s*true|nl_after_vbrace_open_empty\s*=\s*false
+ValueDefault=false
+
+[Nl After Brace Close]
+Category=3
+Description="<html>Whether to add a newline after '}'. Does not apply if followed by a<br/>necessary ';'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_close\s*=\s*true|nl_after_brace_close\s*=\s*false
+ValueDefault=false
+
+[Nl After Vbrace Close]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace close,<br/>as in 'if (foo) a++; &lt;here&gt; return;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_close\s*=\s*true|nl_after_vbrace_close\s*=\s*false
+ValueDefault=false
+
+[Nl Brace Struct Var]
+Category=3
+Description="<html>Add or remove newline between the close brace and identifier,<br/>as in 'struct { int a; } &lt;here&gt; b;'. Affects enumerations, unions and<br/>structures. If set to ignore, uses nl_after_brace_close.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_struct_var\s*=\s*ignore|nl_brace_struct_var\s*=\s*add|nl_brace_struct_var\s*=\s*remove|nl_brace_struct_var\s*=\s*force|nl_brace_struct_var\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Brace Struct Var|Add Nl Brace Struct Var|Remove Nl Brace Struct Var|Force Nl Brace Struct Var"
+ValueDefault=ignore
+
+[Nl Define Macro]
+Category=3
+Description="<html>Whether to alter newlines in '#define' macros.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_define_macro\s*=\s*true|nl_define_macro\s*=\s*false
+ValueDefault=false
+
+[Nl Squeeze Paren Close]
+Category=3
+Description="<html>Whether to alter newlines between consecutive parenthesis closes. The number<br/>of closing parentheses in a line will depend on respective open parenthesis<br/>lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_paren_close\s*=\s*true|nl_squeeze_paren_close\s*=\s*false
+ValueDefault=false
+
+[Nl Squeeze Ifdef]
+Category=3
+Description="<html>Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and<br/>'#endif'. Does not affect top-level #ifdefs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_ifdef\s*=\s*true|nl_squeeze_ifdef\s*=\s*false
+ValueDefault=false
+
+[Nl Squeeze Ifdef Top Level]
+Category=3
+Description="<html>Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_ifdef_top_level\s*=\s*true|nl_squeeze_ifdef_top_level\s*=\s*false
+ValueDefault=false
+
+[Nl Before If]
+Category=3
+Description="<html>Add or remove blank line before 'if'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_if\s*=\s*ignore|nl_before_if\s*=\s*add|nl_before_if\s*=\s*remove|nl_before_if\s*=\s*force|nl_before_if\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before If|Add Nl Before If|Remove Nl Before If|Force Nl Before If"
+ValueDefault=ignore
+
+[Nl After If]
+Category=3
+Description="<html>Add or remove blank line after 'if' statement. Add/Force work only if the<br/>next token is not a closing brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_if\s*=\s*ignore|nl_after_if\s*=\s*add|nl_after_if\s*=\s*remove|nl_after_if\s*=\s*force|nl_after_if\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After If|Add Nl After If|Remove Nl After If|Force Nl After If"
+ValueDefault=ignore
+
+[Nl Before For]
+Category=3
+Description="<html>Add or remove blank line before 'for'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_for\s*=\s*ignore|nl_before_for\s*=\s*add|nl_before_for\s*=\s*remove|nl_before_for\s*=\s*force|nl_before_for\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before For|Add Nl Before For|Remove Nl Before For|Force Nl Before For"
+ValueDefault=ignore
+
+[Nl After For]
+Category=3
+Description="<html>Add or remove blank line after 'for' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_for\s*=\s*ignore|nl_after_for\s*=\s*add|nl_after_for\s*=\s*remove|nl_after_for\s*=\s*force|nl_after_for\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After For|Add Nl After For|Remove Nl After For|Force Nl After For"
+ValueDefault=ignore
+
+[Nl Before While]
+Category=3
+Description="<html>Add or remove blank line before 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_while\s*=\s*ignore|nl_before_while\s*=\s*add|nl_before_while\s*=\s*remove|nl_before_while\s*=\s*force|nl_before_while\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before While|Add Nl Before While|Remove Nl Before While|Force Nl Before While"
+ValueDefault=ignore
+
+[Nl After While]
+Category=3
+Description="<html>Add or remove blank line after 'while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_while\s*=\s*ignore|nl_after_while\s*=\s*add|nl_after_while\s*=\s*remove|nl_after_while\s*=\s*force|nl_after_while\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After While|Add Nl After While|Remove Nl After While|Force Nl After While"
+ValueDefault=ignore
+
+[Nl Before Switch]
+Category=3
+Description="<html>Add or remove blank line before 'switch'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_switch\s*=\s*ignore|nl_before_switch\s*=\s*add|nl_before_switch\s*=\s*remove|nl_before_switch\s*=\s*force|nl_before_switch\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before Switch|Add Nl Before Switch|Remove Nl Before Switch|Force Nl Before Switch"
+ValueDefault=ignore
+
+[Nl After Switch]
+Category=3
+Description="<html>Add or remove blank line after 'switch' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_switch\s*=\s*ignore|nl_after_switch\s*=\s*add|nl_after_switch\s*=\s*remove|nl_after_switch\s*=\s*force|nl_after_switch\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After Switch|Add Nl After Switch|Remove Nl After Switch|Force Nl After Switch"
+ValueDefault=ignore
+
+[Nl Before Synchronized]
+Category=3
+Description="<html>Add or remove blank line before 'synchronized'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_synchronized\s*=\s*ignore|nl_before_synchronized\s*=\s*add|nl_before_synchronized\s*=\s*remove|nl_before_synchronized\s*=\s*force|nl_before_synchronized\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before Synchronized|Add Nl Before Synchronized|Remove Nl Before Synchronized|Force Nl Before Synchronized"
+ValueDefault=ignore
+
+[Nl After Synchronized]
+Category=3
+Description="<html>Add or remove blank line after 'synchronized' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_synchronized\s*=\s*ignore|nl_after_synchronized\s*=\s*add|nl_after_synchronized\s*=\s*remove|nl_after_synchronized\s*=\s*force|nl_after_synchronized\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After Synchronized|Add Nl After Synchronized|Remove Nl After Synchronized|Force Nl After Synchronized"
+ValueDefault=ignore
+
+[Nl Before Do]
+Category=3
+Description="<html>Add or remove blank line before 'do'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_do\s*=\s*ignore|nl_before_do\s*=\s*add|nl_before_do\s*=\s*remove|nl_before_do\s*=\s*force|nl_before_do\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before Do|Add Nl Before Do|Remove Nl Before Do|Force Nl Before Do"
+ValueDefault=ignore
+
+[Nl After Do]
+Category=3
+Description="<html>Add or remove blank line after 'do/while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_do\s*=\s*ignore|nl_after_do\s*=\s*add|nl_after_do\s*=\s*remove|nl_after_do\s*=\s*force|nl_after_do\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After Do|Add Nl After Do|Remove Nl After Do|Force Nl After Do"
+ValueDefault=ignore
+
+[Nl Before Ignore After Case]
+Category=3
+Description="<html>Ignore nl_before_{if,for,switch,do,synchronized} if the control<br/>statement is immediately after a case statement.<br/>if nl_before_{if,for,switch,do} is set to remove, this option<br/>does nothing.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_ignore_after_case\s*=\s*true|nl_before_ignore_after_case\s*=\s*false
+ValueDefault=false
+
+[Nl Before Return]
+Category=3
+Description="<html>Whether to put a blank line before 'return' statements, unless after an open<br/>brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_return\s*=\s*true|nl_before_return\s*=\s*false
+ValueDefault=false
+
+[Nl After Return]
+Category=3
+Description="<html>Whether to put a blank line after 'return' statements, unless followed by a<br/>close brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_return\s*=\s*true|nl_after_return\s*=\s*false
+ValueDefault=false
+
+[Nl Before Member]
+Category=3
+Description="<html>Whether to put a blank line before a member '.' or '-&gt;' operators.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_member\s*=\s*ignore|nl_before_member\s*=\s*add|nl_before_member\s*=\s*remove|nl_before_member\s*=\s*force|nl_before_member\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Before Member|Add Nl Before Member|Remove Nl Before Member|Force Nl Before Member"
+ValueDefault=ignore
+
+[Nl After Member]
+Category=3
+Description="<html>(Java) Whether to put a blank line after a member '.' or '-&gt;' operators.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_member\s*=\s*ignore|nl_after_member\s*=\s*add|nl_after_member\s*=\s*remove|nl_after_member\s*=\s*force|nl_after_member\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After Member|Add Nl After Member|Remove Nl After Member|Force Nl After Member"
+ValueDefault=ignore
+
+[Nl Ds Struct Enum Cmt]
+Category=3
+Description="<html>Whether to double-space commented-entries in 'struct'/'union'/'enum'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_ds_struct_enum_cmt\s*=\s*true|nl_ds_struct_enum_cmt\s*=\s*false
+ValueDefault=false
+
+[Nl Ds Struct Enum Close Brace]
+Category=3
+Description="<html>Whether to force a newline before '}' of a 'struct'/'union'/'enum'.<br/>(Lower priority than eat_blanks_before_close_brace.)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_ds_struct_enum_close_brace\s*=\s*true|nl_ds_struct_enum_close_brace\s*=\s*false
+ValueDefault=false
+
+[Nl Class Colon]
+Category=3
+Description="<html>Add or remove newline before or after (depending on pos_class_colon) a class<br/>colon, as in 'class Foo &lt;here&gt; : &lt;or here&gt; public Bar'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_colon\s*=\s*ignore|nl_class_colon\s*=\s*add|nl_class_colon\s*=\s*remove|nl_class_colon\s*=\s*force|nl_class_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Class Colon|Add Nl Class Colon|Remove Nl Class Colon|Force Nl Class Colon"
+ValueDefault=ignore
+
+[Nl Constr Colon]
+Category=3
+Description="<html>Add or remove newline around a class constructor colon. The exact position<br/>depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_constr_colon\s*=\s*ignore|nl_constr_colon\s*=\s*add|nl_constr_colon\s*=\s*remove|nl_constr_colon\s*=\s*force|nl_constr_colon\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Constr Colon|Add Nl Constr Colon|Remove Nl Constr Colon|Force Nl Constr Colon"
+ValueDefault=ignore
+
+[Nl Namespace Two To One Liner]
+Category=3
+Description="<html>Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'<br/>into a single line. If true, prevents other brace newline rules from turning<br/>such code into four lines. If true, it also preserves one-liner namespaces.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_namespace_two_to_one_liner\s*=\s*true|nl_namespace_two_to_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Create If One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced if statements, turning them<br/>into one-liners, as in 'if(b)\n i++;' =&gt; 'if(b) i++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_if_one_liner\s*=\s*true|nl_create_if_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Create For One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced for statements, turning them<br/>into one-liners, as in 'for (...)\n stmt;' =&gt; 'for (...) stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_for_one_liner\s*=\s*true|nl_create_for_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Create While One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced while statements, turning<br/>them into one-liners, as in 'while (expr)\n stmt;' =&gt; 'while (expr) stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_while_one_liner\s*=\s*true|nl_create_while_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Create Func Def One Liner]
+Category=3
+Description="<html>Whether to collapse a function definition whose body (not counting braces)<br/>is only one line so that the entire definition (prototype, braces, body) is<br/>a single line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_func_def_one_liner\s*=\s*true|nl_create_func_def_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Create List One Liner]
+Category=3
+Description="<html>Whether to split one-line simple list definitions into three lines by<br/>adding newlines, as in 'int a[12] = { &lt;here&gt; 0 &lt;here&gt; };'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_list_one_liner\s*=\s*true|nl_create_list_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Split If One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced if statements into two lines by<br/>adding a newline, as in 'if(b) &lt;here&gt; i++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_if_one_liner\s*=\s*true|nl_split_if_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Split For One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced for statements into two lines by<br/>adding a newline, as in 'for (...) &lt;here&gt; stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_for_one_liner\s*=\s*true|nl_split_for_one_liner\s*=\s*false
+ValueDefault=false
+
+[Nl Split While One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced while statements into two lines by<br/>adding a newline, as in 'while (expr) &lt;here&gt; stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_while_one_liner\s*=\s*true|nl_split_while_one_liner\s*=\s*false
+ValueDefault=false
+
+[Donot Add Nl Before Cpp Comment]
+Category=3
+Description="<html>Don't add a newline before a cpp-comment in a parameter list of a function<br/>call.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=donot_add_nl_before_cpp_comment\s*=\s*true|donot_add_nl_before_cpp_comment\s*=\s*false
+ValueDefault=false
+
+[Nl Max]
+Category=4
+Description="<html>The maximum number of consecutive newlines (3 = 2 blank lines).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Max Blank In Func]
+Category=4
+Description="<html>The maximum number of consecutive newlines in a function.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max_blank_in_func\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Inside Empty Func]
+Category=4
+Description="<html>The number of newlines inside an empty function body.<br/>This option overrides eat_blanks_after_open_brace and<br/>eat_blanks_before_close_brace, but is ignored when<br/>nl_collapse_empty_body_functions=true</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_inside_empty_func\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Body Proto]
+Category=4
+Description="<html>The number of newlines before a function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_body_proto\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Body Def]
+Category=4
+Description="<html>The number of newlines before a multi-line function definition. Where<br/>applicable, this option is overridden with eat_blanks_after_open_brace=true</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_body_def\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Class Proto]
+Category=4
+Description="<html>The number of newlines before a class constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_class_proto\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Class Def]
+Category=4
+Description="<html>The number of newlines before a class constructor/destructor definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_class_def\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Proto]
+Category=4
+Description="<html>The number of newlines after a function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_proto\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Proto Group]
+Category=4
+Description="<html>The number of newlines after a function prototype, if not followed by<br/>another function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_proto_group\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Class Proto]
+Category=4
+Description="<html>The number of newlines after a class constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_class_proto\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Class Proto Group]
+Category=4
+Description="<html>The number of newlines after a class constructor/destructor prototype,<br/>if not followed by another constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_class_proto_group\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Class Leave One Liner Groups]
+Category=4
+Description="<html>Whether one-line method definitions inside a class body should be treated<br/>as if they were prototypes for the purposes of adding newlines.<br/><br/>Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def<br/>and nl_before_func_class_def for one-liners.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_class_leave_one_liner_groups\s*=\s*true|nl_class_leave_one_liner_groups\s*=\s*false
+ValueDefault=false
+
+[Nl After Func Body]
+Category=4
+Description="<html>The number of newlines after '}' of a multi-line function body.<br/><br/>Overrides nl_min_after_func_body and nl_max_after_func_body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Min After Func Body]
+Category=4
+Description="<html>The minimum number of newlines after '}' of a multi-line function body.<br/><br/>Only works when nl_after_func_body is 0.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_min_after_func_body\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Max After Func Body]
+Category=4
+Description="<html>The maximum number of newlines after '}' of a multi-line function body.<br/><br/>Only works when nl_after_func_body is 0.<br/>Takes precedence over nl_min_after_func_body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max_after_func_body\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Body Class]
+Category=4
+Description="<html>The number of newlines after '}' of a multi-line function body in a class<br/>declaration. Also affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body_class\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Body One Liner]
+Category=4
+Description="<html>The number of newlines after '}' of a single line function body. Also<br/>affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body and nl_after_func_body_class.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body_one_liner\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk Start]
+Category=4
+Description="<html>The number of newlines before a block of typedefs. If nl_after_access_spec<br/>is non-zero, that option takes precedence.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_start\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk End]
+Category=4
+Description="<html>The number of newlines after a block of typedefs.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_end\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk In]
+Category=4
+Description="<html>The maximum number of consecutive newlines within a block of typedefs.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_in\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk End Func Top]
+Category=4
+Description="<html>The minimum number of blank lines after a block of variable definitions<br/>at the top of a function body. If any preprocessor directives appear<br/>between the opening brace of the function and the variable block, then<br/>it is considered as not at the top of the function.Newlines are added<br/>before trailing preprocessor directives, if any exist.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_end_func_top\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk Start]
+Category=4
+Description="<html>The minimum number of empty newlines before a block of variable definitions<br/>not at the top of a function body. If nl_after_access_spec is non-zero,<br/>that option takes precedence. Newlines are not added at the top of the<br/>file or just after an opening brace. Newlines are added above any<br/>preprocessor directives before the block.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_start\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk End]
+Category=4
+Description="<html>The minimum number of empty newlines after a block of variable definitions<br/>not at the top of a function body. Newlines are not added if the block<br/>is at the bottom of the file or just before a preprocessor directive.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_end\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk In]
+Category=4
+Description="<html>The maximum number of consecutive newlines within a block of variable<br/>definitions.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_in\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Block Comment]
+Category=4
+Description="<html>The minimum number of newlines before a multi-line comment.<br/>Doesn't apply if after a brace open or another multi-line comment.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_block_comment\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before C Comment]
+Category=4
+Description="<html>The minimum number of newlines before a single-line C comment.<br/>Doesn't apply if after a brace open or other single-line C comments.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_c_comment\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Cpp Comment]
+Category=4
+Description="<html>The minimum number of newlines before a CPP comment.<br/>Doesn't apply if after a brace open or other CPP comments.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_cpp_comment\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Multiline Comment]
+Category=4
+Description="<html>Whether to force a newline after a multi-line comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_multiline_comment\s*=\s*true|nl_after_multiline_comment\s*=\s*false
+ValueDefault=false
+
+[Nl After Label Colon]
+Category=4
+Description="<html>Whether to force a newline after a label's colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_label_colon\s*=\s*true|nl_after_label_colon\s*=\s*false
+ValueDefault=false
+
+[Nl Before Struct]
+Category=4
+Description="<html>The number of newlines before a struct definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_struct\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Struct]
+Category=4
+Description="<html>The number of newlines after '}' or ';' of a struct/enum/union definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_struct\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Class]
+Category=4
+Description="<html>The number of newlines before a class definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_class\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Class]
+Category=4
+Description="<html>The number of newlines after '}' or ';' of a class definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_class\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Namespace]
+Category=4
+Description="<html>The number of newlines before a namespace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_namespace\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Inside Namespace]
+Category=4
+Description="<html>The number of newlines after '{' of a namespace. This also adds newlines<br/>before the matching '}'.<br/><br/>0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if<br/> applicable, otherwise no change.<br/><br/>Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_inside_namespace\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Namespace]
+Category=4
+Description="<html>The number of newlines after '}' of a namespace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_namespace\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Access Spec]
+Category=4
+Description="<html>The number of newlines before an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_access_spec\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Access Spec]
+Category=4
+Description="<html>The number of newlines after an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).<br/><br/>Overrides nl_typedef_blk_start and nl_var_def_blk_start.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_access_spec\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Comment Func Def]
+Category=4
+Description="<html>The number of newlines between a function definition and the function<br/>comment, as in '// comment\n &lt;here&gt; void foo() {...}'.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_comment_func_def\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Try Catch Finally]
+Category=4
+Description="<html>The number of newlines after a try-catch-finally block that isn't followed<br/>by a brace close.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_try_catch_finally\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Around Cs Property]
+Category=4
+Description="<html>(C#) The number of newlines before and after a property, indexer or event<br/>declaration.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_around_cs_property\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Between Get Set]
+Category=4
+Description="<html>(C#) The number of newlines between the get/set/add/remove handlers.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_between_get_set\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Property Brace]
+Category=4
+Description="<html>(C#) Add or remove newline between property and the '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_property_brace\s*=\s*ignore|nl_property_brace\s*=\s*add|nl_property_brace\s*=\s*remove|nl_property_brace\s*=\s*force|nl_property_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Property Brace|Add Nl Property Brace|Remove Nl Property Brace|Force Nl Property Brace"
+ValueDefault=ignore
+
+[Eat Blanks After Open Brace]
+Category=4
+Description="<html>Whether to remove blank lines after '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=eat_blanks_after_open_brace\s*=\s*true|eat_blanks_after_open_brace\s*=\s*false
+ValueDefault=false
+
+[Eat Blanks Before Close Brace]
+Category=4
+Description="<html>Whether to remove blank lines before '}'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=eat_blanks_before_close_brace\s*=\s*true|eat_blanks_before_close_brace\s*=\s*false
+ValueDefault=false
+
+[Nl Remove Extra Newlines]
+Category=4
+Description="<html>How aggressively to remove extra newlines not in preprocessor.<br/><br/>0: No change (default)<br/>1: Remove most newlines not handled by other config<br/>2: Remove all newlines and reformat completely by config</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_remove_extra_newlines\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Nl After Annotation]
+Category=4
+Description="<html>(Java) Add or remove newline after an annotation statement. Only affects<br/>annotations that are after a newline.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_annotation\s*=\s*ignore|nl_after_annotation\s*=\s*add|nl_after_annotation\s*=\s*remove|nl_after_annotation\s*=\s*force|nl_after_annotation\s*=\s*not_defined
+ChoicesReadable="Ignore Nl After Annotation|Add Nl After Annotation|Remove Nl After Annotation|Force Nl After Annotation"
+ValueDefault=ignore
+
+[Nl Between Annotation]
+Category=4
+Description="<html>(Java) Add or remove newline between two annotations.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_between_annotation\s*=\s*ignore|nl_between_annotation\s*=\s*add|nl_between_annotation\s*=\s*remove|nl_between_annotation\s*=\s*force|nl_between_annotation\s*=\s*not_defined
+ChoicesReadable="Ignore Nl Between Annotation|Add Nl Between Annotation|Remove Nl Between Annotation|Force Nl Between Annotation"
+ValueDefault=ignore
+
+[Nl Before Whole File Ifdef]
+Category=4
+Description="<html>The number of newlines before a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_whole_file_ifdef\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Whole File Ifdef]
+Category=4
+Description="<html>The number of newlines after a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_whole_file_ifdef\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Whole File Endif]
+Category=4
+Description="<html>The number of newlines before a whole-file #endif.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_whole_file_endif\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Whole File Endif]
+Category=4
+Description="<html>The number of newlines after a whole-file #endif.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_whole_file_endif\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Pos Arith]
+Category=5
+Description="<html>The position of arithmetic operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_arith\s*=\s*ignore|pos_arith\s*=\s*break|pos_arith\s*=\s*force|pos_arith\s*=\s*lead|pos_arith\s*=\s*trail|pos_arith\s*=\s*join|pos_arith\s*=\s*lead_break|pos_arith\s*=\s*lead_force|pos_arith\s*=\s*trail_break|pos_arith\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Arith|Break Pos Arith|Force Pos Arith|Lead Pos Arith|Trail Pos Arith|Join Pos Arith|Lead Break Pos Arith|Lead Force Pos Arith|Trail Break Pos Arith|Trail Force Pos Arith"
+ValueDefault=ignore
+
+[Pos Assign]
+Category=5
+Description="<html>The position of assignment in wrapped expressions. Do not affect '='<br/>followed by '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_assign\s*=\s*ignore|pos_assign\s*=\s*break|pos_assign\s*=\s*force|pos_assign\s*=\s*lead|pos_assign\s*=\s*trail|pos_assign\s*=\s*join|pos_assign\s*=\s*lead_break|pos_assign\s*=\s*lead_force|pos_assign\s*=\s*trail_break|pos_assign\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Assign|Break Pos Assign|Force Pos Assign|Lead Pos Assign|Trail Pos Assign|Join Pos Assign|Lead Break Pos Assign|Lead Force Pos Assign|Trail Break Pos Assign|Trail Force Pos Assign"
+ValueDefault=ignore
+
+[Pos Bool]
+Category=5
+Description="<html>The position of Boolean operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_bool\s*=\s*ignore|pos_bool\s*=\s*break|pos_bool\s*=\s*force|pos_bool\s*=\s*lead|pos_bool\s*=\s*trail|pos_bool\s*=\s*join|pos_bool\s*=\s*lead_break|pos_bool\s*=\s*lead_force|pos_bool\s*=\s*trail_break|pos_bool\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Bool|Break Pos Bool|Force Pos Bool|Lead Pos Bool|Trail Pos Bool|Join Pos Bool|Lead Break Pos Bool|Lead Force Pos Bool|Trail Break Pos Bool|Trail Force Pos Bool"
+ValueDefault=ignore
+
+[Pos Compare]
+Category=5
+Description="<html>The position of comparison operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_compare\s*=\s*ignore|pos_compare\s*=\s*break|pos_compare\s*=\s*force|pos_compare\s*=\s*lead|pos_compare\s*=\s*trail|pos_compare\s*=\s*join|pos_compare\s*=\s*lead_break|pos_compare\s*=\s*lead_force|pos_compare\s*=\s*trail_break|pos_compare\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Compare|Break Pos Compare|Force Pos Compare|Lead Pos Compare|Trail Pos Compare|Join Pos Compare|Lead Break Pos Compare|Lead Force Pos Compare|Trail Break Pos Compare|Trail Force Pos Compare"
+ValueDefault=ignore
+
+[Pos Conditional]
+Category=5
+Description="<html>The position of conditional operators, as in the '?' and ':' of<br/>'expr ? stmt : stmt', in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_conditional\s*=\s*ignore|pos_conditional\s*=\s*break|pos_conditional\s*=\s*force|pos_conditional\s*=\s*lead|pos_conditional\s*=\s*trail|pos_conditional\s*=\s*join|pos_conditional\s*=\s*lead_break|pos_conditional\s*=\s*lead_force|pos_conditional\s*=\s*trail_break|pos_conditional\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Conditional|Break Pos Conditional|Force Pos Conditional|Lead Pos Conditional|Trail Pos Conditional|Join Pos Conditional|Lead Break Pos Conditional|Lead Force Pos Conditional|Trail Break Pos Conditional|Trail Force Pos Conditional"
+ValueDefault=ignore
+
+[Pos Comma]
+Category=5
+Description="<html>The position of the comma in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_comma\s*=\s*ignore|pos_comma\s*=\s*break|pos_comma\s*=\s*force|pos_comma\s*=\s*lead|pos_comma\s*=\s*trail|pos_comma\s*=\s*join|pos_comma\s*=\s*lead_break|pos_comma\s*=\s*lead_force|pos_comma\s*=\s*trail_break|pos_comma\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Comma|Break Pos Comma|Force Pos Comma|Lead Pos Comma|Trail Pos Comma|Join Pos Comma|Lead Break Pos Comma|Lead Force Pos Comma|Trail Break Pos Comma|Trail Force Pos Comma"
+ValueDefault=ignore
+
+[Pos Enum Comma]
+Category=5
+Description="<html>The position of the comma in enum entries.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_enum_comma\s*=\s*ignore|pos_enum_comma\s*=\s*break|pos_enum_comma\s*=\s*force|pos_enum_comma\s*=\s*lead|pos_enum_comma\s*=\s*trail|pos_enum_comma\s*=\s*join|pos_enum_comma\s*=\s*lead_break|pos_enum_comma\s*=\s*lead_force|pos_enum_comma\s*=\s*trail_break|pos_enum_comma\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Enum Comma|Break Pos Enum Comma|Force Pos Enum Comma|Lead Pos Enum Comma|Trail Pos Enum Comma|Join Pos Enum Comma|Lead Break Pos Enum Comma|Lead Force Pos Enum Comma|Trail Break Pos Enum Comma|Trail Force Pos Enum Comma"
+ValueDefault=ignore
+
+[Pos Class Comma]
+Category=5
+Description="<html>The position of the comma in the base class list if there is more than one<br/>line. Affects nl_class_init_args.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_class_comma\s*=\s*ignore|pos_class_comma\s*=\s*break|pos_class_comma\s*=\s*force|pos_class_comma\s*=\s*lead|pos_class_comma\s*=\s*trail|pos_class_comma\s*=\s*join|pos_class_comma\s*=\s*lead_break|pos_class_comma\s*=\s*lead_force|pos_class_comma\s*=\s*trail_break|pos_class_comma\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Class Comma|Break Pos Class Comma|Force Pos Class Comma|Lead Pos Class Comma|Trail Pos Class Comma|Join Pos Class Comma|Lead Break Pos Class Comma|Lead Force Pos Class Comma|Trail Break Pos Class Comma|Trail Force Pos Class Comma"
+ValueDefault=ignore
+
+[Pos Constr Comma]
+Category=5
+Description="<html>The position of the comma in the constructor initialization list.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_constr_comma\s*=\s*ignore|pos_constr_comma\s*=\s*break|pos_constr_comma\s*=\s*force|pos_constr_comma\s*=\s*lead|pos_constr_comma\s*=\s*trail|pos_constr_comma\s*=\s*join|pos_constr_comma\s*=\s*lead_break|pos_constr_comma\s*=\s*lead_force|pos_constr_comma\s*=\s*trail_break|pos_constr_comma\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Constr Comma|Break Pos Constr Comma|Force Pos Constr Comma|Lead Pos Constr Comma|Trail Pos Constr Comma|Join Pos Constr Comma|Lead Break Pos Constr Comma|Lead Force Pos Constr Comma|Trail Break Pos Constr Comma|Trail Force Pos Constr Comma"
+ValueDefault=ignore
+
+[Pos Class Colon]
+Category=5
+Description="<html>The position of trailing/leading class colon, between class and base class<br/>list. Affects nl_class_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_class_colon\s*=\s*ignore|pos_class_colon\s*=\s*break|pos_class_colon\s*=\s*force|pos_class_colon\s*=\s*lead|pos_class_colon\s*=\s*trail|pos_class_colon\s*=\s*join|pos_class_colon\s*=\s*lead_break|pos_class_colon\s*=\s*lead_force|pos_class_colon\s*=\s*trail_break|pos_class_colon\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Class Colon|Break Pos Class Colon|Force Pos Class Colon|Lead Pos Class Colon|Trail Pos Class Colon|Join Pos Class Colon|Lead Break Pos Class Colon|Lead Force Pos Class Colon|Trail Break Pos Class Colon|Trail Force Pos Class Colon"
+ValueDefault=ignore
+
+[Pos Constr Colon]
+Category=5
+Description="<html>The position of colons between constructor and member initialization.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_constr_colon\s*=\s*ignore|pos_constr_colon\s*=\s*break|pos_constr_colon\s*=\s*force|pos_constr_colon\s*=\s*lead|pos_constr_colon\s*=\s*trail|pos_constr_colon\s*=\s*join|pos_constr_colon\s*=\s*lead_break|pos_constr_colon\s*=\s*lead_force|pos_constr_colon\s*=\s*trail_break|pos_constr_colon\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Constr Colon|Break Pos Constr Colon|Force Pos Constr Colon|Lead Pos Constr Colon|Trail Pos Constr Colon|Join Pos Constr Colon|Lead Break Pos Constr Colon|Lead Force Pos Constr Colon|Trail Break Pos Constr Colon|Trail Force Pos Constr Colon"
+ValueDefault=ignore
+
+[Pos Shift]
+Category=5
+Description="<html>The position of shift operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_shift\s*=\s*ignore|pos_shift\s*=\s*break|pos_shift\s*=\s*force|pos_shift\s*=\s*lead|pos_shift\s*=\s*trail|pos_shift\s*=\s*join|pos_shift\s*=\s*lead_break|pos_shift\s*=\s*lead_force|pos_shift\s*=\s*trail_break|pos_shift\s*=\s*trail_force
+ChoicesReadable="Ignore Pos Shift|Break Pos Shift|Force Pos Shift|Lead Pos Shift|Trail Pos Shift|Join Pos Shift|Lead Break Pos Shift|Lead Force Pos Shift|Trail Break Pos Shift|Trail Force Pos Shift"
+ValueDefault=ignore
+
+[Code Width]
+Category=6
+Description="<html>Try to limit code width to N columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="code_width\s*=\s*"
+MinVal=0
+MaxVal=10000
+ValueDefault=0
+
+[Ls For Split Full]
+Category=6
+Description="<html>Whether to fully split long 'for' statements at semi-colons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_for_split_full\s*=\s*true|ls_for_split_full\s*=\s*false
+ValueDefault=false
+
+[Ls Func Split Full]
+Category=6
+Description="<html>Whether to fully split long function prototypes/calls at commas.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_func_split_full\s*=\s*true|ls_func_split_full\s*=\s*false
+ValueDefault=false
+
+[Ls Code Width]
+Category=6
+Description="<html>Whether to split lines as close to code_width as possible and ignore some<br/>groupings.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_code_width\s*=\s*true|ls_code_width\s*=\s*false
+ValueDefault=false
+
+[Align Keep Tabs]
+Category=7
+Description="<html>Whether to keep non-indenting tabs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_keep_tabs\s*=\s*true|align_keep_tabs\s*=\s*false
+ValueDefault=false
+
+[Align With Tabs]
+Category=7
+Description="<html>Whether to use tabs for aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_with_tabs\s*=\s*true|align_with_tabs\s*=\s*false
+ValueDefault=false
+
+[Align On Tabstop]
+Category=7
+Description="<html>Whether to bump out to the next tab when aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_on_tabstop\s*=\s*true|align_on_tabstop\s*=\s*false
+ValueDefault=false
+
+[Align Number Right]
+Category=7
+Description="<html>Whether to right-align numbers.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_number_right\s*=\s*true|align_number_right\s*=\s*false
+ValueDefault=false
+
+[Align Keep Extra Space]
+Category=7
+Description="<html>Whether to keep whitespace not required for alignment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_keep_extra_space\s*=\s*true|align_keep_extra_space\s*=\s*false
+ValueDefault=false
+
+[Align Func Params]
+Category=7
+Description="<html>Whether to align variable definitions in prototypes and functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_func_params\s*=\s*true|align_func_params\s*=\s*false
+ValueDefault=false
+
+[Align Func Params Span]
+Category=7
+Description="<html>The span for aligning parameter definitions in function on parameter name.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_span\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Func Params Thresh]
+Category=7
+Description="<html>The threshold for aligning function parameter definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Params Gap]
+Category=7
+Description="<html>The gap for aligning function parameter definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Constr Value Span]
+Category=7
+Description="<html>The span for aligning constructor value.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_span\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Constr Value Thresh]
+Category=7
+Description="<html>The threshold for aligning constructor value.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Constr Value Gap]
+Category=7
+Description="<html>The gap for aligning constructor value.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Same Func Call Params]
+Category=7
+Description="<html>Whether to align parameters in single-line functions that have the same<br/>name. The function names must already be aligned with each other.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_same_func_call_params\s*=\s*true|align_same_func_call_params\s*=\s*false
+ValueDefault=false
+
+[Align Same Func Call Params Span]
+Category=7
+Description="<html>The span for aligning function-call parameters for single line functions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_same_func_call_params_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Same Func Call Params Thresh]
+Category=7
+Description="<html>The threshold for aligning function-call parameters for single line<br/>functions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_same_func_call_params_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Span]
+Category=7
+Description="<html>The span for aligning variable definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of variable definitions.<br/><br/>0: Part of the type 'void * foo;' (default)<br/>1: Part of the variable 'void *foo;'<br/>2: Dangling 'void *foo;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_star_style\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Var Def Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of variable definitions.<br/><br/>0: Part of the type 'long &amp; foo;' (default)<br/>1: Part of the variable 'long &amp;foo;'<br/>2: Dangling 'long &amp;foo;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_amp_style\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Var Def Thresh]
+Category=7
+Description="<html>The threshold for aligning variable definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Gap]
+Category=7
+Description="<html>The gap for aligning variable definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Def Colon]
+Category=7
+Description="<html>Whether to align the colon in struct bit fields.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_colon\s*=\s*true|align_var_def_colon\s*=\s*false
+ValueDefault=false
+
+[Align Var Def Colon Gap]
+Category=7
+Description="<html>The gap for aligning the colon in struct bit fields.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_colon_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Def Attribute]
+Category=7
+Description="<html>Whether to align any attribute after the variable name.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_attribute\s*=\s*true|align_var_def_attribute\s*=\s*false
+ValueDefault=false
+
+[Align Var Def Inline]
+Category=7
+Description="<html>Whether to align inline struct/enum/union variable definitions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_inline\s*=\s*true|align_var_def_inline\s*=\s*false
+ValueDefault=false
+
+[Align Assign Span]
+Category=7
+Description="<html>The span for aligning on '=' in assignments.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Func Proto Span]
+Category=7
+Description="<html>The span for aligning on '=' in function prototype modifier.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_func_proto_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Thresh]
+Category=7
+Description="<html>The threshold for aligning on '=' in assignments.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign On Multi Var Defs]
+Category=7
+Description="<html>Whether to align on the left most assignment when multiple<br/>definitions are found on the same line.<br/>Depends on 'align_assign_span' and 'align_assign_thresh' settings.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_assign_on_multi_var_defs\s*=\s*true|align_assign_on_multi_var_defs\s*=\s*false
+ValueDefault=false
+
+[Align Braced Init List Span]
+Category=7
+Description="<html>The span for aligning on '{' in braced init list.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_braced_init_list_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Braced Init List Thresh]
+Category=7
+Description="<html>The threshold for aligning on '{' in braced init list.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_braced_init_list_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Decl Func]
+Category=7
+Description="<html>How to apply align_assign_span to function declaration "assignments", i.e.<br/>'virtual void foo() = 0' or '~foo() = {default|delete}'.<br/><br/>0: Align with other assignments (default)<br/>1: Align with each other, ignoring regular assignments<br/>2: Don't align</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_decl_func\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Enum Equ Span]
+Category=7
+Description="<html>The span for aligning on '=' in enums.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_enum_equ_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Enum Equ Thresh]
+Category=7
+Description="<html>The threshold for aligning on '=' in enums.<br/>Use a negative number for absolute thresholds.<br/><br/>0: no limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_enum_equ_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Span]
+Category=7
+Description="<html>The span for aligning class member definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Thresh]
+Category=7
+Description="<html>The threshold for aligning class member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Gap]
+Category=7
+Description="<html>The gap for aligning class member definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Struct Span]
+Category=7
+Description="<html>The span for aligning struct/union member definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Struct Thresh]
+Category=7
+Description="<html>The threshold for aligning struct/union member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Struct Gap]
+Category=7
+Description="<html>The gap for aligning struct/union member definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Struct Init Span]
+Category=7
+Description="<html>The span for aligning struct initializer values.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_struct_init_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Typedef Span]
+Category=7
+Description="<html>The span for aligning single-line typedefs.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_span\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Typedef Gap]
+Category=7
+Description="<html>The minimum space between the type and the synonym of a typedef.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Typedef Func]
+Category=7
+Description="<html>How to align typedef'd functions with other typedefs.<br/><br/>0: Don't mix them at all (default)<br/>1: Align the open parenthesis with the types<br/>2: Align the function type name with the other type names</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_func\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Typedef Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int * pint;' (default)<br/>1: Part of type name: 'typedef int *pint;'<br/>2: Dangling: 'typedef int *pint;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_star_style\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Typedef Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int &amp; intref;' (default)<br/>1: Part of type name: 'typedef int &amp;intref;'<br/>2: Dangling: 'typedef int &amp;intref;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_amp_style\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Right Cmt Span]
+Category=7
+Description="<html>The span for aligning comments that end lines.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Right Cmt Gap]
+Category=7
+Description="<html>Minimum number of columns between preceding text and a trailing comment in<br/>order for the comment to qualify for being aligned. Must be non-zero to have<br/>an effect.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Right Cmt Mix]
+Category=7
+Description="<html>If aligning comments, whether to mix with comments after '}' and #endif with<br/>less than three spaces before the comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_right_cmt_mix\s*=\s*true|align_right_cmt_mix\s*=\s*false
+ValueDefault=false
+
+[Align Right Cmt Same Level]
+Category=7
+Description="<html>Whether to only align trailing comments that are at the same brace level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_right_cmt_same_level\s*=\s*true|align_right_cmt_same_level\s*=\s*false
+ValueDefault=false
+
+[Align Right Cmt At Col]
+Category=7
+Description="<html>Minimum column at which to align trailing comments. Comments which are<br/>aligned beyond this column, but which can be aligned in a lesser column,<br/>may be "pulled in".<br/><br/>0: Ignore (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_at_col\s*=\s*"
+MinVal=0
+MaxVal=200
+ValueDefault=0
+
+[Align Func Proto Span]
+Category=7
+Description="<html>The span for aligning function prototypes.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Proto Span Ignore Cont Lines]
+Category=7
+Description="<html>Whether to ignore continuation lines when evaluating the number of<br/>new lines for the function prototype alignment's span.<br/><br/>false: continuation lines are part of the newlines count<br/>true: continuation lines are not counted</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_func_proto_span_ignore_cont_lines\s*=\s*true|align_func_proto_span_ignore_cont_lines\s*=\s*false
+ValueDefault=false
+
+[Align Func Proto Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of function prototypes.<br/><br/>0: Part of the type 'void * foo();' (default)<br/>1: Part of the function 'void *foo();'<br/>2: Dangling 'void *foo();'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_star_style\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Func Proto Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of function prototypes.<br/><br/>0: Part of the type 'long &amp; foo();' (default)<br/>1: Part of the function 'long &amp;foo();'<br/>2: Dangling 'long &amp;foo();'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_amp_style\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Func Proto Thresh]
+Category=7
+Description="<html>The threshold for aligning function prototypes.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_thresh\s*=\s*"
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Proto Gap]
+Category=7
+Description="<html>Minimum gap between the return type and the function name.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align On Operator]
+Category=7
+Description="<html>Whether to align function prototypes on the 'operator' keyword instead of<br/>what follows.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_on_operator\s*=\s*true|align_on_operator\s*=\s*false
+ValueDefault=false
+
+[Align Mix Var Proto]
+Category=7
+Description="<html>Whether to mix aligning prototype and variable declarations. If true,<br/>align_var_def_XXX options are used instead of align_func_proto_XXX options.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_mix_var_proto\s*=\s*true|align_mix_var_proto\s*=\s*false
+ValueDefault=false
+
+[Align Single Line Func]
+Category=7
+Description="<html>Whether to align single-line functions with function prototypes.<br/>Uses align_func_proto_span.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_single_line_func\s*=\s*true|align_single_line_func\s*=\s*false
+ValueDefault=false
+
+[Align Single Line Brace]
+Category=7
+Description="<html>Whether to align the open brace of single-line functions.<br/>Requires align_single_line_func=true. Uses align_func_proto_span.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_single_line_brace\s*=\s*true|align_single_line_brace\s*=\s*false
+ValueDefault=false
+
+[Align Single Line Brace Gap]
+Category=7
+Description="<html>Gap for align_single_line_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_single_line_brace_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Oc Msg Spec Span]
+Category=7
+Description="<html>(OC) The span for aligning Objective-C message specifications.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_oc_msg_spec_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Nl Cont]
+Category=7
+Description="<html>Whether and how to align backslashes that split a macro onto multiple lines.<br/>This will not work right if the macro contains a multi-line comment.<br/><br/>0: Do nothing (default)<br/>1: Align the backslashes in the column at the end of the longest line<br/>2: Align with the backslash that is farthest to the left, or, if that<br/> backslash is farther left than the end of the longest line, at the end of<br/> the longest line<br/>3: Align with the backslash that is farthest to the right</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_nl_cont\s*=\s*"
+MinVal=0
+MaxVal=3
+ValueDefault=0
+
+[Align Nl Cont Spaces]
+Category=7
+Description="<html>The minimum number of spaces between the end of a line and its continuation<br/>backslash. Requires align_nl_cont.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_nl_cont_spaces\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Align Pp Define Together]
+Category=7
+Description="<html>Whether to align macro functions and variables together.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_pp_define_together\s*=\s*true|align_pp_define_together\s*=\s*false
+ValueDefault=false
+
+[Align Pp Define Span]
+Category=7
+Description="<html>The span for aligning on '#define' bodies.<br/><br/>=0: Don't align (default)<br/>&gt;0: Number of lines (including comments) between blocks</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_pp_define_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Pp Define Gap]
+Category=7
+Description="<html>The minimum space between label and value of a preprocessor define.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_pp_define_gap\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Left Shift]
+Category=7
+Description="<html>Whether to align lines that start with '&lt;&lt;' with previous '&lt;&lt;'.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_left_shift\s*=\s*true|align_left_shift\s*=\s*false
+ValueDefault=true
+
+[Align Eigen Comma Init]
+Category=7
+Description="<html>Whether to align comma-separated statements following '&lt;&lt;' (as used to<br/>initialize Eigen matrices).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_eigen_comma_init\s*=\s*true|align_eigen_comma_init\s*=\s*false
+ValueDefault=false
+
+[Align Asm Colon]
+Category=7
+Description="<html>Whether to align text after 'asm volatile ()' colons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_asm_colon\s*=\s*true|align_asm_colon\s*=\s*false
+ValueDefault=false
+
+[Align Oc Msg Colon Span]
+Category=7
+Description="<html>(OC) Span for aligning parameters in an Objective-C message call<br/>on the ':'.<br/><br/>0: Don't align.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_oc_msg_colon_span\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Oc Msg Colon First]
+Category=7
+Description="<html>(OC) Whether to always align with the first parameter, even if it is too<br/>short.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_msg_colon_first\s*=\s*true|align_oc_msg_colon_first\s*=\s*false
+ValueDefault=false
+
+[Align Oc Decl Colon]
+Category=7
+Description="<html>(OC) Whether to align parameters in an Objective-C '+' or '-' declaration<br/>on the ':'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_decl_colon\s*=\s*true|align_oc_decl_colon\s*=\s*false
+ValueDefault=false
+
+[Align Oc Msg Colon Xcode Like]
+Category=7
+Description="<html>(OC) Whether to not align parameters in an Objectve-C message call if first<br/>colon is not on next line of the message call (the same way Xcode does<br/>alignment)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_msg_colon_xcode_like\s*=\s*true|align_oc_msg_colon_xcode_like\s*=\s*false
+ValueDefault=false
+
+[Cmt Width]
+Category=8
+Description="<html>Try to wrap comments at N columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_width\s*=\s*"
+MinVal=0
+MaxVal=256
+ValueDefault=0
+
+[Cmt Reflow Mode]
+Category=8
+Description="<html>How to reflow comments.<br/><br/>0: No reflowing (apart from the line wrapping due to cmt_width) (default)<br/>1: No touching at all<br/>2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_reflow_mode\s*=\s*"
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Cmt Reflow Fold Regex File]
+Category=8
+Description="<html>Path to a file that contains regular expressions describing patterns for<br/>which the end of one line and the beginning of the next will be folded into<br/>the same sentence or paragraph during full comment reflow. The regular<br/>expressions are described using ECMAScript syntax. The syntax for this<br/>specification is as follows, where "..." indicates the custom regular<br/>expression and "n" indicates the nth end_of_prev_line_regex and<br/>beg_of_next_line_regex regular expression pair:<br/><br/>end_of_prev_line_regex[1] = "...$"<br/>beg_of_next_line_regex[1] = "^..."<br/>end_of_prev_line_regex[2] = "...$"<br/>beg_of_next_line_regex[2] = "^..."<br/> .<br/> .<br/> .<br/>end_of_prev_line_regex[n] = "...$"<br/>beg_of_next_line_regex[n] = "^..."<br/><br/>Note that use of this option overrides the default reflow fold regular<br/>expressions, which are internally defined as follows:<br/><br/>end_of_prev_line_regex[1] = "[\w,\]\)]$"<br/>beg_of_next_line_regex[1] = "^[\w,\[\(]"<br/>end_of_prev_line_regex[2] = "\.$"<br/>beg_of_next_line_regex[2] = "^[A-Z]"</html>"
+Enabled=false
+CallName=cmt_reflow_fold_regex_file\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Cmt Reflow Indent To Paragraph Start]
+Category=8
+Description="<html>Whether to indent wrapped lines to the start of the encompassing paragraph<br/>during full comment reflow (cmt_reflow_mode = 2). Overrides the value<br/>specified by cmt_sp_after_star_cont.<br/><br/>Note that cmt_align_doxygen_javadoc_tags overrides this option for<br/>paragraphs associated with javadoc tags</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_reflow_indent_to_paragraph_start\s*=\s*true|cmt_reflow_indent_to_paragraph_start\s*=\s*false
+ValueDefault=false
+
+[Cmt Convert Tab To Spaces]
+Category=8
+Description="<html>Whether to convert all tabs to spaces in comments. If false, tabs in<br/>comments are left alone, unless used for indenting.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_convert_tab_to_spaces\s*=\s*true|cmt_convert_tab_to_spaces\s*=\s*false
+ValueDefault=false
+
+[Cmt Indent Multi]
+Category=8
+Description="<html>Whether to apply changes to multi-line comments, including cmt_width,<br/>keyword substitution and leading chars.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_indent_multi\s*=\s*true|cmt_indent_multi\s*=\s*false
+ValueDefault=true
+
+[Cmt Align Doxygen Javadoc Tags]
+Category=8
+Description="<html>Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)<br/>and corresponding fields such that groups of consecutive block tags,<br/>parameter names, and descriptions align with one another. Overrides that<br/>which is specified by the cmt_sp_after_star_cont. If cmt_width &gt; 0, it may<br/>be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2<br/>in order to achieve the desired alignment for line-wrapping.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_align_doxygen_javadoc_tags\s*=\s*true|cmt_align_doxygen_javadoc_tags\s*=\s*false
+ValueDefault=false
+
+[Cmt Sp Before Doxygen Javadoc Tags]
+Category=8
+Description="<html>The number of spaces to insert after the star and before doxygen<br/>javadoc-style tags (@param, @return, etc). Requires enabling<br/>cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the<br/>cmt_sp_after_star_cont.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_before_doxygen_javadoc_tags\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Cmt Trailing Single Line C To Cpp]
+Category=8
+Description="<html>Whether to change trailing, single-line c-comments into cpp-comments.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_trailing_single_line_c_to_cpp\s*=\s*true|cmt_trailing_single_line_c_to_cpp\s*=\s*false
+ValueDefault=false
+
+[Cmt C Group]
+Category=8
+Description="<html>Whether to group c-comments that look like they are in a block.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_group\s*=\s*true|cmt_c_group\s*=\s*false
+ValueDefault=false
+
+[Cmt C Nl Start]
+Category=8
+Description="<html>Whether to put an empty '/*' on the first line of the combined c-comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_nl_start\s*=\s*true|cmt_c_nl_start\s*=\s*false
+ValueDefault=false
+
+[Cmt C Nl End]
+Category=8
+Description="<html>Whether to add a newline before the closing '*/' of the combined c-comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_nl_end\s*=\s*true|cmt_c_nl_end\s*=\s*false
+ValueDefault=false
+
+[Cmt Cpp To C]
+Category=8
+Description="<html>Whether to change cpp-comments into c-comments.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_to_c\s*=\s*true|cmt_cpp_to_c\s*=\s*false
+ValueDefault=false
+
+[Cmt Cpp Group]
+Category=8
+Description="<html>Whether to group cpp-comments that look like they are in a block. Only<br/>meaningful if cmt_cpp_to_c=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_group\s*=\s*true|cmt_cpp_group\s*=\s*false
+ValueDefault=false
+
+[Cmt Cpp Nl Start]
+Category=8
+Description="<html>Whether to put an empty '/*' on the first line of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_nl_start\s*=\s*true|cmt_cpp_nl_start\s*=\s*false
+ValueDefault=false
+
+[Cmt Cpp Nl End]
+Category=8
+Description="<html>Whether to add a newline before the closing '*/' of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_nl_end\s*=\s*true|cmt_cpp_nl_end\s*=\s*false
+ValueDefault=false
+
+[Cmt Star Cont]
+Category=8
+Description="<html>Whether to put a star on subsequent comment lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_star_cont\s*=\s*true|cmt_star_cont\s*=\s*false
+ValueDefault=false
+
+[Cmt Sp Before Star Cont]
+Category=8
+Description="<html>The number of spaces to insert at the start of subsequent comment lines.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_before_star_cont\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Cmt Sp After Star Cont]
+Category=8
+Description="<html>The number of spaces to insert after the star on subsequent comment lines.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_after_star_cont\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Cmt Multi Check Last]
+Category=8
+Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_multi_check_last\s*=\s*true|cmt_multi_check_last\s*=\s*false
+ValueDefault=true
+
+[Cmt Multi First Len Minimum]
+Category=8
+Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length AND if the length is<br/>bigger as the first_len minimum.<br/><br/>Default: 4</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_multi_first_len_minimum\s*=\s*"
+MinVal=1
+MaxVal=20
+ValueDefault=4
+
+[Cmt Insert File Header]
+Category=8
+Description="<html>Path to a file that contains text to insert at the beginning of a file if<br/>the file doesn't start with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
+Enabled=false
+CallName=cmt_insert_file_header\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Cmt Insert File Footer]
+Category=8
+Description="<html>Path to a file that contains text to insert at the end of a file if the<br/>file doesn't end with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
+Enabled=false
+CallName=cmt_insert_file_footer\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Func Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before a function definition if<br/>the function isn't preceded by a C/C++ comment. If the inserted text<br/>contains '$(function)', '$(javaparam)' or '$(fclass)', these will be<br/>replaced with, respectively, the name of the function, the javadoc '@param'<br/>and '@return' stuff, or the name of the class to which the member function<br/>belongs.</html>"
+Enabled=false
+CallName=cmt_insert_func_header\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Class Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before a class if the class<br/>isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',<br/>that will be replaced with the class name.</html>"
+Enabled=false
+CallName=cmt_insert_class_header\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Oc Msg Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before an Objective-C message<br/>specification, if the method isn't preceded by a C/C++ comment. If the<br/>inserted text contains '$(message)' or '$(javaparam)', these will be<br/>replaced with, respectively, the name of the function, or the javadoc<br/>'@param' and '@return' stuff.</html>"
+Enabled=false
+CallName=cmt_insert_oc_msg_header\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Before Preproc]
+Category=8
+Description="<html>Whether a comment should be inserted if a preprocessor is encountered when<br/>stepping backwards from a function name.<br/><br/>Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and<br/>cmt_insert_class_header.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_preproc\s*=\s*true|cmt_insert_before_preproc\s*=\s*false
+ValueDefault=false
+
+[Cmt Insert Before Inlines]
+Category=8
+Description="<html>Whether a comment should be inserted if a function is declared inline to a<br/>class definition.<br/><br/>Applies to cmt_insert_func_header.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_inlines\s*=\s*true|cmt_insert_before_inlines\s*=\s*false
+ValueDefault=true
+
+[Cmt Insert Before Ctor Dtor]
+Category=8
+Description="<html>Whether a comment should be inserted if the function is a class constructor<br/>or destructor.<br/><br/>Applies to cmt_insert_func_header.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_ctor_dtor\s*=\s*true|cmt_insert_before_ctor_dtor\s*=\s*false
+ValueDefault=false
+
+[Mod Full Brace Do]
+Category=9
+Description="<html>Add or remove braces on a single-line 'do' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_do\s*=\s*ignore|mod_full_brace_do\s*=\s*add|mod_full_brace_do\s*=\s*remove|mod_full_brace_do\s*=\s*force|mod_full_brace_do\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Full Brace Do|Add Mod Full Brace Do|Remove Mod Full Brace Do|Force Mod Full Brace Do"
+ValueDefault=ignore
+
+[Mod Full Brace For]
+Category=9
+Description="<html>Add or remove braces on a single-line 'for' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_for\s*=\s*ignore|mod_full_brace_for\s*=\s*add|mod_full_brace_for\s*=\s*remove|mod_full_brace_for\s*=\s*force|mod_full_brace_for\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Full Brace For|Add Mod Full Brace For|Remove Mod Full Brace For|Force Mod Full Brace For"
+ValueDefault=ignore
+
+[Mod Full Brace Function]
+Category=9
+Description="<html>(Pawn) Add or remove braces on a single-line function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_function\s*=\s*ignore|mod_full_brace_function\s*=\s*add|mod_full_brace_function\s*=\s*remove|mod_full_brace_function\s*=\s*force|mod_full_brace_function\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Full Brace Function|Add Mod Full Brace Function|Remove Mod Full Brace Function|Force Mod Full Brace Function"
+ValueDefault=ignore
+
+[Mod Full Brace If]
+Category=9
+Description="<html>Add or remove braces on a single-line 'if' statement. Braces will not be<br/>removed if the braced statement contains an 'else'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_if\s*=\s*ignore|mod_full_brace_if\s*=\s*add|mod_full_brace_if\s*=\s*remove|mod_full_brace_if\s*=\s*force|mod_full_brace_if\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Full Brace If|Add Mod Full Brace If|Remove Mod Full Brace If|Force Mod Full Brace If"
+ValueDefault=ignore
+
+[Mod Full Brace If Chain]
+Category=9
+Description="<html>Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either<br/>have, or do not have, braces. Overrides mod_full_brace_if.<br/><br/>0: Don't override mod_full_brace_if<br/>1: Add braces to all blocks if any block needs braces and remove braces if<br/> they can be removed from all blocks<br/>2: Add braces to all blocks if any block already has braces, regardless of<br/> whether it needs them<br/>3: Add braces to all blocks if any block needs braces and remove braces if<br/> they can be removed from all blocks, except if all blocks have braces<br/> despite none needing them</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_full_brace_if_chain\s*=\s*"
+MinVal=0
+MaxVal=3
+ValueDefault=0
+
+[Mod Full Brace If Chain Only]
+Category=9
+Description="<html>Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.<br/>If true, mod_full_brace_if_chain will only remove braces from an 'if' that<br/>does not have an 'else if' or 'else'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_brace_if_chain_only\s*=\s*true|mod_full_brace_if_chain_only\s*=\s*false
+ValueDefault=false
+
+[Mod Full Brace While]
+Category=9
+Description="<html>Add or remove braces on single-line 'while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_while\s*=\s*ignore|mod_full_brace_while\s*=\s*add|mod_full_brace_while\s*=\s*remove|mod_full_brace_while\s*=\s*force|mod_full_brace_while\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Full Brace While|Add Mod Full Brace While|Remove Mod Full Brace While|Force Mod Full Brace While"
+ValueDefault=ignore
+
+[Mod Full Brace Using]
+Category=9
+Description="<html>Add or remove braces on single-line 'using ()' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_using\s*=\s*ignore|mod_full_brace_using\s*=\s*add|mod_full_brace_using\s*=\s*remove|mod_full_brace_using\s*=\s*force|mod_full_brace_using\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Full Brace Using|Add Mod Full Brace Using|Remove Mod Full Brace Using|Force Mod Full Brace Using"
+ValueDefault=ignore
+
+[Mod Full Brace Nl]
+Category=9
+Description="<html>Don't remove braces around statements that span N newlines</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_full_brace_nl\s*=\s*"
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Mod Full Brace Nl Block Rem Mlcond]
+Category=9
+Description="<html>Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks<br/>which span multiple lines.<br/><br/>Affects:<br/> mod_full_brace_for<br/> mod_full_brace_if<br/> mod_full_brace_if_chain<br/> mod_full_brace_if_chain_only<br/> mod_full_brace_while<br/> mod_full_brace_using<br/><br/>Does not affect:<br/> mod_full_brace_do<br/> mod_full_brace_function</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_brace_nl_block_rem_mlcond\s*=\s*true|mod_full_brace_nl_block_rem_mlcond\s*=\s*false
+ValueDefault=false
+
+[Mod Paren On Return]
+Category=9
+Description="<html>Add or remove unnecessary parentheses on 'return' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_paren_on_return\s*=\s*ignore|mod_paren_on_return\s*=\s*add|mod_paren_on_return\s*=\s*remove|mod_paren_on_return\s*=\s*force|mod_paren_on_return\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Paren On Return|Add Mod Paren On Return|Remove Mod Paren On Return|Force Mod Paren On Return"
+ValueDefault=ignore
+
+[Mod Paren On Throw]
+Category=9
+Description="<html>Add or remove unnecessary parentheses on 'throw' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_paren_on_throw\s*=\s*ignore|mod_paren_on_throw\s*=\s*add|mod_paren_on_throw\s*=\s*remove|mod_paren_on_throw\s*=\s*force|mod_paren_on_throw\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Paren On Throw|Add Mod Paren On Throw|Remove Mod Paren On Throw|Force Mod Paren On Throw"
+ValueDefault=ignore
+
+[Mod Pawn Semicolon]
+Category=9
+Description="<html>(Pawn) Whether to change optional semicolons to real semicolons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_pawn_semicolon\s*=\s*true|mod_pawn_semicolon\s*=\s*false
+ValueDefault=false
+
+[Mod Full Paren If Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions in 'while' and 'if'<br/>statement, as in 'if (a &amp;&amp; b &gt; c)' =&gt; 'if (a &amp;&amp; (b &gt; c))'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_if_bool\s*=\s*true|mod_full_paren_if_bool\s*=\s*false
+ValueDefault=false
+
+[Mod Full Paren Assign Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions after '='<br/>statement, as in 'x = a &amp;&amp; b &gt; c;' =&gt; 'x = (a &amp;&amp; (b &gt; c));'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_assign_bool\s*=\s*true|mod_full_paren_assign_bool\s*=\s*false
+ValueDefault=false
+
+[Mod Full Paren Return Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions after '='<br/>statement, as in 'return a &amp;&amp; b &gt; c;' =&gt; 'return (a &amp;&amp; (b &gt; c));'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_return_bool\s*=\s*true|mod_full_paren_return_bool\s*=\s*false
+ValueDefault=false
+
+[Mod Remove Extra Semicolon]
+Category=9
+Description="<html>Whether to remove superfluous semicolons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_extra_semicolon\s*=\s*true|mod_remove_extra_semicolon\s*=\s*false
+ValueDefault=false
+
+[Mod Remove Duplicate Include]
+Category=9
+Description="<html>Whether to remove duplicate include.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_duplicate_include\s*=\s*true|mod_remove_duplicate_include\s*=\s*false
+ValueDefault=false
+
+[Mod Add Force C Closebrace Comment]
+Category=9
+Description="<html>the following options (mod_XX_closebrace_comment) use different comment,<br/>depending of the setting of the next option.<br/>false: Use the c comment (default)<br/>true : Use the cpp comment</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_add_force_c_closebrace_comment\s*=\s*true|mod_add_force_c_closebrace_comment\s*=\s*false
+ValueDefault=false
+
+[Mod Add Long Function Closebrace Comment]
+Category=9
+Description="<html>If a function body exceeds the specified number of newlines and doesn't have<br/>a comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_function_closebrace_comment\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Namespace Closebrace Comment]
+Category=9
+Description="<html>If a namespace body exceeds the specified number of newlines and doesn't<br/>have a comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_namespace_closebrace_comment\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Class Closebrace Comment]
+Category=9
+Description="<html>If a class body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_class_closebrace_comment\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Switch Closebrace Comment]
+Category=9
+Description="<html>If a switch body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_switch_closebrace_comment\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Ifdef Endif Comment]
+Category=9
+Description="<html>If an #ifdef body exceeds the specified number of newlines and doesn't have<br/>a comment after the #endif, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_ifdef_endif_comment\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Ifdef Else Comment]
+Category=9
+Description="<html>If an #ifdef or #else body exceeds the specified number of newlines and<br/>doesn't have a comment after the #else, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_ifdef_else_comment\s*=\s*"
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Sort Case Sensitive]
+Category=9
+Description="<html>Whether to take care of the case by the mod_sort_xx options.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_case_sensitive\s*=\s*true|mod_sort_case_sensitive\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Import]
+Category=9
+Description="<html>Whether to sort consecutive single-line 'import' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_import\s*=\s*true|mod_sort_import\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Using]
+Category=9
+Description="<html>(C#) Whether to sort consecutive single-line 'using' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_using\s*=\s*true|mod_sort_using\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Include]
+Category=9
+Description="<html>Whether to sort consecutive single-line '#include' statements (C/C++) and<br/>'#import' statements (Objective-C). Be aware that this has the potential to<br/>break your code if your includes/imports have ordering dependencies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_include\s*=\s*true|mod_sort_include\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Filename]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>filename without extension when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_filename\s*=\s*true|mod_sort_incl_import_prioritize_filename\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Extensionless]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that does not<br/>contain extensions when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_extensionless\s*=\s*true|mod_sort_incl_import_prioritize_extensionless\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Angle Over Quotes]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>angle over quotes when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_angle_over_quotes\s*=\s*true|mod_sort_incl_import_prioritize_angle_over_quotes\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Incl Import Ignore Extension]
+Category=9
+Description="<html>Whether to ignore file extension in '#include' and '#import' statements<br/>for sorting comparison.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_ignore_extension\s*=\s*true|mod_sort_incl_import_ignore_extension\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Incl Import Grouping Enabled]
+Category=9
+Description="<html>Whether to group '#include' and '#import' statements when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_grouping_enabled\s*=\s*true|mod_sort_incl_import_grouping_enabled\s*=\s*false
+ValueDefault=false
+
+[Mod Move Case Break]
+Category=9
+Description="<html>Whether to move a 'break' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } break;' =&gt; 'case X: { ... break; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_move_case_break\s*=\s*true|mod_move_case_break\s*=\s*false
+ValueDefault=false
+
+[Mod Move Case Return]
+Category=9
+Description="<html>Whether to move a 'return' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } return;' =&gt; 'case X: { ... return; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_move_case_return\s*=\s*true|mod_move_case_return\s*=\s*false
+ValueDefault=false
+
+[Mod Case Brace]
+Category=9
+Description="<html>Add or remove braces around a fully braced case statement. Will only remove<br/>braces if there are no variable declarations in the block.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_case_brace\s*=\s*ignore|mod_case_brace\s*=\s*add|mod_case_brace\s*=\s*remove|mod_case_brace\s*=\s*force|mod_case_brace\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Case Brace|Add Mod Case Brace|Remove Mod Case Brace|Force Mod Case Brace"
+ValueDefault=ignore
+
+[Mod Remove Empty Return]
+Category=9
+Description="<html>Whether to remove a void 'return;' that appears as the last statement in a<br/>function.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_empty_return\s*=\s*true|mod_remove_empty_return\s*=\s*false
+ValueDefault=false
+
+[Mod Enum Last Comma]
+Category=9
+Description="<html>Add or remove the comma after the last value of an enumeration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_enum_last_comma\s*=\s*ignore|mod_enum_last_comma\s*=\s*add|mod_enum_last_comma\s*=\s*remove|mod_enum_last_comma\s*=\s*force|mod_enum_last_comma\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Enum Last Comma|Add Mod Enum Last Comma|Remove Mod Enum Last Comma|Force Mod Enum Last Comma"
+ValueDefault=ignore
+
+[Mod Infinite Loop]
+Category=9
+Description="<html>Syntax to use for infinite loops.<br/><br/>0: Leave syntax alone (default)<br/>1: Rewrite as `for(;;)`<br/>2: Rewrite as `while(true)`<br/>3: Rewrite as `do`...`while(true);`<br/>4: Rewrite as `while`<br/>5: Rewrite as `do`...`while;`<br/><br/>Infinite loops that do not already match one of these syntaxes are ignored.<br/>Other options that affect loop formatting will be applied after transforming<br/>the syntax.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_infinite_loop\s*=\s*"
+MinVal=0
+MaxVal=5
+ValueDefault=0
+
+[Mod Int Short]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'int short'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_int_short\s*=\s*ignore|mod_int_short\s*=\s*add|mod_int_short\s*=\s*remove|mod_int_short\s*=\s*force|mod_int_short\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Int Short|Add Mod Int Short|Remove Mod Int Short|Force Mod Int Short"
+ValueDefault=ignore
+
+[Mod Short Int]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'short int'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_short_int\s*=\s*ignore|mod_short_int\s*=\s*add|mod_short_int\s*=\s*remove|mod_short_int\s*=\s*force|mod_short_int\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Short Int|Add Mod Short Int|Remove Mod Short Int|Force Mod Short Int"
+ValueDefault=ignore
+
+[Mod Int Long]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'int long'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_int_long\s*=\s*ignore|mod_int_long\s*=\s*add|mod_int_long\s*=\s*remove|mod_int_long\s*=\s*force|mod_int_long\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Int Long|Add Mod Int Long|Remove Mod Int Long|Force Mod Int Long"
+ValueDefault=ignore
+
+[Mod Long Int]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'long int'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_long_int\s*=\s*ignore|mod_long_int\s*=\s*add|mod_long_int\s*=\s*remove|mod_long_int\s*=\s*force|mod_long_int\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Long Int|Add Mod Long Int|Remove Mod Long Int|Force Mod Long Int"
+ValueDefault=ignore
+
+[Mod Int Signed]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'int signed'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_int_signed\s*=\s*ignore|mod_int_signed\s*=\s*add|mod_int_signed\s*=\s*remove|mod_int_signed\s*=\s*force|mod_int_signed\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Int Signed|Add Mod Int Signed|Remove Mod Int Signed|Force Mod Int Signed"
+ValueDefault=ignore
+
+[Mod Signed Int]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'signed int'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_signed_int\s*=\s*ignore|mod_signed_int\s*=\s*add|mod_signed_int\s*=\s*remove|mod_signed_int\s*=\s*force|mod_signed_int\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Signed Int|Add Mod Signed Int|Remove Mod Signed Int|Force Mod Signed Int"
+ValueDefault=ignore
+
+[Mod Int Unsigned]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'int unsigned'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_int_unsigned\s*=\s*ignore|mod_int_unsigned\s*=\s*add|mod_int_unsigned\s*=\s*remove|mod_int_unsigned\s*=\s*force|mod_int_unsigned\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Int Unsigned|Add Mod Int Unsigned|Remove Mod Int Unsigned|Force Mod Int Unsigned"
+ValueDefault=ignore
+
+[Mod Unsigned Int]
+Category=9
+Description="<html>Add or remove the 'int' keyword in 'unsigned int'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_unsigned_int\s*=\s*ignore|mod_unsigned_int\s*=\s*add|mod_unsigned_int\s*=\s*remove|mod_unsigned_int\s*=\s*force|mod_unsigned_int\s*=\s*not_defined
+ChoicesReadable="Ignore Mod Unsigned Int|Add Mod Unsigned Int|Remove Mod Unsigned Int|Force Mod Unsigned Int"
+ValueDefault=ignore
+
+[Mod Int Prefer Int On Left]
+Category=9
+Description="<html>If there is a situation where mod_int_* and mod_*_int would result in<br/>multiple int keywords, whether to keep the rightmost int (the default) or the<br/>leftmost int.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_int_prefer_int_on_left\s*=\s*true|mod_int_prefer_int_on_left\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Oc Properties]
+Category=9
+Description="<html>(OC) Whether to organize the properties. If true, properties will be<br/>rearranged according to the mod_sort_oc_property_*_weight factors.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_oc_properties\s*=\s*true|mod_sort_oc_properties\s*=\s*false
+ValueDefault=false
+
+[Mod Sort Oc Property Class Weight]
+Category=9
+Description="<html>(OC) Weight of a class property modifier.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_class_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Thread Safe Weight]
+Category=9
+Description="<html>(OC) Weight of 'atomic' and 'nonatomic'.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_thread_safe_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Readwrite Weight]
+Category=9
+Description="<html>(OC) Weight of 'readwrite' when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_readwrite_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Reference Weight]
+Category=9
+Description="<html>(OC) Weight of a reference type specifier ('retain', 'copy', 'assign',<br/>'weak', 'strong') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_reference_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Getter Weight]
+Category=9
+Description="<html>(OC) Weight of getter type ('getter=') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_getter_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Setter Weight]
+Category=9
+Description="<html>(OC) Weight of setter type ('setter=') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_setter_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Nullability Weight]
+Category=9
+Description="<html>(OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',<br/>'null_resettable') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_nullability_weight\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Pp Indent With Tabs]
+Category=10
+Description="<html>How to use tabs when indenting preprocessor code.<br/><br/>-1: Use 'indent_with_tabs' setting (default)<br/> 0: Spaces only<br/> 1: Indent with tabs to brace level, align with spaces<br/> 2: Indent and align with tabs, using spaces when not on a tabstop<br/><br/>Default: -1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_with_tabs\s*=\s*"
+MinVal=-1
+MaxVal=2
+ValueDefault=-1
+
+[Pp Indent]
+Category=10
+Description="<html>Add or remove indentation of preprocessor directives inside #if blocks<br/>at brace level 0 (file-level).</html>"
+Enabled=false
+EditorType=multiple
+Choices=pp_indent\s*=\s*ignore|pp_indent\s*=\s*add|pp_indent\s*=\s*remove|pp_indent\s*=\s*force|pp_indent\s*=\s*not_defined
+ChoicesReadable="Ignore Pp Indent|Add Pp Indent|Remove Pp Indent|Force Pp Indent"
+ValueDefault=ignore
+
+[Pp Indent At Level]
+Category=10
+Description="<html>Whether to indent #if/#else/#endif at the brace level. If false, these are<br/>indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_at_level\s*=\s*true|pp_indent_at_level\s*=\s*false
+ValueDefault=false
+
+[Pp Indent At Level0]
+Category=10
+Description="<html>Whether to indent #if/#else/#endif at the parenthesis level if the brace<br/>level is 0. If false, these are indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_at_level0\s*=\s*true|pp_indent_at_level0\s*=\s*false
+ValueDefault=false
+
+[Pp Indent Count]
+Category=10
+Description="<html>Specifies the number of columns to indent preprocessors per level<br/>at brace level 0 (file-level). If pp_indent_at_level=false, also specifies<br/>the number of columns to indent preprocessors per level<br/>at brace level &gt; 0 (function-level).<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_count\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Pp Space After]
+Category=10
+Description="<html>Add or remove space after # based on pp level of #if blocks.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pp_space_after\s*=\s*ignore|pp_space_after\s*=\s*add|pp_space_after\s*=\s*remove|pp_space_after\s*=\s*force|pp_space_after\s*=\s*not_defined
+ChoicesReadable="Ignore Pp Space After|Add Pp Space After|Remove Pp Space After|Force Pp Space After"
+ValueDefault=ignore
+
+[Pp Space Count]
+Category=10
+Description="<html>Sets the number of spaces per level added with pp_space_after.</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_space_count\s*=\s*"
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Pp Indent Region]
+Category=10
+Description="<html>The indent for '#region' and '#endregion' in C# and '#pragma region' in<br/>C/C++. Negative values decrease indent down to the first column.</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_region\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Pp Region Indent Code]
+Category=10
+Description="<html>Whether to indent the code between #region and #endregion.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_region_indent_code\s*=\s*true|pp_region_indent_code\s*=\s*false
+ValueDefault=false
+
+[Pp Indent If]
+Category=10
+Description="<html>If pp_indent_at_level=true, sets the indent for #if, #else and #endif when<br/>not at file-level. Negative values decrease indent down to the first column.<br/><br/>=0: Indent preprocessors using output_tab_size<br/>&gt;0: Column at which all preprocessors will be indented</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_if\s*=\s*"
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Pp If Indent Code]
+Category=10
+Description="<html>Whether to indent the code between #if, #else and #endif.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_if_indent_code\s*=\s*true|pp_if_indent_code\s*=\s*false
+ValueDefault=false
+
+[Pp Indent In Guard]
+Category=10
+Description="<html>Whether to indent the body of an #if that encompasses all the code in the file.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_in_guard\s*=\s*true|pp_indent_in_guard\s*=\s*false
+ValueDefault=false
+
+[Pp Define At Level]
+Category=10
+Description="<html>Whether to indent '#define' at the brace level. If false, these are<br/>indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_define_at_level\s*=\s*true|pp_define_at_level\s*=\s*false
+ValueDefault=false
+
+[Pp Include At Level]
+Category=10
+Description="<html>Whether to indent '#include' at the brace level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_include_at_level\s*=\s*true|pp_include_at_level\s*=\s*false
+ValueDefault=false
+
+[Pp Ignore Define Body]
+Category=10
+Description="<html>Whether to ignore the '#define' body while formatting.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_ignore_define_body\s*=\s*true|pp_ignore_define_body\s*=\s*false
+ValueDefault=false
+
+[Pp Multiline Define Body Indent]
+Category=10
+Description="<html>An offset value that controls the indentation of the body of a multiline #define.<br/>'body' refers to all the lines of a multiline #define except the first line.<br/>Requires 'pp_ignore_define_body = false'.<br/><br/> &lt;0: Absolute column: the body indentation starts off at the specified column<br/> (ex. -3 ==&gt; the body is indented starting from column 3)<br/>&gt;=0: Relative to the column of the '#' of '#define'<br/> (ex. 3 ==&gt; the body is indented starting 3 columns at the right of '#')<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_multiline_define_body_indent\s*=\s*"
+MinVal=-32
+MaxVal=32
+ValueDefault=8
+
+[Pp Indent Case]
+Category=10
+Description="<html>Whether to indent case statements between #if, #else, and #endif.<br/>Only applies to the indent of the preprocessor that the case statements<br/>directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_case\s*=\s*true|pp_indent_case\s*=\s*false
+ValueDefault=true
+
+[Pp Indent Func Def]
+Category=10
+Description="<html>Whether to indent whole function definitions between #if, #else, and #endif.<br/>Only applies to the indent of the preprocessor that the function definition<br/>is directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_func_def\s*=\s*true|pp_indent_func_def\s*=\s*false
+ValueDefault=true
+
+[Pp Indent Extern]
+Category=10
+Description="<html>Whether to indent extern C blocks between #if, #else, and #endif.<br/>Only applies to the indent of the preprocessor that the extern block is<br/>directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_extern\s*=\s*true|pp_indent_extern\s*=\s*false
+ValueDefault=true
+
+[Pp Indent Brace]
+Category=10
+Description="<html>How to indent braces directly inside #if, #else, and #endif.<br/>Requires pp_if_indent_code=true and only applies to the indent of the<br/>preprocessor that the braces are directly inside of.<br/> 0: No extra indent<br/> 1: Indent by one level<br/>-1: Preserve original indentation<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_brace\s*=\s*"
+MinVal=-1
+MaxVal=1
+ValueDefault=1
+
+[Pp Warn Unbalanced If]
+Category=10
+Description="<html>Whether to print warning messages for unbalanced #if and #else blocks.<br/>This will print a message in the following cases:<br/>- if an #ifdef block ends on a different indent level than<br/> where it started from. Example:<br/><br/> #ifdef TEST<br/> int i;<br/> {<br/> int j;<br/> #endif<br/><br/>- an #elif/#else block ends on a different indent level than<br/> the corresponding #ifdef block. Example:<br/><br/> #ifdef TEST<br/> int i;<br/> #else<br/> }<br/> int j;<br/> #endif</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_warn_unbalanced_if\s*=\s*true|pp_warn_unbalanced_if\s*=\s*false
+ValueDefault=false
+
+[Include Category 0]
+Category=11
+Description="<html>The regex for include category with priority 0.</html>"
+Enabled=false
+CallName=include_category_0\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Include Category 1]
+Category=11
+Description="<html>The regex for include category with priority 1.</html>"
+Enabled=false
+CallName=include_category_1\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Include Category 2]
+Category=11
+Description="<html>The regex for include category with priority 2.</html>"
+Enabled=false
+CallName=include_category_2\s*=\s*
+EditorType=string
+ValueDefault=
+
+[Use Indent Func Call Param]
+Category=12
+Description="<html>true: indent_func_call_param will be used (default)<br/>false: indent_func_call_param will NOT be used<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_indent_func_call_param\s*=\s*true|use_indent_func_call_param\s*=\s*false
+ValueDefault=true
+
+[Use Indent Continue Only Once]
+Category=12
+Description="<html>The value of the indentation for a continuation line is calculated<br/>differently if the statement is:<br/>- a declaration: your case with QString fileName ...<br/>- an assignment: your case with pSettings = new QSettings( ...<br/><br/>At the second case the indentation value might be used twice:<br/>- at the assignment<br/>- at the function call (if present)<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indent_continue will be used only once<br/>false: indent_continue will be used every time (default)<br/><br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_indent_continue_only_once\s*=\s*true|use_indent_continue_only_once\s*=\s*false
+ValueDefault=false
+
+[Indent Cpp Lambda Only Once]
+Category=12
+Description="<html>The indentation can be:<br/>- after the assignment, at the '[' character<br/>- at the beginning of the lambda body<br/><br/>true: indentation will be at the beginning of the lambda body<br/>false: indentation will be after the assignment (default)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cpp_lambda_only_once\s*=\s*true|indent_cpp_lambda_only_once\s*=\s*false
+ValueDefault=false
+
+[Use Sp After Angle Always]
+Category=12
+Description="<html>Whether sp_after_angle takes precedence over sp_inside_fparen. This was the<br/>historic behavior, but is probably not the desired behavior, so this is off<br/>by default.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_sp_after_angle_always\s*=\s*true|use_sp_after_angle_always\s*=\s*false
+ValueDefault=false
+
+[Use Options Overriding For Qt Macros]
+Category=12
+Description="<html>Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,<br/>this tries to format these so that they match Qt's normalized form (i.e. the<br/>result of QMetaObject::normalizedSignature), which can slightly improve the<br/>performance of the QObject::connect call, rather than how they would<br/>otherwise be formatted.<br/><br/>See options_for_QT.cpp for details.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_options_overriding_for_qt_macros\s*=\s*true|use_options_overriding_for_qt_macros\s*=\s*false
+ValueDefault=true
+
+[Use Form Feed No More As Whitespace Character]
+Category=12
+Description="<html>If true: the form feed character is removed from the list of whitespace<br/>characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_form_feed_no_more_as_whitespace_character\s*=\s*true|use_form_feed_no_more_as_whitespace_character\s*=\s*false
+ValueDefault=false
+
+[Warn Level Tabs Found In Verbatim String Literals]
+Category=13
+Description="<html>(C#) Warning is given if doing tab-to-\t replacement and we have found one<br/>in a C# verbatim string literal.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="warn_level_tabs_found_in_verbatim_string_literals\s*=\s*"
+MinVal=1
+MaxVal=3
+ValueDefault=2
+
+[Debug Max Number Of Loops]
+Category=13
+Description="<html>Limit the number of loops.<br/>Used by uncrustify.cpp to exit from infinite loop.<br/>0: no limit.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_max_number_of_loops\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Line Number To Protocol]
+Category=13
+Description="<html>Set the number of the line to protocol;<br/>Used in the function prot_the_line if the 2. parameter is zero.<br/>0: nothing protocol.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_line_number_to_protocol\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Timeout]
+Category=13
+Description="<html>Set the number of second(s) before terminating formatting the current file,<br/>0: no timeout.<br/>only for linux</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_timeout\s*=\s*"
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Truncate]
+Category=13
+Description="<html>Set the number of characters to be printed if the text is too long,<br/>0: do not truncate.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_truncate\s*=\s*"
+MinVal=0
+MaxVal=960
+ValueDefault=0
+
+[Debug Sort The Tracks]
+Category=13
+Description="<html>sort (or not) the tracking info.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=debug_sort_the_tracks\s*=\s*true|debug_sort_the_tracks\s*=\s*false
+ValueDefault=true
+
+[Debug Decode The Flags]
+Category=13
+Description="<html>decode (or not) the flags as a new line.<br/>only if the -p option is set.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=debug_decode_the_flags\s*=\s*true|debug_decode_the_flags\s*=\s*false
+ValueDefault=false
+
+[Debug Use The Exit Function Pop]
+Category=13
+Description="<html>use (or not) the exit(EX_SOFTWARE) function.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=debug_use_the_exit_function_pop\s*=\s*true|debug_use_the_exit_function_pop\s*=\s*false
+ValueDefault=true
+
+[Set Numbering For Html Output]
+Category=13
+Description="<html>insert the number of the line at the beginning of each line</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=set_numbering_for_html_output\s*=\s*true|set_numbering_for_html_output\s*=\s*false
+ValueDefault=false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/unmatched_close_pp.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/unmatched_close_pp.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/unmatched_close_pp.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/v-out.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/v-out.txt
new file mode 100644
index 00000000..129af768
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/v-out.txt
@@ -0,0 +1 @@
+Uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/xyz-err.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/xyz-err.txt
new file mode 100644
index 00000000..a16550ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/output/xyz-err.txt
@@ -0,0 +1,2 @@
+Specify the config file with '-c file' or set UNCRUSTIFY_CONFIG
+Try running with -h for usage information
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py
new file mode 100755
index 00000000..4416e379
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py
@@ -0,0 +1,940 @@
+#!/usr/bin/python
+
+"""
+test_cli_options.py
+
+Tests output generated by Uncrustifys commandline options
+(excluding actual source code formatting)
+
+:author: DanielChumak
+:license: GPL v2+
+"""
+
+from __future__ import print_function
+
+import sys
+from sys import stderr, argv, exit as sys_exit
+from os import makedirs, remove, name as os_name
+from os.path import dirname, relpath, abspath, isdir, isfile, join as path_join, split as path_split
+from shutil import rmtree, copyfile
+from subprocess import Popen, PIPE
+from io import open
+from datetime import date
+import re
+import difflib
+import argparse
+import pprint
+#import traceback
+
+if os_name == 'nt':
+ EX_OK = 0
+ EX_USAGE = 64
+ EX_SOFTWARE = 70
+ NULL_DEVICE = 'nul'
+else:
+ from os import EX_OK, EX_USAGE, EX_SOFTWARE
+ NULL_DEVICE = '/dev/null'
+
+RE_CALLSTACK = r'\[CallStack:( \w+:\w+(, \w+:\w+)*|-DEBUG NOT SET-)?\]'
+RE_DO_SPACE = (r'\n\ndo_space : WARNING: unrecognized do_space:'
+ r'\n[^\n]+\n[^\n]+\n')
+
+
+def eprint(*args, **kwargs):
+ """
+ print() wrapper that sets file=stderr
+ """
+ print(*args, file=stderr, **kwargs)
+
+
+def decode_out(text):
+ text = text.decode('utf-8')
+ text = text.replace(u'\r\n', u'\n')
+ text = text.replace(u'\r', u'\n')
+ return text
+
+
+def proc(bin_path, args_arr=()):
+ """
+ simple Popen wrapper to return std out/err utf8 strings
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param bin_path: string
+ path to the binary that is going to be called
+
+ :param args_arr : list/tuple
+ all needed arguments
+
+
+ :return: string, string
+ ----------------------------------------------------------------------------
+ generated output of both stdout and stderr
+
+ >>> proc("echo", "test")
+ 'test'
+ """
+ if not isfile(bin_path):
+ eprint("bin 1 is not a file: %s" % bin_path)
+ return False
+
+ # call uncrustify, hold output in memory
+ call_arr = [bin_path]
+ call_arr.extend(args_arr)
+ proc = Popen(call_arr, stdout=PIPE, stderr=PIPE)
+
+ out_txt, err_txt = proc.communicate()
+
+ return decode_out(out_txt), decode_out(err_txt)
+
+
+def write_to_output_path(output_path, result_str):
+ """
+ writes the contents of result_str to the output path
+ """
+ print("Auto appending differences to: " + output_path)
+
+ '''
+ newline = None: this outputs \r\n
+ newline = "\r": this outputs \r
+ newline = "\n": this outputs \n
+ newline = "" : this outputs \n
+ For the sake of consistency, all newlines are now being written out as \n
+ However, if the result_str itself contains \r\n, then \r\n will be output
+ as this code doesn't post process the data being written out
+ '''
+ with open(output_path, 'w', encoding="utf-8", newline="\n") as f:
+ f.write(result_str)
+
+
+def get_file_content(fp):
+ """
+ returns file content as an utf8 string or None if fp is not a file
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param fp: string
+ path of the file that will be read
+
+
+ :return: string or None
+ ----------------------------------------------------------------------------
+ the file content
+
+ """
+ #print("3-1: fp is "+fp)
+ #print("3-1b: gen_result_path is "+gen_result_path)
+ out = None
+
+ if isfile(fp):
+ #print("A: "+abspath(fp))
+ #print("2a is a file: %s" % fp)
+ with open(fp, encoding="utf-8", newline="\n") as f:
+ out = f.read()
+ #else:
+ #print("B: "+abspath(fp))
+ #print("2bx is Not a file: %s" % fp)
+ #for line in traceback.format_stack():
+ # print(line.strip())
+ #print("2bx+ is Not a file: %s" % fp)
+
+ return out
+
+
+def check_generated_output(gen_expected_path, gen_result_path,
+ result_manip=None, program_args=None):
+ """
+ compares the content of two files,
+
+ is intended to compare a file that was generated during a call of Uncrustify
+ with a file that has the expected content
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param gen_expected_path: string
+ path to a file that will be compared with the generated file
+
+ :param gen_result_path: string
+ path to the file that will be generated by Uncrustify
+
+ :param result_manip: lambda OR list or tuple of lambdas
+ optional lambda function(s) that will be applied (before the comparison)
+ on the content of the generated file,
+ the lambda function(s) should accept one string parameter
+
+ :param program_args: tuple of options
+ a collection of multiple options used to add extra functionality to the
+ script (i.e. auto apply changes or show diffs on command line)
+
+ :return: bool
+ ----------------------------------------------------------------------------
+ True or False depending on whether both files have the same content
+
+ >>> check_generated_output("/dev/null", "/dev/null")
+ True
+ """
+
+ #print("2-1: gen_expected_path is "+gen_expected_path)
+ #print("2-2: gen_result_path is "+gen_result_path)
+ gen_exp_txt = get_file_content(gen_expected_path)
+ #print("2-3: gen_exp_txt is ")
+ #+gen_exp_txt)
+ if gen_exp_txt is None:
+ return False
+
+ gen_res_txt = get_file_content(gen_result_path)
+ #print("2-4: gen_res_txt is "+gen_res_txt)
+ if gen_res_txt is None:
+ return False
+
+ #print("2: result_manip is "+result_manip)
+ #if result_manip is not None:
+ # print("2-5: result_manip is "+result_manip)
+ #else:
+ # print("2-6: result_manip is None")
+ if result_manip is not None:
+ if type(result_manip) is list or type(result_manip) is tuple:
+ for m in result_manip:
+ gen_res_txt = m(gen_res_txt)
+ else:
+ gen_res_txt = result_manip(gen_res_txt)
+
+ #print("2-7: gen_res_txt is ")
+ #print(gen_res_txt)
+ #print("2-8: gen_exp_txt is ")
+ #print(gen_exp_txt)
+ if gen_res_txt != gen_exp_txt:
+ with open(gen_result_path, 'w', encoding="utf-8", newline="") as f:
+ f.write(gen_res_txt)
+
+ if program_args.apply and program_args.auto_output_path:
+ write_to_output_path(program_args.auto_output_path, gen_res_txt)
+ return True
+ elif program_args.diff:
+ print("\n************************************")
+ print("Problem (1) with %s" % gen_result_path)
+ print("************************************")
+
+ file_diff = difflib.ndiff(gen_res_txt.splitlines(False),
+ gen_exp_txt.splitlines(False))
+
+ for line in file_diff:
+ pprint.PrettyPrinter(indent=4, width=280).pprint(line)
+
+ return False
+ else:
+ print("\nProblem (2) with %s" % gen_result_path)
+ print("use(gen): '--diff' to find out why %s %s are different"
+ % (gen_result_path, gen_expected_path))
+ return False
+
+ remove(gen_result_path)
+ #print(abspath(gen_result_path))
+
+ return True
+
+
+def check_std_output(expected_path, result_path, result_str, result_manip=None,
+ program_args=None):
+ """
+ compares output generated by Uncrustify (std out/err) with a the content of
+ a file
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param expected_path: string
+ path of the file that will be compared with the output of Uncrustify
+
+ :param result_path: string
+ path to which the Uncrustifys output will be saved in case of a mismatch
+
+ :param result_str: string (utf8)
+ the output string generated by Uncrustify
+
+ :param result_manip: lambda OR list or tuple of lambdas
+ see result_manip for check_generated_output
+
+ :param program_args: tuple of options
+ a collection of multiple options used to add extra functionality to the
+ script (i.e. auto apply changes or show diffs on command line)
+
+ :return: bool
+ ----------------------------------------------------------------------------
+ True or False depending on whether both files have the same content
+
+ """
+ exp_txt = get_file_content(expected_path)
+ if exp_txt is None:
+ return False
+
+ if result_manip is not None:
+ if type(result_manip) is list or type(result_manip) is tuple:
+ for m in result_manip:
+ result_str = m(result_str)
+ else:
+ result_str = result_manip(result_str)
+
+ if result_str != exp_txt:
+ with open(result_path, 'w', encoding="utf-8", newline="\n") as f:
+ f.write(result_str)
+
+ if program_args.apply and program_args.auto_output_path:
+ write_to_output_path(program_args.auto_output_path, result_str)
+ return True
+
+ if program_args.diff:
+ print("\n************************************")
+ print("Problem (3) with result_path is %s" % result_path)
+ print(" expected_path is %s" % expected_path)
+ print("************************************")
+
+ file_diff = difflib.ndiff(result_str.splitlines(False),
+ exp_txt.splitlines(False))
+
+ """
+ change the value of width
+ look at: If compact is false (the default)...
+ """
+ for line in file_diff:
+ pprint.PrettyPrinter(indent=4, width=280).pprint(line)
+ else:
+ print("\nProblem (4) with %s" % result_path)
+ print("use: '--diff' to find out why %s %s are different"
+ % (result_path, expected_path))
+ return False
+ return True
+
+
+def check_uncrustify_output(
+ uncr_bin,
+ program_args,
+ args_arr=(),
+ out_expected_path=None, out_result_manip=None, out_result_path=None,
+ err_expected_path=None, err_result_manip=None, err_result_path=None,
+ gen_expected_path=None, gen_result_manip=None, gen_result_path=None):
+ """
+ compares outputs generated by Uncrustify with files
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param uncr_bin: string
+ path to the Uncrustify binary
+
+ :param program_args: tuple of options
+ a collection of multiple options used to add extra functionality to the
+ script (i.e. auto apply changes or show diffs on command line)
+
+ :param args_arr: list/tuple
+ Uncrustify commandline arguments
+
+ :param out_expected_path: string
+ file that will be compared with Uncrustifys stdout output
+
+ :param out_result_manip: string
+ lambda function that will be applied to Uncrustifys stdout output
+ (before the comparison with out_expected_path),
+ the lambda function should accept one string parameter
+
+ :param out_result_path: string
+ path where Uncrustifys stdout output will be saved to in case of a
+ mismatch
+
+ :param err_expected_path: string
+ path to a file that will be compared with Uncrustifys stderr output
+
+ :param err_result_manip: string
+ see out_result_manip (is applied to Uncrustifys stderr instead)
+
+ :param err_result_path: string
+ see out_result_path (is applied to Uncrustifys stderr instead)
+
+ :param gen_expected_path: string
+ path to a file that will be compared with a file generated by Uncrustify
+
+ :param gen_result_path: string
+ path to a file that will be generated by Uncrustify
+
+ :param gen_result_manip:
+ see out_result_path (is applied, in memory, to the file content of the
+ file generated by Uncrustify instead)
+
+
+ :return: bool
+ ----------------------------------------------------------------------------
+ True if all specified files match up, False otherwise
+ """
+ # check param sanity
+ if not out_expected_path and not err_expected_path and not gen_expected_path:
+ eprint("No expected comparison file provided")
+ return False
+
+ if bool(gen_expected_path) != bool(gen_result_path):
+ eprint("'gen_expected_path' and 'gen_result_path' must be used in "
+ "combination")
+ return False
+
+ if gen_result_manip and not gen_result_path:
+ eprint("Set up 'gen_result_path' if 'gen_result_manip' is used")
+
+ out_res_txt, err_res_txt = proc(uncr_bin, args_arr)
+
+ ret_flag = True
+
+ if program_args.apply:
+ valid_path = [out_expected_path, err_expected_path, gen_expected_path]
+ program_args.auto_output_path = next(item for item in valid_path if item is not None)
+
+ if out_expected_path and not check_std_output(
+ out_expected_path, out_result_path, out_res_txt,
+ result_manip=out_result_manip,
+ program_args=program_args):
+ ret_flag = False
+
+ if program_args.apply:
+ valid_path = [err_expected_path, out_expected_path, gen_expected_path]
+ program_args.auto_output_path = next(item for item in valid_path if item is not None)
+
+ if err_expected_path and not check_std_output(
+ err_expected_path, err_result_path, err_res_txt,
+ result_manip=err_result_manip,
+ program_args=program_args):
+ ret_flag = False
+
+ #print("1: gen_expected_path is "+gen_expected_path)
+ #print("1: gen_result_path is "+gen_result_path)
+ #if gen_result_manip is not None:
+ # print("1: gen_result_manip is "+gen_result_manip)
+ #else:
+ # print("1: gen_result_manip is None")
+ #print("program_args is "+program_args)
+ if gen_expected_path and not check_generated_output(
+ gen_expected_path, gen_result_path,
+ result_manip=gen_result_manip,
+ program_args=program_args):
+ ret_flag = False
+
+ return ret_flag
+
+
+def clear_dir(path):
+ """
+ clears a directory by deleting and creating it again
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param path:
+ path of the directory
+
+
+ :return: void
+ """
+ if isdir(path):
+ rmtree(path)
+ makedirs(path)
+
+
+def reg_replace(pattern, replacement):
+ """
+ returns a generated lambda function that applies a regex string replacement
+
+
+ Parameters:
+ ----------------------------------------------------------------------------
+
+ :param pattern: regex pattern
+ the pattern that will be used to find targets to replace
+
+ :param replacement: string
+ the replacement that will be applied
+
+
+ :return: lambda function
+ ----------------------------------------------------------------------------
+ the generated lambda function, takes in a string on which the
+ replacement will be applied and returned
+
+ >>> l = reg_replace(r"a", "b")
+ >>> a = l("a")
+ 'b'
+ """
+ return lambda text: re.sub(pattern, replacement, text)
+
+
+def string_replace(string_target, replacement):
+ """
+ returns a generated lambda function that applies a string replacement
+
+ like reg_replace, uses string.replace() instead
+ """
+ return lambda text: text.replace(string_target, replacement)
+
+
+def s_path_join(path, *paths):
+ """
+ Wrapper for the os.path.join function, splits every path component to
+ replace it with a system specific path separator. This is for consistent
+ path separators (and also systems that don't use either '\' or '/')
+
+
+ Parameter
+ ----------------------------------------------------------------------------
+ :params path, paths: string
+ see os.path.join
+
+ :return: string
+ ----------------------------------------------------------------------------
+ a joined path, see os.path.join
+
+ >>> s_path_join('./z/d/', '../a/b/c/f')
+ r'.\z\a\b\c\f'
+ """
+ p_splits = list(path_split(path))
+ for r in map(path_split, paths):
+ p_splits.extend(r)
+ return path_join(*p_splits)
+
+
+def main(args):
+ # set working dir to script dir
+ script_dir = dirname(relpath(__file__))
+
+ parser = argparse.ArgumentParser(description='Test CLI Options')
+ parser.add_argument('--diff', action='store_true',
+ help='show diffs when there is a test mismatch')
+ parser.add_argument('--apply', action='store_true',
+ help='auto apply the changes from the results folder to the output folder')
+ parser.add_argument('--build',
+ default=s_path_join(script_dir, '../../build'),
+ help='specify location of the build directory')
+ parser.add_argument('--config',
+ default='Release',
+ help='the build_type value (Release or Debug)')
+ parser.add_argument('--test',
+ default=s_path_join(script_dir, '../../build/tests/cli'),
+ help='specify the location of the test cli build folder')
+
+ parsed_args = parser.parse_args()
+
+ # find the uncrustify binary
+ bin_found = False
+ uncr_bin = ''
+ bd_dir = parsed_args.build
+ test_dir = parsed_args.test
+
+ bin_paths = [s_path_join(bd_dir, 'uncrustify'),
+ s_path_join(bd_dir, 'uncrustify.exe'),
+ s_path_join(bd_dir, 'Debug/uncrustify'),
+ s_path_join(bd_dir, 'Debug/uncrustify.exe'),
+ s_path_join(bd_dir, 'Release/uncrustify'),
+ s_path_join(bd_dir, 'Release/uncrustify.exe'),
+ s_path_join(bd_dir, 'RelWithDebInfo/uncrustify'),
+ s_path_join(bd_dir, 'RelWithDebInfo/uncrustify.exe'),
+ s_path_join(bd_dir, 'MinSizeRel/uncrustify'),
+ s_path_join(bd_dir, 'MinSizeRel/uncrustify.exe')]
+ for uncr_bin in bin_paths:
+ if not isfile(uncr_bin):
+ eprint("is 3 not a file: %s" % uncr_bin)
+ else:
+ print("Uncrustify binary found: %s" % uncr_bin)
+ bin_found = True
+ break
+ if not bin_found:
+ eprint("No Uncrustify binary found")
+ sys_exit(EX_USAGE)
+ print("Summary:")
+ print("Python version is: "+sys.version)
+ print("OS is: %s" % os_name)
+
+ clear_dir(s_path_join(test_dir, 'results'))
+
+ return_flag = True
+
+ print("Test help ...")
+ #
+ # Test help
+ # -h -? --help --usage
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ out_expected_path=s_path_join(script_dir, 'output/help.txt'),
+ out_result_path=s_path_join(test_dir, 'results/help.txt'),
+ out_result_manip=[
+ string_replace(' --mtime : Preserve mtime on replaced files.\n', ''),
+ string_replace('.exe', ''),
+ reg_replace(r'currently \d+ options', 'currently x options')
+ ]):
+ return_flag = False
+ print("Test help is OK")
+
+ print("Test false parameter ...")
+ #
+ # Test false parameter
+ # --xyz
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['--xyz'],
+ err_expected_path=s_path_join(script_dir, 'output/xyz-err.txt'),
+ err_result_path=s_path_join(test_dir, 'results/xyz-err.txt')
+ ):
+ return_flag = False
+ print("Test false parameter is OK")
+
+ print("Test Version ...")
+ #
+ # Test Version
+ # -v
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-v'],
+ out_expected_path=s_path_join(script_dir, 'output/v-out.txt'),
+ out_result_path=s_path_join(test_dir, 'results/v-out.txt'),
+ out_result_manip=reg_replace(r'Uncrustify.+', 'Uncrustify')
+ ):
+ return_flag = False
+ print("Test Version is OK")
+
+ # temporary removed
+ #print("Test --show-config ...")
+ ##
+ ## Test --show-config
+ ##
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['--show-config'],
+ # out_expected_path=s_path_join(script_dir, 'output/show_config.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/show_config.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', '')
+ # ):
+ # return_flag = False
+ #print("Test --show-config is OK")
+
+ print("Test the truncate option ...")
+ #
+ # Test the truncate option
+ #
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/truncate.cfg'),
+ '-f', s_path_join(script_dir, 'input/truncate.cpp'),
+ '-o', NULL_DEVICE,
+ '-L', '83'],
+ err_expected_path=s_path_join(script_dir, 'output/truncate.txt'),
+ err_result_path=s_path_join(test_dir, 'results/truncate.txt'),
+ err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
+ reg_replace(RE_DO_SPACE, '')]
+ ):
+ return_flag = False
+ print("Test the truncate option is OK")
+
+ #print("Test --update-config ...")
+ # temporary removed
+ ##
+ ## Test --update-config
+ ##
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
+ # '--update-config'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_d_uc.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_d_uc.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error0.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
+ # '--update-config'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_nd_uc.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_nd_uc.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error1.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+ #print("Test --update-config is OK")
+
+ #print("Test --update-config-with-doc ...")
+ ##
+ ## Test --update-config-with-doc
+ ##
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
+ # '--update-config-with-doc'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_d_ucwd.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_d_ucwd.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error2.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+ #print("Test --update-config-with-doc is OK")
+
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
+ # '--update-config-with-doc'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_nd_ucwd.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_nd_ucwd.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error3.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+
+ print("Test -p ...")
+ #
+ # Test -p
+ #
+ if os_name != 'nt':
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
+ '-f', s_path_join(script_dir, 'input/testSrcP.cpp'),
+ '-p', s_path_join(test_dir, 'results/p.txt')],
+ gen_expected_path=s_path_join(script_dir, 'output/p.txt'),
+ gen_result_path=s_path_join(test_dir, 'results/p.txt'),
+ gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
+ ):
+ return_flag = False
+
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
+ '-p', s_path_join(test_dir, 'results/class_enum_struct_union.txt')],
+ gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.txt'),
+ gen_result_path=s_path_join(test_dir, 'results/class_enum_struct_union.txt'),
+ gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
+ ):
+ return_flag = False
+
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-f', s_path_join(script_dir, 'input/in_fcn_def.cpp'),
+ '-p', s_path_join(test_dir, 'results/in_fcn_def.txt')],
+ gen_expected_path=s_path_join(script_dir, 'output/in_fcn_def.txt'),
+ gen_result_path=s_path_join(test_dir, 'results/in_fcn_def.txt'),
+ gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
+ ):
+ return_flag = False
+ print("Test -p is OK")
+
+ #print("Test -p and -c with '-' input ...")
+ if os_name == 'nt' or check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', '-',
+ '-f', NULL_DEVICE,
+ '-p', '-'],
+ out_expected_path=s_path_join(script_dir, 'output/pc-.txt'),
+ out_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', ''),
+ out_result_path=s_path_join(test_dir, 'results/pc-.txt')
+ ):
+ pass
+
+ #print("Test -p and -c with '-' input ...")
+ #
+ # Test -p and -c with '-' input
+ #
+ else:
+ return_flag = False
+ #print("Test -p and -c with '-' input is OK")
+
+ print("Test -p and --debug-csv-format option ...")
+ #
+ # Test -p and --debug-csv-format option
+ #
+ if os_name != 'nt' and not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', '-',
+ '-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
+ '-p', s_path_join(test_dir, 'results/class_enum_struct_union.csv'),
+ '--debug-csv-format'],
+ gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.csv'),
+ gen_result_path=s_path_join(test_dir, 'results/class_enum_struct_union.csv'),
+ ):
+ return_flag = False
+ print("Test -p and --debug-csv-format option is OK")
+
+ if parsed_args.config == 'Debug':
+ print("Test --tracking space:FILE ...")
+ print(" config is Debug")
+ #
+ # Test --tracking space:FILE
+ #
+ if os_name != 'nt':
+ # doesn't work under windows
+ temp_result_path = s_path_join(script_dir, 'results/Debug_tracking_space.html')
+ abc = "space:" + temp_result_path # Issue #4066
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/tracking_space.cfg'),
+ '-f', s_path_join(script_dir, 'input/tracking_space.cpp'),
+ '--tracking',
+ abc,
+ #s_path_join(script_dir, 'results/Debug_tracking_space.html')
+ #temp_result_path
+ # '-L'
+ #, 'A'
+ #, '2'
+ #, '>'
+ #, '/home/guy/A-T.txt'
+ ],
+ gen_expected_path=s_path_join(script_dir, 'output/Debug_tracking_space.html'),
+ #gen_result_path=s_path_join(script_dir, 'results/Debug_tracking_space.html')
+ gen_result_path=temp_result_path
+ ):
+ #print("/home/guy/A-T.txt")
+ #else:
+ #print("/home/guy/A-T.txt")
+ return_flag = False
+ print("Test --tracking space:FILE is OK")
+
+ #sys_exit()
+
+ print("Test --replace ...")
+ #
+ # Test --replace
+ #
+ copyfile("input/backup.h-save", "input/backup.h")
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/replace.cfg'),
+ '-F', s_path_join(script_dir, 'input/replace.list'),
+ '--replace', '--no-backup'],
+ gen_expected_path=s_path_join(script_dir, 'output/backup.h'),
+ gen_result_path=s_path_join(script_dir, 'input/backup.h'),
+ err_expected_path=s_path_join(script_dir, 'output/replace.txt'),
+ err_result_path=s_path_join(test_dir, 'results/replace.txt'),
+ ):
+ return_flag = False
+ print("Test --replace is OK")
+
+ print("Test --universalindent ...")
+ # The flag CMAKE_BUILD_TYPE must be set to "Release", or all lines with
+ # 'Description="<html>(<number>)text abc.</html>" must be changed to
+ # 'Description="<html>text abc.</html>"
+ #
+ # OR it is possible to introduce a new parameter: gen_expected_manip
+ #
+ # The last "reg_replace(r'\r', '')" is necessary under Windows, because
+ # fprintf puts a \r\n at the end of a line. To make the check, we use
+ # output/universalindent.cfg, generated under Linux, with only \n at the
+ # end of a line.
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-o', s_path_join(test_dir, 'results/universalindent.cfg'),
+ '--universalindent'],
+ gen_expected_path=s_path_join(script_dir, 'output/universalindent.cfg'),
+ gen_result_path=s_path_join(test_dir, 'results/universalindent.cfg'),
+ gen_result_manip=[reg_replace(r'version=U.+', ''),
+ reg_replace(r'\(\d+\)', ''),
+ reg_replace(r'\r', '')]
+ ):
+ return_flag = False
+ print("Test --universalindent is OK")
+
+ print("Test -L ...")
+ # Debug Options:
+ # -L
+ # look at src/log_levels.h
+ Ls_A = ['9', '21', '25', '28', '31', '36', '66', '92']
+ for L in Ls_A:
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', NULL_DEVICE, '-L', L, '-o', NULL_DEVICE,
+ '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
+ err_expected_path=s_path_join(script_dir, 'output/%s.txt' % L),
+ err_result_path=s_path_join(test_dir, 'results/%s.txt' % L),
+ err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
+ reg_replace(r'\:[0-9]+\)', ' '),
+ reg_replace(r'\[line [0-9]+', '[ '),
+ reg_replace(r' \[[_|,|1|A-Z]*\]', ' []'),
+ reg_replace(r', \[[_|,|1|A-Z]*\]', ', []'),
+ reg_replace(r', \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ', []'),
+ reg_replace(r' \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ' []'),
+ reg_replace(r'^[ \t]*[_A-Za-z][_A-Za-z0-9]*::', ''),
+ reg_replace(RE_CALLSTACK, '[CallStack]'),
+ reg_replace(RE_DO_SPACE, ''),
+ reg_replace(r'Chunk::', '')]
+ ):
+ return_flag = False
+ print("Test -L is OK")
+
+ ### Test logger buffer overflow
+ ##if not check_uncrustify_output(
+ ## uncr_bin,
+ ## parsed_args,
+ ## args_arr=['-c', NULL_DEVICE, '-L', '99', '-o', NULL_DEVICE,
+ ## '-f', s_path_join(script_dir, 'input/logger.cs')],
+ ## err_expected_path=s_path_join(script_dir, 'output/logger_cs_L_99.txt'),
+ ## err_result_path=s_path_join(test_dir, 'results/logger_cs_L_99.txt'),
+ ## err_result_manip=reg_replace(r'[0-9]', '')
+ ## ):
+ ## return_flag = False
+
+ # misc error_tests
+ error_tests = ["I-842", "unmatched_close_pp"]
+ for test in error_tests:
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/%s.cfg' % test),
+ '-f', s_path_join(script_dir, 'input/%s.cpp' % test),
+ '-o', NULL_DEVICE, '-q'],
+ err_expected_path=s_path_join(script_dir, 'output/%s.txt' % test),
+ err_result_path=s_path_join(test_dir, 'results/%s.txt' % test)
+ ):
+ return_flag = False
+
+ print("Test $(year) keyword ...")
+ # Test $(year) keyword (issue #3251)
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/copyright-header.cfg'),
+ '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
+ out_expected_path=s_path_join(script_dir, 'output/copyright-header.cpp'),
+ out_result_path=s_path_join(test_dir, 'results/copyright-header.cpp'),
+ out_result_manip=string_replace(str(date.today().year), 'this year'),
+ ):
+ return_flag = False
+ print("Test $(year) keyword is OK")
+
+ if return_flag:
+ print("all tests are OK")
+ sys_exit(EX_OK)
+ else:
+ print("some problem(s) are still present")
+ sys_exit(EX_SOFTWARE)
+
+
+if __name__ == "__main__":
+ main(argv[1:])