X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fpxp%2Fpxp%2Flexers%2Fpxp_lex_dtd_string.src;fp=helm%2FDEVEL%2Fpxp%2Fpxp%2Flexers%2Fpxp_lex_dtd_string.src;h=1fb11e65271f0e36259e068d2c2551eeb2c8a2b4;hb=c03d2c1fdab8d228cb88aaba5ca0f556318bebc5;hp=0000000000000000000000000000000000000000;hpb=758057e85325f94cd88583feb1fdf6b038e35055;p=helm.git diff --git a/helm/DEVEL/pxp/pxp/lexers/pxp_lex_dtd_string.src b/helm/DEVEL/pxp/pxp/lexers/pxp_lex_dtd_string.src new file mode 100644 index 000000000..1fb11e652 --- /dev/null +++ b/helm/DEVEL/pxp/pxp/lexers/pxp_lex_dtd_string.src @@ -0,0 +1,70 @@ +(* $Id$ + * ---------------------------------------------------------------------- + * + *) + + +{ + open Pxp_types + open Pxp_lexer_types + +#insert open_pxp_lex_aux_*.src +#insert pxp_lex_aux.src + +} + +#insert pxp_lex_defs_*.def +(* The following scanner is used to determine the replacement text of + * internal entities: + *) + +rule scan_dtd_string = parse + '%' name ';' + { let s = Lexing.lexeme lexbuf in + PERef (String.sub s 1 (String.length s - 2)) } + | '%' + { raise(WF_error("The character '%' must be written as '%'")) } + | '&' name ';' + { let s = Lexing.lexeme lexbuf in + ERef (String.sub s 1 (String.length s - 2)) } + | "&#" ascii_digit+ ";" + { let s = Lexing.lexeme lexbuf in + CRef (int_of_string (String.sub s 2 (String.length s - 3))) } + | "&#x" ascii_hexdigit+ ";" + { let s = Lexing.lexeme lexbuf in + CRef (int_of_string ("0x" ^ String.sub s 3 (String.length s - 4))) } + | '&' + { raise(WF_error("The character '&' must be written as '&'")) } + | '\013' '\010' + { CRef(-1) } + | '\013' + { CRef(-2) } + | '\010' + { CRef(-3) } + | '\009' + { CharData "\009" } + | printable_character_except_amp_percent+ + { CharData (Lexing.lexeme lexbuf) } + | eof + { Eof } + | _ + { raise Netconversion.Malformed_code } + +(* ====================================================================== + * History: + * + * $Log$ + * Revision 1.1 2000/11/17 09:57:32 lpadovan + * Initial revision + * + * Revision 1.3 2000/08/14 22:18:34 gerd + * Bad_character_stream -> Netconversion.Malformed_code + * + * Revision 1.2 2000/05/29 23:53:12 gerd + * Updated because Markup_* modules have been renamed to Pxp_*. + * + * Revision 1.1 2000/05/20 20:33:25 gerd + * Initial revision. + * + * + *)