Browse Source

new package: tinyap 1.4.0 (Recursive Descent Parser and Abstract Syntax Tree Walker)

Ralf S. Engelschall 17 years ago
parent
commit
7ceee9c00e
2 changed files with 107 additions and 0 deletions
  1. 12 0
      tinyap/tinyap.patch
  2. 95 0
      tinyap/tinyap.spec

+ 12 - 0
tinyap/tinyap.patch

@@ -0,0 +1,12 @@
+Index: src/Makefile.in
+--- src/Makefile.in.orig	2008-05-11 14:31:54 +0200
++++ src/Makefile.in	2008-05-12 10:23:32 +0200
+@@ -198,7 +198,7 @@
+ noinst_HEADERS = ast.h pilot_manager.h pilot_cache.h hashtab.h node_cache.h tokenizer.h stack.h walker.h tutorial.h
+ lib_LTLIBRARIES = libtinyap.la
+ tinyap_SOURCES = main.c
+-tinyap_LDADD = -ldl libtinyap.la
++tinyap_LDADD = libtinyap.la
+ tinyap_LDFLAGS = -Wl,--export-dynamic
+ libtinyap_la_SOURCES = ast.c tokenizer.c ape_prettyprint.c node_cache.c pilot_cache.c pilot_manager.c stack.c tinyap.c walkableast.c walker.c serialize.c bootstrap.c unparser.c unrepl.c 3rd_party/lookup3.c
+ all: all-am

+ 95 - 0
tinyap/tinyap.spec

@@ -0,0 +1,95 @@
+##
+##  tinyap.spec -- OpenPKG RPM Package Specification
+##  Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/>
+##
+##  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_opkg 1.4.0
+%define       V_dist 1.4-0
+
+#   package information
+Name:         tinyap
+Summary:      Recursive Descent Parser and Abstract Syntax Tree Walker
+URL:          http://code.google.com/p/tinyap/
+Vendor:       Damien Leroux
+Packager:     OpenPKG Foundation e.V.
+Distribution: OpenPKG Community
+Class:        EVAL
+Group:        CompilerCompiler
+License:      GPL
+Version:      %{V_opkg}
+Release:      20080512
+
+#   list of sources
+Source0:      http://tinyap.googlecode.com/files/tinyap-%{V_dist}.tar.gz
+Patch0:       tinyap.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20060823
+PreReq:       OpenPKG, openpkg >= 20060823
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    This is not yet another parser. Tinyap takes some text and an a
+    grammar describing AST as inputs, and outputs another AST that
+    describes the text contents, according to the provided grammar.
+    Basically, tinyap is a recursive descent parser with backup.
+    Thus, it's able to recognize any LL(k) language. When a parse is
+    successful, tinyap outputs an Abstract Syntax Tree (AST) that
+    represents the input text in a structured manner. Unlike most
+    parsers, its code isn't factory-calibrated for a particular grammar.
+    Instead, the grammar is data. Tinyap uses an AST that represents
+    a grammar to parse its input text. This grammar AST is structured
+    according to tinyap's grammar description language.
+
+%track
+    prog tinyap = {
+        version   = %{V_dist}
+        url       = http://code.google.com/p/tinyap/
+        regex     = tinyap-(__VER__)\.tar\.gz
+    }
+
+%prep
+    %setup -q -n tinyap-%{V_dist}
+    %patch -p0
+
+%build
+    CC="%{l_cc}" \
+    CFLAGS="%{l_cflags -O}" \
+    ./configure \
+        --prefix=%{l_prefix} \
+        --disable-shared
+    %{l_make} %{l_mflags -O}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+