Browse Source

Add support for constrexpr to number parsing

Reisz 3 years ago
parent
commit
73380a36c4

+ 1 - 1
metrixpp/ext/std/code/magic.py

@@ -45,7 +45,7 @@ class Plugin(api.Plugin,
             r'''((const(\s+[_$a-zA-Z][_$a-zA-Z0-9]*)+\s*[=]\s*)[-+]?[0-9]+\b)'''
             r'''|(\b[0-9]+\b)''')
         pattern_to_search_cpp = re.compile(
-            r'''((const(\s+[_a-zA-Z][_a-zA-Z0-9]*)+\s*[=]\s*)[-+]?''' +
+            r'''((const(expr)?(\s+[_a-zA-Z][_a-zA-Z0-9]*)+\s*[=]\s*)[-+]?''' +
             cpp_number_pattern + r'''\b)'''
             r'''|(virtual\s+.*\s*[=]\s*[0]\s*[,;])'''
             r'''|(override\s+[=]\s*[0]\s*[,;])'''

+ 2 - 2
metrixpp/tests/general/test_basic/sources/simple.cpp

@@ -77,12 +77,12 @@ class A
     int one_separator = 123'456;
     int two_separators = 123'456'789;
 
-    const int const_hex_number = 0xaBc78;
+    constexpr int const_hex_number = 0xaBc78;
     const unsigned int const_binary_number = 0b00110u;
     const unsigned long long int const_octal_number = 074uLL;
     const unsigned long long int const_different_order = 123llU;
     const long int const_just_l = 42l;
-    const int one_separator = 123'456;
+    constexpr int one_separator = 123'456;
     const int two_separators = 123'456'789;
 };
 

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_code_magic_view_nest_per_file_stdout.gold.txt

@@ -1,21 +1,21 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
 
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
         	std.code.magic:numbers: 8

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_code_magic_view_nozeros_nest_per_file_stdout.gold.txt

@@ -1,21 +1,21 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
 
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
         	std.code.magic:numbers: 8

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_complexity_maxindent_view_nest_per_file_stdout.gold.txt

@@ -1,21 +1,21 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
 
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
 

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_filelines_metrics_view_nest_per_file_stdout.gold.txt

@@ -1,21 +1,21 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
 
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
 

+ 9 - 9
metrixpp/tests/general/test_basic/test_std_general_metrics_view_nest_per_file_stdout.gold.txt

@@ -1,21 +1,21 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
 
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
 
@@ -77,7 +77,7 @@
 
 ./simple.cpp:0: info: Metrics per file
 	std.general:proctime: 0.01
-	std.general:size: 1410
+	std.general:size: 1418
 
 ./simple.cpp:: info: Overall metrics for 'std.general:procerrors' metric
 	Average        : None
@@ -97,12 +97,12 @@
 	        0.0100 : 1.000 : 1.000 : 1	||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 
 ./simple.cpp:: info: Overall metrics for 'std.general:size' metric
-	Average        : 1410.0
-	Minimum        : 1410
-	Maximum        : 1410
-	Total          : 1410.0
+	Average        : 1418.0
+	Minimum        : 1418
+	Maximum        : 1418
+	Total          : 1418.0
 	Distribution   : 1 files in total (including 0 suppressed)
 	  Metric value : Ratio : R-sum : Number of files
-	          1410 : 1.000 : 1.000 : 1	||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+	          1418 : 1.000 : 1.000 : 1	||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 
 

+ 4 - 4
metrixpp/tests/general/test_basic/test_std_general_metrics_view_txt_stdout.gold.txt

@@ -16,14 +16,14 @@
 	        0.0100 : 1.000 : 1.000 : 2	||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 
 ./:: info: Overall metrics for 'std.general:size' metric
-	Average        : 844.5
+	Average        : 848.5
 	Minimum        : 279
-	Maximum        : 1410
-	Total          : 1689.0
+	Maximum        : 1418
+	Total          : 1697.0
 	Distribution   : 2 files in total (including 0 suppressed)
 	  Metric value : Ratio : R-sum : Number of files
 	           279 : 0.500 : 0.500 : 1	||||||||||||||||||||||||||||||||||||||||||||||||||
-	          1410 : 0.500 : 1.000 : 1	||||||||||||||||||||||||||||||||||||||||||||||||||
+	          1418 : 0.500 : 1.000 : 1	||||||||||||||||||||||||||||||||||||||||||||||||||
 
 ./:: info: Directory content:
 	File           : file_deleted_in_new_sources.cpp

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_lines_metrics_view_nest_per_file_stdout.gold.txt

@@ -1,7 +1,7 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 	std.code.lines:code: 0
@@ -12,7 +12,7 @@
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
     	std.code.lines:code: 4
@@ -23,7 +23,7 @@
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
         	std.code.lines:code: 20

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_longlines_metrics_view_nest_per_file_stdout.gold.txt

@@ -1,21 +1,21 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
 
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
         	std.code.longlines:numbers: 4

+ 3 - 3
metrixpp/tests/general/test_basic/test_std_member_metrics_view_nest_per_file_stdout.gold.txt

@@ -1,7 +1,7 @@
 ./simple.cpp:0: info: Metrics per '__global__' region
 	Region name    : __global__
 	Region type    : global
-	Offsets        : 0-1410
+	Offsets        : 0-1418
 	Line numbers   : 1-90
 	Modified       : None
 	std.code.member:namespaces: 1
@@ -9,7 +9,7 @@
 .   ./simple.cpp:4: info: Metrics per 'hmm' region
     	Region name    : hmm
     	Region type    : namespace
-    	Offsets        : 2-1409
+    	Offsets        : 2-1417
     	Line numbers   : 3-89
     	Modified       : None
     	std.code.member:classes: 1
@@ -18,7 +18,7 @@
 .   .   ./simple.cpp:9: info: Metrics per 'A' region
         	Region name    : A
         	Region type    : class
-        	Offsets        : 94-1405
+        	Offsets        : 94-1413
         	Line numbers   : 9-87
         	Modified       : None
         	std.code.member:methods: 4

+ 1 - 1
metrixpp/tests/general/test_basic/test_workflow_info_default_stdout.gold.txt

@@ -27,5 +27,5 @@ test_workflow.db:: info: Collected metrics:
 
 ./:: info: Processed files and checksums:
 	./file_deleted_in_new_sources.cpp: 0xfd51c243
-	./simple.cpp   : 0xecc4bf6c
+	./simple.cpp   : 0xe4c3a5ef