12-27-2010
Well, I use cscope, which is free. You need a state engine to parse C states, but you are only interested in locating calls and subroutines. You have to handle every C meta-character and expression correctly, so you know when you are in comments and quotations. Just assign the states numbers in an int or enum as you discover them. Beware advanced things like "XXX"\n"YYY" ( = "XXXYYY"), and \ at end of line! When you find a variable name, you need to decide if it is a call or a subroutine declaration or a non-subroutine declaration like int i. You have to worry about type names in typedefs and #defines, possibly in includes, so you must preprocess with cpp or cc -E and process the structured comments in that output that show where include file lines are. So easy, almost like writing a compiler!
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
Is there a way to determine if a Script is called from a
CRON job or from a commandline
Gerry. (2 Replies)
Discussion started by: jerryMcguire
2 Replies
2. Shell Programming and Scripting
last week i started learning perl, so have limited skill and knowledge.
why isn't 'die' being called and the script exiting before the 'directory created' line?
if (! -d "$logdir") {
system "mkdir -p $logdir" || die print "\nERROR: release log directory creation failed - $logdir: $!\n";... (4 Replies)
Discussion started by: mjays
4 Replies
3. Shell Programming and Scripting
Hi,
First I will tell my objective of this function (function one).
I have a table for ex:
id passwd name
-- ------ -----
1 fdhgfs werwer
2 fsdfs sdfsdf
3 sdfs sdfsdf
4 fdsfs dssdf
. . .
.
.
.
The id, passwd and name are the arguments for another function say two. (1 Reply)
Discussion started by: mercuryshipzz
1 Replies
4. UNIX for Dummies Questions & Answers
I want to write a shell script which traverses a cpp file.
Suppose there is function fncn_name6 .. which is called by fncn_name5
which in turn called by fncn_name4 and so on .. in a single cpp class.
ie
fncn_name1
{
fncn_name2
{
fncn_name3
}
{
fncn_name4
}
}
so fncn_name1 is... (2 Replies)
Discussion started by: ultimatix
2 Replies
5. UNIX for Dummies Questions & Answers
i have taken a screen shot of the question. http://www.magicscreenshot.com/MagicScreenshot/REAdbT956kE.png
Please some one help me.:) (1 Reply)
Discussion started by: kjamsheed
1 Replies
6. Programming
how?
there is html-page with:
<iframe>
<!--#exec cgi="perl-script"-->
</iframe>
so in that perl-script need to delegate the name of html-page
why? too lazy for ajax (3 Replies)
Discussion started by: tip78
3 Replies
7. Shell Programming and Scripting
I am using blow script :--
#!/bin/bash
FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not
if
then
# echo "process found"
exit 0;
else
echo "process not found"
exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies
8. Programming
I would like to use Perl in 'interactive' mode (kind off), starting it by
> perl -d -e 0;
But I need to have some function be read on loading.
Also, it should not be for anyone who starting Perl or use it any how.
I did try to search, but not much result.
I have try a file '.perldb':... (1 Reply)
Discussion started by: alex_5161
1 Replies
9. Shell Programming and Scripting
In the below script i found that the alias mkdir_s is getting invoked from function configure() i.e the alias is kicking in.
#!/bin/bash -e
shopt -s expand_aliases
alias mkdir=mkdir_s
mkdir_s(){
if ]; then
return
else
/usr/bin/mkdir "$1"
return
fi
}
configure()
{
mkdir -p... (9 Replies)
Discussion started by: mohtashims
9 Replies
10. UNIX for Beginners Questions & Answers
I want to find c function definition with pattern with shell script by checking condition for each line:
data_type
functionname(param_list){
....
}
I knew cscope or ctag is usable for this task, but if there any ways to do without using them.
I am thinking of checking line condition... (3 Replies)
Discussion started by: cmdcmd
3 Replies
LEARN ABOUT MOJAVE
gitaction
gitaction(1) General Commands Manual gitaction(1)
NAME
gitaction - GNU Interactive Tools - per file type action script
SYNTAX
gitaction directory file
.gitaction directory file
DESCRIPTION
gitaction is a script that executes a different action for each file type specified. It is called by the gitfm program when pressing F2 or
^Xa (see the gnuitrc.TERM configuration files in the gnuit manual). The first parameter is the current directory name and the second one is
the file name to be matched against the default patterns. The matching is done using the shell 'case' statement. If you press F2 or ^Xa on
a *.html file, gitfm will invoke a browser to view it, if you press F2 or ^Xa on a *.tar.gz file, gitfm will list the tar archive contents,
if you press the same keys on a *.gz file, gitfm will display its uncompressed contents on the screen, etc ...
If you press F2 or ^Xa on a *.gif file or *.jpg file and you have the zgv utility installed, you will be able to see it. If you want to
change the gif/jpeg viewer, all you need to do is to change its name in the gitaction script.
There are many more file types and viewers that gitaction knows about. In addition, if you are running under GNOME, gnome-open is used,
and on MacOS, open(1) is used. see(1) and metamail(1) are also used as fallbacks.
If all else fails, the file is displayed using $GNUIT_PAGER. Feel free to change this. If you want to find out what the default action for
each file type is (or if you want to modify it), just read/modify the gitaction script.
The script can be easily enhanced. Just read it.
The .gitaction script is a local version of the gitaction script. When started, gitaction tries to search a script called .gitaction in the
current directory and, if it finds it, it starts it. If .gitaction's exit code is 0 ( .gitaction couldn't find a matching pattern), gitac-
tion starts its own case statement trying to match the current file name (the second parameter) against its default patterns.
The .gitaction script *must* be executable. An example of .gitaction can be found in the directory gitfm is installed into. (usually
/usr/local/bin or /usr/bin) Debian users can find it in /usr/share/doc/gnuit/examples/. You should copy the example to the current direc-
tory or your home directory and then modify it.
BUGS
Please send bug reports to:
gnuit-dev@gnu.org
SEE ALSO
gitfm(1) gitps(1) gitview(1) gitmount(1) gitkeys(1) gitrgrep(1) gitunpack(1)
AUTHORS
Tudor Hulubei <tudor@cs.unh.edu>
Andrei Pitis <pink@pub.ro>
Ian Beckwith <ianb@erislabs.net> (current maintainer).
gitaction(1)