+++ /dev/null
-(* $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 remaining, smaller lexers *)
-
-rule scan_characters = parse
- character*
- { () }
-| eof
- { () }
-| _
- { raise Netconversion.Malformed_code }
-
-
-and scan_xml_pi = parse
- name ws*
- { let s = Lexing.lexeme lexbuf in
- let j = get_name_end s 0 in
- Pro_name (String.sub s 0 j)
- }
- | "=" ws*
- { Pro_eq }
- | "'" character_except_apos* "'" ws+
- { let s = Lexing.lexeme lexbuf in
- let j = String.index_from s 1 '\'' in
- Pro_string (String.sub s 1 (j-1))
- }
- | "'"
- { raise (WF_error ("Cannot find the second quotation mark"))
- }
- | '"' character_except_quot* '"' ws+
- { let s = Lexing.lexeme lexbuf in
- let j = String.index_from s 1 '"' in
- Pro_string (String.sub s 1 (j-1))
- }
- | '"'
- { raise (WF_error ("Cannot find the second quotation mark"))
- }
- | eof
- { Pro_eof }
- | character
- { (* prerr_endline (Lexing.lexeme lexbuf); *)
- raise (WF_error("Illegal token or character"))
- }
- | _
- { raise Netconversion.Malformed_code }
-
-and scan_only_xml_decl = parse
- "<?xml" ws+ pi_string "?>"
- { scan_pi (Lexing.lexeme lexbuf) scan_xml_pi }
- | ""
- { Eof }
-
-and scan_for_crlf = parse
- | '\013' '\010'
- { CharData "\n" }
- | '\013'
- { CharData "\n" }
- | '\010'
- { CharData "\n" }
- | [^ '\010' '\013' ]+
- { CharData (Lexing.lexeme lexbuf) }
- | eof
- { Eof }
-
-and scan_content_comment = parse
- "-->"
- { Comment_end, Content }
- | "--"
- { raise (WF_error "Double hyphens are illegal inside comments") }
- | "-"
- { Comment_material "-", Content_comment }
- | character_except_minus+
- { Comment_material(Lexing.lexeme lexbuf), Content_comment }
- | eof
- { Eof, Content_comment }
- | _
- { raise Netconversion.Malformed_code }
-
-
-(* In declarations, comments are always thrown away. *)
-
-and scan_decl_comment = parse
- "-->"
- { Comment_end, Declaration }
- | "--"
- { raise (WF_error "Double hyphens are illegal inside comments") }
- | "-"
- { Comment_material "", Decl_comment }
- | character_except_minus+
- { Comment_material "", Decl_comment }
- | eof
- { Eof, Decl_comment }
- | _
- { raise Netconversion.Malformed_code }
-
-
-and scan_document_comment = parse
- "-->"
- { Comment_end, Document }
- | "--"
- { raise (WF_error "Double hyphens are illegal inside comments") }
- | "-"
- { Comment_material "-", Document_comment }
- | character_except_minus+
- { Comment_material(Lexing.lexeme lexbuf), Document_comment }
- | eof
- { Eof, Document_comment }
- | _
- { raise Netconversion.Malformed_code }
-
-(* ======================================================================
- * History:
- *
- * $Log$
- * Revision 1.1 2000/11/17 09:57:32 lpadovan
- * Initial revision
- *
- * Revision 1.4 2000/08/18 20:19:59 gerd
- * Comments return different comment tokens.
- *
- * 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.
- *
- *
- *)