From 7efd05778cddec0293e0d48199f3aeee2aad6178 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 18 Jan 2008 12:36:59 +0100 Subject: Add SILex, for simplicity. --- src/guile/silex/regexp.l | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/guile/silex/regexp.l (limited to 'src/guile/silex/regexp.l') diff --git a/src/guile/silex/regexp.l b/src/guile/silex/regexp.l new file mode 100644 index 0000000..3cb905c --- /dev/null +++ b/src/guile/silex/regexp.l @@ -0,0 +1,63 @@ +; SILex - Scheme Implementation of Lex +; Copyright (C) 2001 Danny Dube' +; +; 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. + +space " " +tab " " +comment ";".* +hblank {space}|{tab}|{comment} +vblank "\n" + +digit [0123456789] +letter [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] +specini "!"|"$"|"%"|"&"|"*"|"/"|":"|"<"|"="|">"|"?"|"~"|"_"|"^" +specsub "."|"+"|"-" +initial {letter}|{specini} +subseq {letter}|{digit}|{specini}|{specsub} +peculid "+"|"-"|"..." +id {initial}{subseq}*|{peculid} + +%% + +{hblank} (make-tok hblank-tok yytext yyline yycolumn) +{vblank} (make-tok vblank-tok yytext yyline yycolumn) +"|" (make-tok pipe-tok yytext yyline yycolumn) +"?" (make-tok question-tok yytext yyline yycolumn) +"+" (make-tok plus-tok yytext yyline yycolumn) +"*" (make-tok star-tok yytext yyline yycolumn) +"(" (make-tok lpar-tok yytext yyline yycolumn) +")" (make-tok rpar-tok yytext yyline yycolumn) +"." (make-tok dot-tok yytext yyline yycolumn) +"[" (make-tok lbrack-tok yytext yyline yycolumn) +"[]" (make-tok lbrack-rbrack-tok yytext yyline yycolumn) +"[^" (make-tok lbrack-caret-tok yytext yyline yycolumn) +"[-" (make-tok lbrack-minus-tok yytext yyline yycolumn) +"{"{id}"}" (parse-id-ref yytext yyline yycolumn) +"{"{digit}+"}" (parse-power-m yytext yyline yycolumn) +"{"{digit}+",}" (parse-power-m-inf yytext yyline yycolumn) +"{"{digit}+","{digit}+"}" (parse-power-m-n yytext yyline yycolumn) +"{" (make-tok illegal-tok yytext yyline yycolumn) +"\"" (make-tok doublequote-tok yytext yyline yycolumn) +"\\n" (parse-spec-char yytext yyline yycolumn) +"\\"{digit}+ (parse-digits-char yytext yyline yycolumn) +"\\-"{digit}+ (parse-digits-char yytext yyline yycolumn) +"\\"[^] (parse-quoted-char yytext yyline yycolumn) +"^" (make-tok caret-tok yytext yyline yycolumn) +"$" (make-tok dollar-tok yytext yyline yycolumn) +. (parse-ordinary-char yytext yyline yycolumn) +"<>" (make-tok <>-tok yytext yyline yycolumn) +"<>" (make-tok <>-tok yytext yyline yycolumn) +<> (make-tok eof-tok yytext yyline yycolumn) -- cgit v1.2.3