diff options
Diffstat (limited to 'src/guile/silex/regexp.l')
-rw-r--r-- | src/guile/silex/regexp.l | 63 |
1 files changed, 63 insertions, 0 deletions
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) +"<<EOF>>" (make-tok <<EOF>>-tok yytext yyline yycolumn) +"<<ERROR>>" (make-tok <<ERROR>>-tok yytext yyline yycolumn) +<<EOF>> (make-tok eof-tok yytext yyline yycolumn) |