X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fpxp%2Fpxp%2Fm2parsergen%2Flexer.mll;fp=helm%2FDEVEL%2Fpxp%2Fpxp%2Fm2parsergen%2Flexer.mll;h=a016897b235dc4e8a637651aeab25204175512ee;hb=c03d2c1fdab8d228cb88aaba5ca0f556318bebc5;hp=0000000000000000000000000000000000000000;hpb=758057e85325f94cd88583feb1fdf6b038e35055;p=helm.git diff --git a/helm/DEVEL/pxp/pxp/m2parsergen/lexer.mll b/helm/DEVEL/pxp/pxp/m2parsergen/lexer.mll new file mode 100644 index 000000000..a016897b2 --- /dev/null +++ b/helm/DEVEL/pxp/pxp/m2parsergen/lexer.mll @@ -0,0 +1,93 @@ +(* $Id$ + * ---------------------------------------------------------------------- + * + *) + +{ + open Parser +} + +rule scan_file = parse + "/*" [^ '*']* ('*'+ [^ '/' '*'] [^ '*']* )* '*'* "*/" + { Space } + | "%token" + { Token } + | "<" [' ' '\t' '\r' '\n']* ">" + { Type + } + | [ 'a'-'z' ] [ 'a'-'z' 'A'-'Z' '0'-'9' '_' ]* + { let s = Lexing.lexeme lexbuf in + Lname s + } + | [ 'A'-'Z' ] [ 'a'-'z' 'A'-'Z' '0'-'9' '_' ]* + { let s = Lexing.lexeme lexbuf in + Uname s + } + | "%%" + { Separator } + | "(" + { Lparen } + | "," + { Comma } + | ")" + { Rparen } + | "[" + { Lbracket } + | "]" + { Rbracket } + | ":" + { Colon } + | "{{" [^ '}']* ( '}' [^ '}']+ )* "}}" + { let s = Lexing.lexeme lexbuf in + Code (String.sub s 2 (String.length s - 4), 0, 0) + } + | "?" + { Error } + | "|" + { Alt } + | "+" + { Loop_plus } + | "*" + { Loop_star } + | [' ' '\t' '\r' '\n']+ + { Space } + | "$" + { Dollar } + | eof + { Eof } + +and scan_header = parse + "%%" + { Separator } + | "%" + { Code("%", 0, 0) } + | [^ '%']* + { Code(Lexing.lexeme lexbuf, 0, 0) } + | eof + { Eof } + +and scan_rest = parse + _* + { Code(Lexing.lexeme lexbuf, 0, 0) } + | eof + { Eof } + +(* ====================================================================== + * History: + * + * $Log$ + * Revision 1.1 2000/11/17 09:57:32 lpadovan + * Initial revision + * + * Revision 1.3 2000/05/09 00:03:22 gerd + * Added [ ml_name ] symbols, where ml_name is an arbitrary + * OCaml identifier. + * + * Revision 1.2 2000/05/06 21:51:24 gerd + * New symbol Dollar. + * + * Revision 1.1 2000/05/06 17:36:17 gerd + * Initial revision. + * + * + *)