-#!/bin/sh
-# the next line restarts using tclsh \
-exec tclsh "$0" "$@"
+#!/usr/bin/tclsh
#
# yaz-comp: ASN.1 Compiler for YAZ
-# (c) Index Data 1996-2003
+# (c) Index Data 1996-2007
# See the file LICENSE for details.
#
-# $Id: yaz-asncomp,v 1.1 2003-05-27 21:12:23 adam Exp $
-#
-set yc_version 0.3
+set yc_version 0.4
# Syntax for the ASN.1 supported:
# file -> file module
lappend l "\tif (!odr_sequence_begin (o, p, sizeof(**p), 0))"
lappend l "\t\{"
- lappend l "\t\t*p = 0;"
+ lappend l "\t\tif(o->direction == ODR_DECODE)"
+ lappend l "\t\t\t*p = 0;"
lappend l "\t\treturn 0;"
lappend l "\t\}"
}
}
lappend j "\}"
lappend l "\t\treturn 1;"
- lappend l "\t*p = 0;"
+ lappend l "\tif(o->direction == ODR_DECODE)"
+ lappend l "\t\t*p = 0;"
lappend l "\treturn odr_missing(o, opt, name);"
return [list [join $l \n] [join $j \n]]
}
lappend l "\todr_implicit_settag(o, $tagtype, $tag);"
lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name))"
} else {
- lappend l "\tif (!*p && o->direction != ODR_DECODE)"
- lappend l "\t\treturn opt;"
lappend l "\tif (!odr_constructed_begin(o, p, $tagtype, $tag, 0))"
lappend l "\t\treturn odr_missing(o, opt, name);"
lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))"
lappend l "\t\todr_constructed_end(o))"
}
lappend l "\t\treturn 1;"
- lappend l "\t*p = 0;"
+
+ lappend l "\tif(o->direction == ODR_DECODE)"
+ lappend l "\t\t*p = 0;"
+
lappend l "\treturn odr_missing(o, opt, name);"
return [list [join $l \n] [join $j \n]]
}
set file(outp) [open $inf(h-path)/$inf(h-dir)$inf(p-file) w]
}
- set greeting {Generated automatically by the YAZ ASN.1 Compiler}
+ set greeting {Generated automatically by YAZ ASN.1 Compiler}
- puts $file(outc) "/* ${greeting} ${yc_version} */"
- puts $file(outc) "/* Module-C: $inf(module) */"
+ puts $file(outc) "/** \\file $inf(c-file)"
+ puts $file(outc) " \\brief ASN.1 Module $inf(module)"
+ puts $file(outc) ""
+ puts $file(outc) " ${greeting} ${yc_version}"
+ puts $file(outc) "*/"
puts $file(outc) {}
- puts $file(outh) "/* ${greeting} ${yc_version} */"
- puts $file(outh) "/* Module-H $inf(module) */"
+ puts $file(outh) "/** \\file $inf(h-file)"
+ puts $file(outh) " \\brief ASN.1 Module $inf(module)"
+ puts $file(outh) ""
+ puts $file(outh) " ${greeting} ${yc_version}"
+ puts $file(outh) "*/"
puts $file(outh) {}
if {[info exists file(outp)]} {
- puts $file(outp) "/* ${greeting} ${yc_version} */"
- puts $file(outp) "/* Module-P: $inf(module) */"
- puts $file(outp) {}
+ puts $file(outp) "/** \\file $inf(p-file)"
+ puts $file(outp) " \\brief ASN.1 Module $inf(module)"
+ puts $file(outp) ""
+ puts $file(outp) " ${greeting} ${yc_version}"
+ puts $file(outp) "*/"
+ puts $file(outp) {}
}
if {[info exists inf(p-file)]} {
}
proc asnBasicINTEGER {} {
- return {odr_integer {int}}
+ return {odr_integer {Odr_int}}
}
proc asnBasicENUMERATED {} {
- return {odr_enum {int}}
+ return {odr_enum {Odr_int}}
}
proc asnBasicNULL {} {
}
proc asnBasicBOOLEAN {} {
- return {odr_bool {bool_t}}
+ return {odr_bool {Odr_bool}}
}
proc asnBasicOCTET {} {
puts "YAZ ASN.1 Compiler ${yc_version}"
puts "Usage:"
puts -nonewline ${argv0}
- puts { [-v] [-c cfile] [-h hfile] [-p hfile] [-d dfile] [-I iout] [-i idir]}
- puts { [-m module] file}
+ puts { [-v] [-c cfile] [-h hfile] [-p hfile] [-d dfile] [-I iout]}
+ puts { [-i idir] [-m module] file}
exit 1
}