diff options
author | michaelld | 2007-02-05 20:29:40 +0000 |
---|---|---|
committer | michaelld | 2007-02-05 20:29:40 +0000 |
commit | 9de985caa57cb46a569cacff59a43cbe455a8bc5 (patch) | |
tree | 61c87e14ea2a27796074fb0b5110fb4d8d714020 /gr-trellis/src/lib/generate_trellis.py | |
parent | dcc3193644f81fb5547bcf1d2273a84eb6a66002 (diff) | |
download | gnuradio-9de985caa57cb46a569cacff59a43cbe455a8bc5.tar.gz gnuradio-9de985caa57cb46a569cacff59a43cbe455a8bc5.tar.bz2 gnuradio-9de985caa57cb46a569cacff59a43cbe455a8bc5.zip |
Fix for ticket:29 . Newly generated .cc,.h,.i files are also checked
in, with the "warning" message at the top.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4385 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gr-trellis/src/lib/generate_trellis.py')
-rw-r--r-- | gr-trellis/src/lib/generate_trellis.py | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/gr-trellis/src/lib/generate_trellis.py b/gr-trellis/src/lib/generate_trellis.py new file mode 100644 index 000000000..e23ec4ad7 --- /dev/null +++ b/gr-trellis/src/lib/generate_trellis.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python +# +# Copyright 2006,2007 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from build_utils import expand_template, copyright, open_and_log_name +from build_utils_codes import * +import re + +# regular blocks + +other_roots = [ + 'trellis_encoder_XX', + 'trellis_metrics_X', + 'trellis_viterbi_X', + 'trellis_viterbi_combined_X', + ] + +other_signatures = ( + ['bb','bs','bi','ss','si','ii'], + ['s','i','f','c'], + ['b','s','i'], + ['b','s','i'], + ) + + +def is_byte (code3): + if i_code (code3) == 'b' or o_code (code3) == 'b': + return '1' + else: + return '0' + + +def is_short (code3): + if i_code (code3) == 's' or o_code (code3) == 's': + return '1' + else: + return '0' + + +def is_int (code3): + if i_code (code3) == 'i' or o_code (code3) == 'i': + return '1' + else: + return '0' + + +def is_float (code3): + if i_code (code3) == 'f' or o_code (code3) == 'f': + return '1' + else: + return '0' + + +def is_complex (code3): + if i_code (code3) == 'c' or o_code (code3) == 'c': + return '1' + else: + return '0' + + +def standard_dict (name, code3): + d = {} + d['NAME'] = name + d['GUARD_NAME'] = 'INCLUDED_%s_H' % name.upper () + d['BASE_NAME'] = re.sub ('^trellis_', '', name) + d['SPTR_NAME'] = '%s_sptr' % name + d['WARNING'] = 'WARNING: this file is machine generated. Edits will be over written' + d['COPYRIGHT'] = copyright + d['TYPE'] = i_type (code3) + d['I_TYPE'] = i_type (code3) + d['O_TYPE'] = o_type (code3) + d['TAP_TYPE'] = tap_type (code3) + d['IS_BYTE'] = is_byte (code3) + d['IS_SHORT'] = is_short (code3) + d['IS_INT'] = is_int (code3) + d['IS_FLOAT'] = is_float (code3) + d['IS_COMPLEX'] = is_complex (code3) + return d + + +def expand_h_cc_i (root, sig): + # root looks like 'gr_vector_sink_X' + name = re.sub ('X+', sig, root) + d = standard_dict (name, sig) + expand_template (d, root + '.h.t') + expand_template (d, root + '.cc.t') + expand_template (d, root + '.i.t') + + +def generate (): + i=0 + for r in other_roots : + for s in other_signatures[i]: + expand_h_cc_i (r, s) + i=i+1 + + +if __name__ == '__main__': + generate () |