You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
microwatt/scripts/vhdltags

35 lines
994 B
Bash

#!/bin/sh
# Etags is case sensitive so parsing VHDL is a little ugly.
FILES=""
OUTPUTFILE=TAGS
while [ "$1"x != "x" ] ; do
case $1 in
-o)
shift
OUTPUTFILE=$1
;;
*)
FILES="$FILES $1"
;;
esac
shift
done
etags --language=none \
--regex='/[ \t]*\([Aa][Rr][Cc][Hh][Ii][Tt][Ee][Cc][Tt][Uu][Rr][Ee]\)[ \t]+\([^ \t]*\)[ \t]+\(OF\|of\)[ \t]+\([^ \t]*\)/\4-\2/' \
--regex='/[ \t]*\([Cc][Oo][Nn][Ff][Ii][Gg][Uu][Rr][Aa][Tt][Ii][Oo][Nn]\)[ \t]+\([^ \t]*\)[ \t]+\(OF\|of\)[ \t]+\([^ \t]*\)/\2/' \
--regex='/[ \t]*\('\
'[Aa][Tt][Tt][Rr][Ii][Bb][Uu][Tt][Ee]\|'\
'[Ee][Nn][Tt][Ii][Tt][Yy]\|'\
'[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]\|'\
'[Pp][Aa][Cc][Kk][Aa][Gg][Ee]\([ \t]+[Bb][Oo][Dd][Yy]\)?\|'\
'[Pp][Rr][Oo][Cc][Ee][Dd][Uu][Rr][Ee]\|'\
'[Pp][Rr][Oo][Cc][Ee][Ss][Ss]\|'\
'[Tt][Yy][Pp][Ee]\|'\
'[Ss][Uu][Bb][Tt][Yy][Pp][Ee]'\
'\)[ \t]+\([^ \t(]+\)/\3/' \
--regex='/[ \t]*\([Cc][Oo][Nn][Ss][Tt][Aa][Nn][Tt]\)[ \t]+\([^ \t]+\)/\2/' \
-o "$OUTPUTFILE" $FILES