Преглед изворни кода

new package: cocor 1.06 (LL(1) Recursive-Descent Compiler-Compiler)

Ralf S. Engelschall пре 24 година
родитељ
комит
f67c25d469
2 измењених фајлова са 113 додато и 0 уклоњено
  1. 6 0
      cocor/cocor.sh
  2. 107 0
      cocor/cocor.spec

+ 6 - 0
cocor/cocor.sh

@@ -0,0 +1,6 @@
+#!/bin/sh
+if [ ".$CRFRAMES" = . ]; then
+    CRFRAMES="@l_prefix@/share/cocor/frames"
+fi
+export CRFRAMES
+exec @l_prefix@/libexec/cocor/cocor ${1+"$@"}

+ 107 - 0
cocor/cocor.spec

@@ -0,0 +1,107 @@
+##
+##  cocor.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
+##  Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package version
+%define       V_real 16
+%define       V_here 1.06
+
+#   package information
+Name:         cocor
+Summary:      LL(1) Recursive-Descent Compiler-Compiler
+URL:          http://cs.ru.ac.za/homes/cspt/cocor.htm
+Vendor:       Hanspeter Mössenböck, Frankie Arzu
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EXP]
+Group:        Compiler
+License:      Open Source
+Version:      %{V_here}
+Release:      20020717
+
+#   list of sources
+Source0:      ftp://cs.ru.ac.za/pub/coco/cocorc%{V_real}.tgz
+Source1:      ftp://cs.ru.ac.za/pub/coco/Coco.Paper.ps.Z   
+Source2:      ftp://cs.ru.ac.za/pub/coco/Coco.Report.ps.Z
+Source3:      cocor.sh
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20020206
+PreReq:       OpenPKG, openpkg >= 20020206
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    Coco/R combines the functionality of the well-known UNIX tools lex
+    and yacc, to form an extremely easy to use compiler generator that
+    generates recursive descent parsers, their associated scanners,
+    and (in some versions) a driver program, from attributed grammars
+    (written using EBNF syntax with attributes and semantic actions)
+    which conform to the restrictions imposed by LL(1) parsing (rather
+    than LALR parsing, as allowed by yacc). The user has to add modules
+    for symbol table handling, optimization, and code generation
+    in order to get a running compiler. Coco/R can also be used to
+    construct other syntax-based applications that have less of a
+    "compiler" flavour.
+
+%prep
+    %setup -q -c
+
+%build
+    cd sources
+    %{l_make} %{l_mflags} -f unix.mk \
+        CC="%{l_cc}" CFLAGS="%{l_cflags -O}"
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/bin \
+        $RPM_BUILD_ROOT%{l_prefix}/libexec/cocor \
+        $RPM_BUILD_ROOT%{l_prefix}/man/man1 \
+        $RPM_BUILD_ROOT%{l_prefix}/share/cocor/frames
+    %{l_shtool} install -c -m 755 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE cocor.sh} $RPM_BUILD_ROOT%{l_prefix}/bin/cocor
+    %{l_shtool} install -c -s -m 755 \
+        sources/cocor $RPM_BUILD_ROOT%{l_prefix}/libexec/cocor/
+    %{l_shtool} install -c -m 644 \
+        docs/cocor.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
+    %{l_shtool} install -c -m 644 \
+        docs/cocol $RPM_BUILD_ROOT%{l_prefix}/share/cocor/cocor.lang.txt
+    %{l_shtool} install -c -m 644 \
+        docs/coco.use $RPM_BUILD_ROOT%{l_prefix}/share/cocor/cocor.use.txt
+    %{l_shtool} install -c -m 644 \
+        %{SOURCE Coco.Paper.ps.Z} $RPM_BUILD_ROOT%{l_prefix}/share/cocor/coco.paper.ps.Z
+    %{l_shtool} install -c -m 644 \
+        %{SOURCE Coco.Report.ps.Z} $RPM_BUILD_ROOT%{l_prefix}/share/cocor/coco.report.ps.Z
+    %{l_shtool} install -c -m 644 \
+        frames/*.frm $RPM_BUILD_ROOT%{l_prefix}/share/cocor/frames/
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+