summary refs log tree commit diff
path: root/skribe/tools/skribebibtex/stklos
diff options
context:
space:
mode:
Diffstat (limited to 'skribe/tools/skribebibtex/stklos')
-rw-r--r--skribe/tools/skribebibtex/stklos/Makefile62
-rw-r--r--skribe/tools/skribebibtex/stklos/bibtex-lex.l75
-rw-r--r--skribe/tools/skribebibtex/stklos/bibtex-parser.y117
-rw-r--r--skribe/tools/skribebibtex/stklos/main.stk118
4 files changed, 0 insertions, 372 deletions
diff --git a/skribe/tools/skribebibtex/stklos/Makefile b/skribe/tools/skribebibtex/stklos/Makefile
deleted file mode 100644
index 3e31d88..0000000
--- a/skribe/tools/skribebibtex/stklos/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# Makefile for STklos skribebibtex
-#
-#           Author: Erick Gallesio [eg@essi.fr]
-#    Creation date: 26-Oct-2004 18:40 (eg)
-# Last file update:  8-Nov-2004 15:25 (eg)
-
-include ../../../etc/stklos/Makefile.skb
-include ../../../etc/Makefile.config
-
-POPULATION = Makefile bibtex-lex.l bibtex-parser.y skribebibtex.stk main.stk
-BINDIR     = ../../../bin
-TARGET	   = skribebibtex
-EXE        = $(BINDIR)/$(TARGET).stklos
-
-all: $(EXE)
-
-$(EXE): main.stk bibtex-lex.stk bibtex-parser.stk
-	stklos-compile -l -o $(EXE) main.stk
-
-bibtex-lex.stk: bibtex-lex.l
-	stklos-genlex bibtex-lex.l bibtex-lex.stk bibtex-lex
-
-bibtex-parser.stk: bibtex-parser.y
-	stklos -f bibtex-parser.y
-
-bibtex:	bibtex-lex.stk
-
-
-#======================================================================
-#	install ...
-#======================================================================
-install: $(INSTALL_BINDIR)
-	cp $(EXE) $(INSTALL_BINDIR)/$(TARGET).stklos \
-           && chmod $(BMASK) $(INSTALL_BINDIR)/$(TARGET).stklos
-	rm -f $(INSTALL_BINDIR)/$(TARGET)
-	ln -s $(TARGET).stklos $(INSTALL_BINDIR)/$(TARGET)
-
-$(INSTALL_BINDIR):
-	mkdir -p $(INSTALL_BINDIR) && chmod a+rx $(INSTALL_BINDIR)
-
-
-#======================================================================
-#	uninstall ...
-#======================================================================
-uninstall: 
-	rm $(INSTALL_BINDIR)/$(TARGET)
-	rm $(INSTALL_BINDIR)/$(TARGET).stklos
-
-
-#======================================================================
-#	pop ...
-#======================================================================
-pop:
-	@echo $(POPULATION:%=tools/skribebibtex/stklos/%)
-
-#======================================================================
-#	clean ...
-#======================================================================
-
-clean:
-	rm -f $(EXE) bibtex-lex.stk bibtex-parser.stk *~ 
diff --git a/skribe/tools/skribebibtex/stklos/bibtex-lex.l b/skribe/tools/skribebibtex/stklos/bibtex-lex.l
deleted file mode 100644
index 03b4871..0000000
--- a/skribe/tools/skribebibtex/stklos/bibtex-lex.l
+++ /dev/null
@@ -1,75 +0,0 @@
-;;;;							-*- Scheme -*-
-;;;; bibtex-lex.l	-- SILex input for BibTeX
-;;;; 
-;;;; Copyright © 2004 Erick Gallesio - I3S-CNRS/ESSI <eg@essi.fr>
-;;;; 
-;;;; 
-;;;; 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 of the License, 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.
-;;;; 
-;;;;           Author: Erick Gallesio [eg@essi.fr]
-;;;;    Creation date: 21-Oct-2004 17:47 (eg)
-;;;; Last file update: 25-Oct-2004 20:16 (eg)
-;;;;
-
-
-space	[ \n\9]
-alpha   [-+a-zA-ZàâäéèêëîïôöûüùÀÂÄÉÈÊËÎÏÔÖÛÜÙ./:()?!'&_~]
-
-%%
-
-;; Spaces
-{space}+			(list 'BLANK)
-;; Comment
-\%.*$				(yycontinue)
-;; equal sign
-=				(list 'EQUAL)
-;; Open Bracket
-\{				(list 'LBRACKET)
-;; Close Bracket
-\}				(list 'RBRACKET)
-;; Comma
-, 				(list 'COMMA)
-;; Strings
-\"[^\"]*\"			(list 'STRING yytext)
-;; Commands
-@{alpha}+			(let* ((str (string-downcase
-					     (substring yytext 1
-							(string-length yytext))))
-				       (sym (string->symbol str)))
-				  (case sym
-				    ((string) (list 'BIBSTRING))
-				    (else     (list 'BIBITEM sym))))
-;; Ident
-{alpha}({alpha}|[0-9])*		(list 'IDENT yytext)
-;; Number
-[0-9]+				(list 'NUMBER yytext)
-;; Diacritic 
-\\['`^\"][aeiouAEIOU] 		(lex-char (string-ref yytext 1)
-					  (string-ref yytext 2))
-\{\\['`^\"][aeiouAEIOU]\} 	(lex-char (string-ref yytext 2)
-					  (string-ref yytext 3))
-
-;; Unrecognized character
-.				(begin
-				  (format (current-error-port)
-					  "Skipping character ~S\n" yytext)
-				  (yycontinue))
-
-;;;; ======================================================================
-<<EOF>>			'*eoi*
-<<ERROR>>		(error 'bibtex-lexer "Parse error" yytext)
-
-
diff --git a/skribe/tools/skribebibtex/stklos/bibtex-parser.y b/skribe/tools/skribebibtex/stklos/bibtex-parser.y
deleted file mode 100644
index 50236a9..0000000
--- a/skribe/tools/skribebibtex/stklos/bibtex-parser.y
+++ /dev/null
@@ -1,117 +0,0 @@
-;;;;							-*- Scheme -*-
-;;;; bibtex-parser.y	-- SILex input for BibTeX
-;;;; 
-;;;; Copyright © 2004 Erick Gallesio - I3S-CNRS/ESSI <eg@essi.fr>
-;;;; 
-;;;; 
-;;;; 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 of the License, 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.
-;;;; 
-;;;;           Author: Erick Gallesio [eg@essi.fr]
-;;;;    Creation date: 21-Oct-2004 17:47 (eg)
-;;;; Last file update: 22-Oct-2004 18:14 (eg)
-;;;;
-
-(load "lalr")
-
-(define (main args)
-  ;; Build the parser
-  (lalr-parser
-     ;; Options
-     (output: parser "bibtex-parser.stk")
-
-     ;; Terminal symbols
-     (CHAR BLANK IDENT STRING COMMA LBRACKET RBRACKET NUMBER EQUAL
-      BIBSTRING BIBITEM)
-
-     ;; Rules 
-     (S
-        ()
-	(S string-def)
-	(S blank*)
-	(S bibtex-entry))
-
-
-     (blank*
-        ()
-	(blank* BLANK))
-
-     
-     (string-def
-        (BIBSTRING LBRACKET  blank* IDENT blank* EQUAL blank* entry-value
-		   blank* RBRACKET)
-	: (bibtex-string-def! (car $4) (car $8)))
-
-
-     (bibtex-entry
-        (BIBITEM LBRACKET blank* IDENT blank* COMMA blank* entry-item* RBRACKET)
-	: (make-bibentry $1 $4 $8))
-
-     
-     (entry-item*
-        (blank*)
-	: '()
-	(entry-item)
-	: (list $1)
-	(entry-item COMMA entry-item*)
-	: (cons $1 $3))
-      
-     
-     (entry-item
-        (blank* IDENT blank* EQUAL blank* entry-value blank*)
-	: (cons (car $2) $6))
-     
-     
-     (entry-value
-        (NUMBER)
-	: (list (car $1))
-	(STRING)
-	: $1
-	(IDENT)
-	: (bibtex-string-ref (car $1))
-	(LBRACKET entry-value-block* RBRACKET)
-	: (list (apply string-append $2)))
-	  
-
-      (entry-value-block*
-         ()
-	 : '()
-	 (entry-value-block* entry-value-block)
-	 : (append $1 $2))
-
-      
-      (entry-value-block
-         (LBRACKET entry-value-block* RBRACKET)
-	 : $2
-	 (COMMA)
-	 : (list ",")
-	 (IDENT)
-	 : $1
-	 (BLANK)
-	 : (list " ")
-	 (EQUAL)
-	 : (list "=")
-	 (CHAR)
-	 : $1
-	 (NUMBER)
-	 : $1
-	 (STRING)
-	 : $1)
-     )
-  ;; Terminate
-  0)
-  
-
-  
\ No newline at end of file
diff --git a/skribe/tools/skribebibtex/stklos/main.stk b/skribe/tools/skribebibtex/stklos/main.stk
deleted file mode 100644
index 3225658..0000000
--- a/skribe/tools/skribebibtex/stklos/main.stk
+++ /dev/null
@@ -1,118 +0,0 @@
-;;;;
-;;;; main.stk				-- Skribebibtex Main
-;;;; 
-;;;; Copyright © 2004 Erick Gallesio - I3S-CNRS/ESSI <eg@essi.fr>
-;;;; 
-;;;; 
-;;;; 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 of the License, 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.
-;;;; 
-;;;;           Author: Erick Gallesio [eg@essi.fr]
-;;;;    Creation date: 22-Oct-2004 10:29 (eg)
-;;;; Last file update: 26-Oct-2004 21:52 (eg)
-;;;;
-
-(define *bibtex-strings* (make-hash-table string=?))
-(define *debug*		 (getenv "DEBUG"))
-(define *in*		 (current-input-port))
-(define *out*		 (current-output-port))
-
-
-(define (bibtex-string-def! str val)
-  (hash-table-put! *bibtex-strings* str val))
-
-
-(define (bibtex-string-ref str)
-  (list (hash-table-get *bibtex-strings* str str)))
-
-
-(define (lex-char accent letter)
-  (list 'CHAR
-	(case accent
-	  ((#\') (case letter
-		   ((#\a) "á") ((#\e) "é") ((#\i) "í") ((#\o) "ó") ((#\u) "ú")
-		   ((#\A) "Á") ((#\E) "É") ((#\I) "Í") ((#\O) "Ó") ((#\U) "ú")
-		   (else "?")))
-	  ((#\`) (case letter
-		   ((#\a) "à") ((#\e) "è") ((#\i) "ì") ((#\o) "ò") ((#\u) "ù")
-		   ((#\A) "À") ((#\E) "È") ((#\I) "Ì") ((#\O) "Ò") ((#\U) "Ù")
-		   (else "?")))
-	  ((#\^) (case letter
-		   ((#\a) "â") ((#\e) "ê") ((#\i) "î") ((#\o) "ô") ((#\u) "û")
-		   ((#\A) "Â") ((#\E) "Ê") ((#\I) "Î") ((#\O) "Ô") ((#\U) "Û")
-		   (else "?")))
-	  ((#\") (case letter
-		   ((#\a) "ä") ((#\e) "ë") ((#\i) "ï") ((#\o) "ö") ((#\u) "ü")
-		   ((#\A) "Ä") ((#\E) "Ë") ((#\I) "Ï") ((#\O) "Ö") ((#\U) "Ü")
-		   (else "?")))
-	  (else "?"))))
-
-
-(define (make-bibentry kind key infos)
-  (define (pretty-string s)
-    (if (and (string? s)
-	     (>= (string-length s) 2)
-	     (eq? #\" (string-ref s 0))
-	     (eq? #\" (string-ref s (- (string-length s) 1))))
-	(substring s 1 (- (string-length s) 1))
-	s))
-  (format *out* ";;;;\n(~A ~S\n" (car kind) (car key))
-  (for-each (lambda (x) (format *out* "  (~A  ~S)\n"
-				(car x)
-				(pretty-string (cadr x))))
-	    infos)
-  (format *out* ")\n\n"))
-  
-
-;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-(include "bibtex-lex.stk")	
-(include "bibtex-parser.stk")
-;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-(define (bibtex2scheme in out)
-  (let* ((lex  (bibtex-lex in))
-	 (scan (lambda ()
-		  (let ((tok (lexer-next-token lex)))
-		    (when *debug*
-		      (format (current-error-port) "token = ~S\n" tok))
-		    tok)))
-	 (error (lambda (a b) (error 'bibtex-parser "~A~A" a b))))
-    (parser scan error)))
-      
-
-(define (main args)
-  ;; Parse the program arguments
-  (parse-arguments args
-     "Usage: skribebibtex [options] [input]"
-     (("help" :alternate "h" :help "provide help for the command")
-      (arg-usage (current-error-port))
-      (exit 0))
-     (("options" :help "display the options and exit")
-      (arg-usage (current-output-port) #t)
-      (exit 0))
-     (("output" :alternate "o" :arg file :help "set the output to <file>")
-      (let ((port (open-file file "w")))
-	(if port
-	    (set! *out* port)
-	    (die (format "~A: bad output file ~S" 'skribebibtex file) 1))))
-     (else
-      (cond
-	((= (length other-arguments) 1)
-	 (let* ((file (car other-arguments))
-		(port (open-file file "r")))
-	   (if port
-	       (set! *in* file)
-	       (die (format "~A: bad input file ~S" 'skribebibtex file) 1)))))))
-  (bibtex2scheme *in* *out*))