tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Preprocessor output


From: Rob Landley
Subject: Re: [Tinycc-devel] Preprocessor output
Date: Sun, 15 Oct 2006 19:40:49 -0400
User-agent: KMail/1.9.1

On Saturday 14 October 2006 1:36 pm, Svein Berge wrote:
> > -----Original Message-----
> > From: Bernhard Fischer [mailto:address@hidden 
> > Sent: Saturday, October 14, 2006 6:43 PM
> > To: address@hidden
> > Cc: address@hidden
> > Subject: Re: [Tinycc-devel] Preprocessor output
> > 
> > On Sat, Oct 14, 2006 at 12:24:58AM +0200, Svein Berge wrote:
> > >For my project (www.sourceforge.org/projects/jsext), I need 
> > a C compiler
> > >(preferrably tiny), but also a C preprocessor. I've added a 
> > few lines of
> > >code to add the -E option to tcc and a tcc_preprocess 
> > function to tcclib.
> > >The -E option makes tcc stop after preprocessing and send 
> > output to stdout
> > >(like gcc does). The tcc_preprocess function in libtcc takes 
> > C code as a
> > >char * and returns preprocessed C code as a char *.
> > >
> > >The preprocessor output contains preprocessed code, a list 
> > of all constant
> > >#defines (that is, those without parameters) and # 
> > linenumber "filename"
> > >records.
> > >
> > >Enclosed are the diff files for libtcc.h and tcc.c. I hope 
> > this will be
> > 
> > Sounds useful. Unfortunately your patch doesn't apply to current
> > cvs. Could you please send a "diff -u" against current cvs?
> > 
> > TIA,
> > 
> > >included in a future release. It may be a useful feature for 
> > others, too,
> > >adds little code and is backwards-compatible.
> 
> Right... I worked from release 0.9.23. Here are the diffs against CVS (with
> -u).

I think I understand most of it, but what's this bit for?

@@ -1675,6 +1687,8 @@
     case TOK_GT:
         v = '>';
         goto addv;
+    case TOK_DOTS:
+        return strcpy(p, "...");
     case TOK_A_SHL:
         return strcpy(p, "<<=");
     case TOK_A_SAR:

- the_end:
+    the_end:

Don't indent labels.  The whole point of labels is to violate bracket nesting 
levels.  They belong at the left edge.  They're supposed to stand out and be 
ugly.


At some point I need to apply a whitespace cleanup to my repository, turning 
the tabs into 8 spaces and removing trailing whitespace from lines, something 
like:

  sed -ne 's/\t/        /' -e 's/ *$//' *.[ch]

And then checking it in...

Rob
-- 
"Perfection is reached, not when there is no longer anything to add, but
when there is no longer anything to take away." - Antoine de Saint-Exupery




reply via email to

[Prev in Thread] Current Thread [Next in Thread]