Thank you! Exactly what I need!
Only one point: I am using the 'acc' and that compiler by the -E option does not produce the '-o "file"', but printing out on standart output; so, the result need to be redirected into desided file. (that's for anyone else to use this thread...)
You'd also be interested in exploring cpp ; Its the C pre Processor , available on most UNIX systems. However, I have used it mostly on my Linux ststems only
Just run the command:
I'm loving it!!!!
This User Gave Thanks to Praveen_218 For This Post:
Hi,
In my application I have some number c files. In each of the file the following line will be the first statement.
#ident "@(#) set.c 14.1.2.2 05/15/01 17:06:32"
I would like to know what is the use of the above statement.
Thanks
Sarwan (1 Reply)
In a file, field separetor in line is irregular number of spaces, so I canot use field in sub function to get my charecter replaced with empty space. I would like to substitute only one perticular charecter with space at perticular posiotn, so I canot use perticular character as that may occur... (6 Replies)
I think there is no problem to use any macro in a new macro definishion, but I have a problem with that.
I can not understand why?
I have a *.mak file that inludes file with many definitions and rules.
##############################################
include dstndflt.mak
...
One of the... (2 Replies)
I try to run this script, however, it gives an exception in line 3. How do I do an assignment to a substituted variable?
#!/bin/bash
name=fruit
ext_$(eval echo ${name})=apple
tmp=ext_$(eval echo ${name})
if ]; then
echo "apple"
elif ]; then
echo "orange"
fi
echo ${!tmp}
Error... (2 Replies)
I was going through the Linux code, i stuck with few inline assembly language code,
I have tried online but in vain. Any help is much appreciated. Thanks.
/* how to get the thread information struct from C */
static inline struct thread_info *current_thread_info(void)
{
struct... (3 Replies)
Hi,
I just opened one old RH box and found number of "macros" in there, that how they called in how-to doc, let say you type <rx> and this does a lot of stuff.
I can't figure out how it work, how I can edit/display these macros? Can anybody point to the right directions? I have some academic... (3 Replies)
Can some body explain this part in a header file for me?
#include <limits.h>
#define BIGNUM unsigned long long
typedef BIGNUM (*hash_t) (char *str);
......I have hard time for the second part:
typedef BIGNUM (*hash_t) (char *str); First, I could not find the definition of hash_t, which... (1 Reply)
Hi all,
I started playing around with Python (2.6.6) trying to parse a file. No matter what I tried so far I am not able to print only the lines/group/backreference that have been affected by the substitution. Instead I get also the other lines too
File to parse:
some more text
... (2 Replies)
Discussion started by: zaxxon
2 Replies
LEARN ABOUT DEBIAN
shtool-scpp
SHTOOL-SCPP.TMP(1) GNU Portable Shell Tool SHTOOL-SCPP.TMP(1)NAME
shtool-scpp - GNU shtool C source file pre-processor
SYNOPSIS
shtool scpp [-v|--verbose] [-p|--preserve] [-f|--filter filter] [-o|--output ofile] [-t|--template tfile] [-M|--mark mark] [-D|--define
dname] [-C|--class cname] file [file ...]
DESCRIPTION
This command is an additional ANSI C source file pre-processor for sharing cpp(1) code segments, internal variables and internal functions.
The intention for this comes from writing libraries in ANSI C. Here a common shared internal header file is usually used for sharing
information between the library source files.
The operation is to parse special constructs in files, generate a few things out of these constructs and insert them at position mark in
tfile by writing the output to ofile. Additionally the files are never touched or modified. Instead the constructs are removed later by the
cpp(1) phase of the build process. The only prerequisite is that every file has a ``"#include ""ofile"""'' at the top.
This command provides the following features: First it avoids namespace pollution and reduces prototyping efforts for internal symbols by
recognizing functions and variables which are defined with the storage class identifier ``cname''. For instance if cname is ``intern'', a
function ``"intern void *foobar(int quux)"'' in one of the files is translated into both a ``"#define foobar __foobar"'' and a ``"extern
void *foobar(int quux);"'' in ofile. Additionally a global ``"#define" cname "/**/"'' is also created in ofile to let the compiler silently
ignore this additional storage class identifier.
Second, the library source files usually want to share "typedef"s, "#define"s, etc. over the source file boundaries. To achieve this one
can either place this stuff manually into tfile or use the second feature of scpp: All code in files encapsulated with ``"#if "dname ...
"#endif"'' is automatically copied to ofile. Additionally a global ``"#define" dname 0'' is also created in ofile to let the compiler
silently skip this parts (because it was already found in the header).
OPTIONS
The following command line options are available.
-v, --verbose
Display some processing information.
-p, --preserve
Preserves ofile independent of the generated ``#line'' lines. This is useful for Makefiles if the real contents of ofile will not
change, just line numbers. Default is to overwrite.
-f, --filter filter
Apply one or more pre-processing sed(1) filter commands (usually of type ``"s/.../.../"'') to each input file before their input is
parsed. This option can occur multiple times.
-o, --output ofile
Output file name. Default is "lib.h".
-t, --template tfile
Template file name. Default is "lib.h.in".
-M, --mark mark
Mark to be replaced by generated constructs. Default is "%%MARK%%".
-D, --define dname
FIXME. Default is "cpp".
-C, --class cname
FIXME. Default is "intern".
EXAMPLE
# Makefile
SRCS=foo_bar.c foo_quux.c
foo_p.h: foo_p.h.in
shtool scpp -o foo_p.h -t foo_p.h.in
-M %%MARK%% -D cpp -C intern $(SRCS)
/* foo_p.h.in */
#ifndef FOO_P_H
#define FOO_P_H
%%MARK%%
#endif /* FOO_P_H */
/* foo_bar.c */
#include "foo_p.h"
#if cpp
#define OURS_INIT 4711
#endif
intern int ours;
static int myone = 0815;
intern int bar(void)
{
ours += myone;
}
/* foo_quux.c */
#include "foo_p.h"
int main(int argc, char *argv[])
{
int i;
ours = OURS_INIT
for (i = 0; i < 10; i++) {
bar();
printf("ours now %d
", ours);
}
return 0;
}
HISTORY
The GNU shtool scpp command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 1999 for GNU shtool. Its was prompted
by the need to have a pre-processing facility in the GNU pth project.
SEE ALSO shtool(1), cpp(1).
18-Jul-2008 shtool 2.0.8 SHTOOL-SCPP.TMP(1)