Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 1a4654cdb333ad144ff9f7b2e16de416 > files > 20

cpp2html-1.2-3mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="cpp2html 1.2
by Lorenzo Bettini, bettini@gnu.org
http://w3.newnet.it/bettini
http://www.gnu.org/software/cpp2html/cpp2html.html">
<title>generators.cc</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<pre>
<tt>
<i><font color=#9A1900>/*
** Copyright (C) 1999, 2000, Lorenzo Bettini &lt;lorenzo.bettini@penteres.it&gt;
**  
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**  
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**  
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**  
*/</font></i>

<i><font color=#9A1900>// generators.cc
</font></i>
<i><font color=#9A1900>// generators and decorators
</font></i>
<b><font color=#0000FF>#include</font></b> <font color=#FF0000>"textgen.h"</font>
<b><font color=#0000FF>#include</font></b> <font color=#FF0000>"decorators.h"</font>
<b><font color=#0000FF>#include</font></b> <font color=#FF0000>"tags.h"</font>
<b><font color=#0000FF>#include</font></b> <font color=#FF0000>"keys.h"</font>

<b><font color=#0000FF>#define</font></b> GET_DECORATED( d ) ( d ? d : GlobalGenerator )

TextGenerator *GlobalGenerator ;
TextGenerator *KeywordGenerator ;
TextGenerator *CommentGenerator ;
TextGenerator *StringGenerator ;
TextGenerator *TypeGenerator ;
TextGenerator *NumberGenerator ;

<b><font color=#0000FF>static</font></b> TextGenerator *createGenerator( <font color=#009900>char</font> *key ) ;

<font color=#009900>void</font> createGenerators()
{
  GlobalGenerator = <b><font color=#0000FF>new</font></b> TextGenerator ;
  KeywordGenerator = createGenerator( KEYWORD ) ;
  CommentGenerator = createGenerator( COMMENT ) ;
  StringGenerator = createGenerator( STRING ) ;
  TypeGenerator = createGenerator( TYPE ) ;
  NumberGenerator = createGenerator( NUMBER ) ;
}

<font color=#009900>void</font> createGeneratorsForCSS()
{
  GlobalGenerator = <b><font color=#0000FF>new</font></b> TextGenerator ;
  KeywordGenerator = <b><font color=#0000FF>new</font></b> SpanDecorator(GlobalGenerator, KEYWORD) ;
  CommentGenerator = <b><font color=#0000FF>new</font></b> SpanDecorator(GlobalGenerator, COMMENT) ;
  StringGenerator = <b><font color=#0000FF>new</font></b> SpanDecorator(GlobalGenerator, STRING) ;
  TypeGenerator = <b><font color=#0000FF>new</font></b> SpanDecorator(GlobalGenerator, TYPE) ;
  NumberGenerator = <b><font color=#0000FF>new</font></b> SpanDecorator(GlobalGenerator, NUMBER) ;
}

TextGenerator *createGenerator( <font color=#009900>char</font> *key )
{
  Tag *tag = getTag( key ) ;
  TextDecorator *dec = NULL ;

  <b><font color=#0000FF>if</font></b> ( ! tag ) <i><font color=#9A1900>// no options
</font></i>    <b><font color=#0000FF>return</font></b> GlobalGenerator ;

  <font color=#009900>char</font> * color = tag-&gt;GetColor() ;
  <b><font color=#0000FF>if</font></b> ( color )
    dec = <b><font color=#0000FF>new</font></b> ColorDecorator( GlobalGenerator, color ) ;

  <b><font color=#0000FF>if</font></b> ( tag-&gt;IsBold() )
    dec = <b><font color=#0000FF>new</font></b> TagDecorator( GET_DECORATED( dec ), BOLD_TAG ) ;
  <b><font color=#0000FF>if</font></b> ( tag-&gt;IsItalic() )
    dec = <b><font color=#0000FF>new</font></b> TagDecorator( GET_DECORATED( dec ), ITALIC_TAG ) ;
  <b><font color=#0000FF>if</font></b> ( tag-&gt;IsUnderline() )
    dec = <b><font color=#0000FF>new</font></b> TagDecorator( GET_DECORATED( dec ), UNDERLINE_TAG ) ;

  <b><font color=#0000FF>return</font></b> GET_DECORATED( dec ) ;
  <i><font color=#9A1900>// There should be some options, but it's not ncessary ...
</font></i>  <i><font color=#9A1900>// so this is just to be safe
</font></i>}
</tt>
</pre>
</body>
</html>