⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ylwrap

📁 lzo-1.08-src.zip 高效的压缩解压代码
💻
字号:
#! /bin/sh# ylwrap - wrapper for lex/yacc invocations.## Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002 Free Software# Foundation, Inc.## Written by Tom Tromey <tromey@cygnus.com>.## 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, 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.# As a special exception to the GNU General Public License, if you# distribute this file as part of a program that contains a# configuration script generated by Autoconf, you may include it under# the same distribution terms that you use for the rest of that program.# Usage:#     ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...# * INPUT is the input file# * OUTPUT is file PROG generates# * DESIRED is file we actually want# * PROGRAM is program to run# * ARGS are passed to PROG# Any number of OUTPUT,DESIRED pairs may be used.# The input.input="$1"shiftcase "$input" in [\\/]* | ?:[\\/]*)    # Absolute path; do nothing.    ;; *)    # Relative path.  Make it absolute.    input="`pwd`/$input"    ;;esacpairlist=while test "$#" -ne 0; do   if test "$1" = "--"; then      shift      break   fi   pairlist="$pairlist $1"   shiftdone# The program to run.prog="$1"shift# Make any relative path in $prog absolute.case "$prog" in [\\/]* | ?:[\\/]*) ;; *[\\/]*) prog="`pwd`/$prog" ;;esac# FIXME: add hostname here for parallel makes that run commands on# other machines.  But that might take us over the 14-char limit.dirname=ylwrap$$trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15mkdir $dirname || exit 1cd $dirnamecase $# in 0) $prog "$input" ;; *) $prog "$@" "$input" ;;esacstatus=$?if test $status -eq 0; then   set X $pairlist   shift   first=yes   # Since DOS filename conventions don't allow two dots,   # the DOS version of Bison writes out y_tab.c instead of y.tab.c   # and y_tab.h instead of y.tab.h. Test to see if this is the case.   y_tab_nodot="no"   if test -f y_tab.c || test -f y_tab.h; then      y_tab_nodot="yes"   fi   # The directory holding the input.   input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`   # Quote $INPUT_DIR so we can use it in a regexp.   # FIXME: really we should care about more than `.' and `\'.   input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`   while test "$#" -ne 0; do      from="$1"      # Handle y_tab.c and y_tab.h output by DOS      if test $y_tab_nodot = "yes"; then	 if test $from = "y.tab.c"; then	    from="y_tab.c"	 else	    if test $from = "y.tab.h"; then	       from="y_tab.h"	    fi	 fi      fi      if test -f "$from"; then         # If $2 is an absolute path name, then just use that,         # otherwise prepend `../'.         case "$2" in	   [\\/]* | ?:[\\/]*) target="$2";;	   *) target="../$2";;	 esac	 # Edit out `#line' or `#' directives.	 #	 # We don't want the resulting debug information to point at	 # an absolute srcdir; it is better for it to just mention the	 # .y file with no path.	 #	 # We want to use the real output file name, not yy.lex.c for	 # instance.	 #	 # We want the include guards to be adjusted too.	 FROM=`echo "$from" | sed \                 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\                 -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`	 TARGET=`echo "$2" | sed \                 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\                 -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`         sed "/^#/{s,$input_rx,,;s,$from,$2,;s,$FORM,$TO,;}" "$from" >"$target" ||            status=$?      else	 # A missing file is only an error for the first file.  This	 # is a blatant hack to let us support using "yacc -d".  If -d	 # is not specified, we don't want an error when the header	 # file is "missing".	 if test $first = yes; then	    status=1	 fi      fi      shift      shift      first=no   doneelse   status=$?fi# Remove the directory.cd ..rm -rf $dirnameexit $status

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -