#!/bin/sh ######################################################################### # # FILE : parsesrc # DATE : 14.10.2002 # AUTHOR : Patrick Meier / patrick.meier@gmx.net # DESCRIPTION : search methods or javadoc description in source (Java, C++, C). It can also filter javadoc description from src. # # Copyrigth (C) 2002 by Patrick Meier, Switzerland # ######################################################################### PN=`basename "$0"` GREP="/bin/grep" #deleteBeginningSpaces = "sed 's/^[ ]*//g'" ######################################################################### # Usage ######################################################################### Usage() { echo "$PN - parse source code" echo "usage: $PN [--hpp|--cpp|--doc|--static|--staticWithoutVersion|--filterDoc|--filterDocWithoutHeader] filename" exit 1 } ######################################################################### # search ######################################################################### search() { $GREP "$@" } ######################################################################### # searchFullLine ######################################################################### searchFullLine() { search -E "^([ \t]*)(/\*\*.**\/$)" $@ } ######################################################################### # searchCPPMethods ######################################################################### searchCPPMethods() { search -E "^[ a-zA-Z_0-9]*::|([a-zA-Z_0-9]+^)" $@ } ######################################################################### # searchHPPMethods ######################################################################### searchHPPMethods() { search -E "^[ a-zA-Z_0-9]+[ a-zA-Z_0-9]*\(.*\).*;$" $@ } ######################################################################### # searchJavaMethods ######################################################################### searchJavaMethods() { search -E "(^[ a-zA-Z_0-9]+[ a-zA-Z_0-9]*\(.*\).*)" $@ | grep -v -E "(;.*$)|((if)|(catch)|(switch).*)" } ######################################################################### # searchJavadoc ######################################################################### searchJavadoc() { search -E "^[ \t]*((.*\*$)|(/\*\*[ \t\n\r]*$)|([\* ]*\*/[ \t\n\r]*$)|( \* ))" $@ } ######################################################################### # searchStatics ######################################################################### searchStatics() { search -n -E "static" $@ | grep -v " \*.*" } ######################################################################### # searchStaticsWithoutVersion ######################################################################### searchStaticsWithoutVersion() { searchStatics $@ | grep -v "VERSION" } ######################################################################### # filterJavadoc ######################################################################### filterJavadoc() { search -E "^[ \t]*((.*\*$)|(/\*\*[ \t\n\r]*$)|([\* ]*\*/[ \t\n\r]*$)|( \* ))" $@ } ######################################################################### # filterJavadoc ######################################################################### filterJavadocWithoutHeader() { search -E "^[ \t]+((.*\*$)|(/\*\*[ \t\n\r]*$)|([ \t]+\*/[ \t\n\r]*$)|( \* ))" $@ } ######################################################################### # main ######################################################################### ! [ -x "$GREP" ] && Fatal "grep not found" while [ $# -gt 0 ] do case "$1" in --static) shift;searchStatics $@;exit;; --staticWithoutVersion) shift;searchStaticsWithoutVersion $@;exit;; --java) shift;searchJavaMethods $@;exit;; --cpp) shift;searchCPPMethods $@;exit;; --hpp) shift;searchHPPMethods $@;exit;; --doc) shift;searchJavadoc $@;exit;; --filterDoc) shift;filterJavadoc $@;exit;; --filterDocWithoutHeader) shift;filterJavadocWithoutHeader $@;exit;; --) shift; break;; -h) Usage;; -*) Usage;; *) break;; # first file name esac shift done Usage