home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1999 mARCH
/
PCWK3A99.iso
/
Linux
/
DDD331
/
DDD-3_1_.000
/
DDD-3_1_
/
ddd-3.1.1
/
ddd
/
lextoC
< prev
next >
Wrap
Text File
|
1998-05-21
|
2KB
|
92 lines
#! /bin/sh
# $Id: lextoC,v 1.9 1998/05/21 18:45:58 zeller Exp $
# adapt lex template for C++ use
# Copyright (C) 1995 Technische Universitaet Braunschweig, Germany.
# Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
#
# This file is part of the ICE Library.
#
# The ICE Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# The ICE Library 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 Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with the ICE Library -- see the file COPYING.LIB.
# If not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ICE is the incremental configuration environment.
# For details, see the ICE World-Wide-Web page,
# `http://www.cs.tu-bs.de/softech/ice/',
# or send a mail to the ICE developers <ice@ips.cs.tu-bs.de>.
this=`basename $0`
path=`dirname $0`
# prefer system V sed (does not strip initial space)
sed=sed
if [ -f /usr/5bin/sed ]; then
sed=/usr/5bin/sed
fi
static=cat
if [ "$1" = -static ]; then
static="/bin/sh $path/make-static"
shift
fi
prefix=cat
if [ "$1" = -prefix ]; then
prefix="$sed s!yy!$2!g"
shift 2
fi
if [ $# != 0 ]; then
echo "$this: usage: $this [-static] [-prefix PREFIX]" >&2
exit 1
fi
if [ ! -f lex.yy.c ]; then
echo $this: lex.yy.c not found >&2
exit 1
fi
head lex.yy.c | grep $this > /dev/null
if [ $? = 0 ]; then
echo $this: lex.yy.c is already in C++ format >&2
exit 1
fi
grep '@(#)ncform.*SMI' lex.yy.c > /dev/null
if [ $? = 0 ]; then
lexpar=sun
fi
grep 'generated by flex' lex.yy.c > /dev/null
if [ $? = 0 ]; then
lexpar=flex
fi
if [ "$lexpar" = "" ]; then
echo "$this: cannot determine lex type -- reverting to flex" >&2
lexpar=flex
fi
script=$path/$this.$lexpar
$sed -f $script lex.yy.c | $static | $prefix > lex.yy.C
diff -D__cplusplus lex.yy.c lex.yy.C > lex.tmp
$sed -e 's!#else *__cplusplus$!#else!
s!#endif *__cplusplus$!#endif /* __cplusplus */!' lex.tmp > lex.yy.c
rm -f lex.tmp
exit 0