summaryrefslogtreecommitdiff
path: root/cdl3.spec
blob: 6be7d38cff46ee9a7e4bb979960af767ba84866f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Summary:	CDL3 System - compiler
Summary(pl):	Kompilator systemu CDL3
Name:		cdl3
Version:	1.2.3
Release:	0.1
License:	GPL
Group:		Development/Languages
Source0:	ftp://ftp.cs.kun.nl/pub/cdl3/%{name}-%{version}.tar.gz
# Source0-md5:	60b7a5fed2ac27f4dfe90ff9ae292bce
Patch0:		%{name}-acam.patch
BuildRequires:	autoconf
BuildRequires:	automake
BuildRequires:	libtool
BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)

%description
CDL3 is an implementation language based on affix grammars. It rides
the borderline between syntactic formalism and programming language,
and tries to combine the good properties of both. The control
structure and data structures have been choosen such that it is
extremely easy to write deterministic parsers and transducers in CDL3.
In this sense, CDL3 is a Compiler Description Language (hence the
acronym). Its applicability is, however, not limited to compiler
construction. The language is wellsuited, more in general, for all
applications that can be characterized as syntax-directed:
communication between processes (human and machine) adhering to
well-established protocols, or interpreter-like systems, interactively
obeying a set of commands.

%description -l pl
CDL3 to język implementacyjny oparty na gramatykach affiksowych.
Przekracza granicę pomiędzy formalizmem składniowym a językiem
programowania i próbuje połączyć dobre cechy obu rzeczy. Struktura
sterująca i struktury danych zostały tak dobrane, aby było bardzo
łatwo pisać w CDL3 deterministyczne analizatory i translatory. W tym
sensie CDL3 jest językiem opisu kompilatorów (Compiler Description
Language - stąd akronim). Jego zastosowanie nie jest jednak
ograniczone do konstruowania kompilatorów. Język jest dobrze
dopasowany, bardziej ogólnie, do wszystkich zastosowań, które można
scharakteryzować jako zorientowane na składnię: komunikacji między
procesami (człowiekiem i maszyną) zgodnie z dobrze ustalonymi
protokołami lub systemy w stylu interpreterów, interaktywnie reagujące
na zestaw poleceń.

%prep
%setup -q
%patch0 -p1

%build
%{__libtoolize}
%{__aclocal}
%{__autoconf}
%{__automake}
%configure

%{__make}

%install
rm -rf $RPM_BUILD_ROOT

%{__make} install \
	DESTDIR=$RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%post
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1

%postun
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1

%files
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog NEWS README TODO docs/*.ps docs/*.k3
%attr(755,root,root) %{_bindir}/*
%{_includedir}/*
%{_libdir}/lib*.a
%{_libdir}/lib*.la
%{_mandir}/man[13n]/*