[PPL-devel] [GIT] ppl/ppl(master): Explicitly state the array size. New option --decl-only.

Roberto Bagnara bagnara at cs.unipr.it
Tue Feb 21 08:45:04 CET 2012


Module: ppl/ppl
Branch: master
Commit: 1b3c2d0ceffdcf1779f57988c8490f4b238cfabe
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=1b3c2d0ceffdcf1779f57988c8490f4b238cfabe

Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date:   Tue Feb 21 08:42:44 2012 +0100

Explicitly state the array size.  New option --decl-only.

---

 utils/text2cxxarray.in |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/utils/text2cxxarray.in b/utils/text2cxxarray.in
index 1a26225..b79b7b5 100644
--- a/utils/text2cxxarray.in
+++ b/utils/text2cxxarray.in
@@ -38,25 +38,40 @@ Usage: text2cxxarray [OPTIONS] [FILE ...]
 
   [OPTIONS]
     --name=NAME               Use NAME as the array name.
+    --definition              Emit a defining declaration.
     -h, --help                Display this help message.
 EOF
         exit 1;
 }
 
 my $array_name = "a";
+my $decl_only = 0;
 
 GetOptions(
-	'name=s' => \$array_name,
-	'help|h' => \&usage,
+	'name=s'    => \$array_name,
+	'decl-only' => \$decl_only,
+	'help|h'    => \&usage,
 ) || usage();
 
-print "extern const char* const $array_name" . "[] = {\n";
-while (<>) {
-    chop;
-    s/\\/\\\\/g;
-    s/\t/\\t/g;
-    s/\"/\\"/g;
-    print "  \"$_\",\n";
+ at lines = <>;
+
+my $size = 1;
+foreach (@lines) {
+    $size = $size+1;
+}
+
+print "extern const char* const $array_name" . "[$size]";
+
+if (! $decl_only) {
+    print " = {\n";
+    foreach (@lines) {
+        chop;
+        s/\\/\\\\/g;
+        s/\t/\\t/g;
+        s/\"/\\"/g;
+        print "  \"$_\",\n";
+    }
+    print "  0";
+    print "}";
 }
-print "  0";
-print "};\n";
+print ";\n";




More information about the PPL-devel mailing list