Mercurial > repos > marcel > caddsuite_linux_x86_64
annotate CADDSuite/data/OpenBabel/bin2hex.pl @ 0:bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
author | marcel |
---|---|
date | Tue, 07 Jun 2011 16:43:30 -0400 |
parents | |
children |
rev | line source |
---|---|
0
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
1 #!/usr/bin/env perl |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
2 # bin2hex.pl |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
3 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
4 ######################################################################## |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
5 # Copyright (C) 2001 by OpenEye Scientific Software, Inc. |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
6 # Some portions Copyright (c) 2002 by Geoffrey R. Hutchison |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
7 # |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
8 # This file is part of the Open Babel project. |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
9 # For more information, see <http://openbabel.org/> |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
10 # |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
11 # This program is free software; you can redistribute it and/or modify |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
12 # it under the terms of the GNU General Public License as published by |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
13 # the Free Software Foundation version 2 of the License. |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
14 # |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
15 # This program is distributed in the hope that it will be useful, |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
18 # GNU General Public License for more details. |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
19 ######################################################################## |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
20 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
21 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
22 # Autoflush STDOUT |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
23 #STDOUT->autoflush(1); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
24 $| = 1; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
25 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
26 $argc = @ARGV; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
27 if( $argc == 2 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
28 $filename = @ARGV[0]; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
29 $arrayname = @ARGV[1]; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
30 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
31 $pos = index($filename,"."); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
32 if( $pos > 0 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
33 $guard = uc(substr($filename,0,$pos)); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
34 } else { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
35 $guard = uc($filename); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
36 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
37 } elsif( $argc == 3 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
38 $filename = @ARGV[0]; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
39 $arrayname = @ARGV[1]; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
40 $guard = @ARGV[2]; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
41 } else { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
42 print "usage: bin2hex.pl <binaryfile> <arrayname>\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
43 exit; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
44 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
45 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
46 $debug = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
47 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
48 open(F,$filename) || die "Error: Unable to open binary file!\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
49 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
50 if( !$debug ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
51 print "/***************************************************************\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
52 print "This file is part of the Open Babel project.\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
53 print "This is copyright under the GNU General Public License (GPL)\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
54 print "For more information, see <http://openbabel.org/>\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
55 print "This file contains a binary representation of data tables\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
56 print " used by Open Babel. It is used as a fallback if the textual\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
57 print " data table is not found at runtime. It is not a normal header.\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
58 print "***************************************************************/\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
59 print "\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
60 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
61 print "#ifndef OB_" . $guard . "_H\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
62 print "#define OB_" . $guard . "_H\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
63 print "namespace OpenBabel\n{\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
64 print "static const char " . $arrayname . "[] = {\n "; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
65 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
66 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
67 binmode(F); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
68 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
69 $col = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
70 $init = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
71 $ignore = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
72 $newline = 1; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
73 $spacerun = 0; # collapse runs of spaces |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
74 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
75 while( !eof(F) ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
76 $ch = ord(getc(F)); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
77 if( $ch == 13 ) { # ignore \r characters |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
78 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
79 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
80 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
81 if ( $spacerun ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
82 if ( $ch == 32 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
83 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
84 } else { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
85 $spacerun = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
86 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
87 } elsif ( $ch == 32) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
88 $spacerun = 1; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
89 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
90 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
91 if( $ignore ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
92 if( $ch == 10 ) { # found the \n after an '#' ignore comment |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
93 $ignore = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
94 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
95 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
96 } elsif( $newline ) { # just saw a \n -- do we see real text |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
97 if( $ch == 10 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
98 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
99 } elsif ( $ch == 35 ) { # ignore anything after a '#' until a \n |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
100 $ignore = 1; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
101 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
102 } elsif( $ch == 32 ) { # space |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
103 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
104 } elsif( $ch == 9 ) { # tab |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
105 $ch = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
106 } elsif( $ch ) { # something else, so clear the blank-line boolean |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
107 $newline = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
108 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
109 } elsif( $ch == 10 ) { # set the blank-line detector |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
110 $newline = 1; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
111 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
112 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
113 if( $ch ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
114 if( $debug ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
115 print chr($ch); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
116 } else { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
117 if( $init ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
118 print ","; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
119 } else { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
120 $init = 1; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
121 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
122 if( $col >= 15 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
123 print "\n "; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
124 $col = 0; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
125 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
126 print sprintf("0x%02X",$ch); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
127 $col++; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
128 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
129 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
130 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
131 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
132 if( !$debug ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
133 if( $col >= 15 ) { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
134 print ",\n0x00};\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
135 } else { |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
136 print ",0x00};\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
137 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
138 print "} // namespace OpenBabel\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
139 print "#endif // OB_" . $guard . "_H\n\n"; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
140 } |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
141 |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
142 close(F); |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
143 exit; |
bac3c274238f
Migrated tool version 0.93 from old tool shed archive to new tool shed repository
marcel
parents:
diff
changeset
|
144 |