--- haxe-1.18.orig/debian/emacsen-startup
+++ haxe-1.18/debian/emacsen-startup
@@ -0,0 +1,26 @@
+;; -*-emacs-lisp-*-
+
+(if (not (file-exists-p "/usr/share/emacs/site-lisp/haxe-mode"))
+    (message "Package haxe needs reinstall.  Skipping setup.")
+
+  (let ((haxedir (concat "/usr/share/"
+                         (symbol-name debian-emacs-flavor)
+                         "/site-lisp/haxe-mode")))    
+
+    ;; Only load haxe-mode if it has been installed.
+    (if (zerop (length (file-expand-wildcards haxedir)))
+        (message "haxe-mode not for this flavor.  Skipping.")
+
+      ;; The haxe package follows the Debian/GNU Linux 'emacsen' policy and
+      ;; byte-compiles its elisp files for each 'emacs flavor'.  The compiled code
+      ;; is then installed in a subdirectory of the respective site-lisp directory.
+      (debian-pkg-add-load-path-item haxedir)
+      
+      ;; Automatically start haXe files in haxe-mode.
+      (add-to-list (quote auto-mode-alist) (quote ("\\.hx\\'" . haxe-mode)))
+
+      ;; Make sure that Help can find the source code.  Has to be at the end.
+      (setq load-path
+            (nconc load-path (list "/usr/share/emacs/site-lisp/haxe-mode")))
+  
+      (autoload 'haxe-mode "haxe-mode" "Major mode for editing haXe code." t))))
--- haxe-1.18.orig/debian/haxe.lintian-overrides
+++ haxe-1.18/debian/haxe.lintian-overrides
@@ -0,0 +1,7 @@
+# Lintian overrides for haxe.
+#
+# The executables haxedoc and haxelib are not stripped because they
+# are created as concatenations of the virtual machine bootloader and
+# some bytecode, which makes stripping impossible (cf. OCaml Packaging
+# Policy).
+haxe binary: binary-or-shlib-defines-rpath
--- haxe-1.18.orig/debian/haxe-mode.el
+++ haxe-1.18/debian/haxe-mode.el
@@ -0,0 +1,332 @@
+;;; Commentary:
+
+;; ------------------------------------------------------------------------
+;; Copyright (C) 2006-2007 Jens Peter Secher
+
+;; 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 3 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, see <http://www.gnu.org/licenses/>.
+;; ------------------------------------------------------------------------
+
+;; This is haxe-mode, an Emacs major mode for the haXe programming
+;; language (http://haxe.org).
+
+;; haxe-mode is built on top of the excellent cc-mode, inspired by the
+;; guide http://cc-mode.sourceforge.net/derived-mode-ex.el.
+
+;; haxe-mode is NOT part of GNU Emacs.
+
+;;; Versions:
+;;
+;;    0.1.0 - Initial release.
+;;    0.1.1 - Fixed typedef indentation.
+;;            Fixed lexical analysis so that type names can contain digits.
+;;    0.2.0 - Base on java-mode instead of c++-mode.
+;;            Added compile-error parser for the haXe compiler output.
+;;            Loads of improvements.
+;;    0.2.1 - Fix buffer-local comment-start-skip problem.
+;;    0.2.2 - Recognise keyword override.
+;;    0.3.0 - Switched to GPLv3 license because that is what cc-mode is using.
+;;
+
+;;; Usage:
+;;
+;; Include something like this in your .emacs:
+;; (require 'haxe-mode)
+;; (defconst my-haxe-style
+;;   '("java" (c-offsets-alist . ((case-label . +)
+;;                                (arglist-intro . +)
+;;                                (arglist-cont-nonempty . 0)
+;;                                (arglist-close . 0)
+;;                                (cpp-macro . 0))))
+;;   "My haXe Programming Style")
+;; (add-hook 'haxe-mode-hook
+;;   (function (lambda () (c-add-style "haxe" my-haxe-style t))))
+;; (add-hook 'haxe-mode-hook
+;;           (function
+;;            (lambda ()
+;;              (setq tab-width 4)
+;;              (setq indent-tabs-mode t)
+;;              (setq fill-column 80)
+;;              (local-set-key [(return)] 'newline-and-indent))))
+
+
+;;; Code:
+
+(require 'cc-mode)
+(require 'cc-fonts)
+(require 'cc-langs)
+(require 'cc-bytecomp)
+(require 'compile)
+
+;; The language constants are needed when compiling.
+(eval-when-compile
+  (let ((load-path
+         (if (and (boundp 'byte-compile-dest-file)
+                  (stringp byte-compile-dest-file))
+             (cons (file-name-directory byte-compile-dest-file) load-path)
+           load-path)))
+    (load "cc-mode" nil t)
+    (load "cc-fonts" nil t)
+    (load "cc-langs" nil t)
+    (load "cc-bytecomp" nil t)))
+
+(eval-and-compile
+  ;; Tell the language constant system about haXe and base it on Java.
+  (c-add-language 'haxe-mode 'java-mode))
+
+;;; Lexer-level syntax (identifiers, tokens etc).
+
+;; No other operators in identifiers.
+(c-lang-defconst c-after-id-concat-ops
+  haxe nil)
+
+;; Conditional compilation prefix.
+(c-lang-defconst c-opt-cpp-prefix
+  haxe "\\s *#")
+
+;; No strings in conditional compilation.
+(c-lang-defconst c-cpp-message-directives
+  haxe nil)
+
+;; No file name in angle brackets or quotes in conditional compilation.
+(c-lang-defconst c-cpp-include-directives
+  haxe nil)
+
+;; No macro definition in conditional compilation.
+(c-lang-defconst c-opt-cpp-macro-define
+  haxe nil)
+
+;; Conditional compilation directives followed by expressions.
+(c-lang-defconst c-cpp-expr-directives
+  haxe '("if" "else"))
+
+;; No functions in conditional compilation.
+(c-lang-defconst c-cpp-expr-functions
+  haxe nil)
+
+;; haXe operators.
+(c-lang-defconst c-operators
+  haxe `(
+         ;; Preprocessor.
+         (prefix "#")
+         ;; Standard operators.
+         ,@(c-lang-const c-identifier-ops)
+         ;; Generics.
+         (postfix-if-paren "<" ">")
+         ;; Postfix.
+         (left-assoc "." "->")
+         (postfix "++" "--" "[" "]" "(" ")")
+         ;; Unary.
+         (prefix "++" "--" "+" "-" "!" "~" "new")
+         ;; Multiplicative.
+         (left-assoc "*" "/" "%")
+         ;; Additive.
+         (left-assoc "+" "-")
+         ;; Shift.
+         (left-assoc "<<" ">>" ">>>")
+         ;; Relational.
+         (left-assoc "<" ">" "<=" ">=")
+         ;; Iteration.
+         (left-assoc "...")
+         ;; Equality.
+         (left-assoc "==" "!=" "===" "!==")
+         ;; Bitwise and.
+         (left-assoc "&")
+         ;; Bitwise exclusive or.
+         (left-assoc "^")
+         ;; Bitwise or.
+         (left-assoc "|")
+         ;; Logical and.
+         (left-assoc "&&")
+         ;; Logical or.
+         (left-assoc "||")
+         ;; Assignment.
+         (right-assoc ,@(c-lang-const c-assignment-operators))
+         ;; Exception.
+         (prefix "throw")
+         ;; Sequence.
+         (left-assoc ",")))
+
+;; No overloading.
+(c-lang-defconst c-overloadable-operators
+  haxe nil)
+(c-lang-defconst c-opt-op-identitier-prefix
+  haxe nil)
+
+;;; Keywords.
+
+;; I will treat types uniformly below since they all start with capital
+;; letters.
+(c-lang-defconst c-primitive-type-kwds
+  haxe nil)
+
+;; TODO: check double occurrence of enum.
+;; Type-introduction is straight forward in haXe.
+(c-lang-defconst c-class-decl-kwds
+  haxe '( "class" "interface" "enum" "typedef" ))
+
+;; Recognises enum constants.
+;; TODO: find a way to also recognise parameterised constants.
+(c-lang-defconst c-brace-list-decl-kwds
+  haxe '( "enum" ))
+
+;; Keywords introducing declarations where the identifier follows directly
+;; after the keyword, without any type.
+(c-lang-defconst c-typeless-decl-kwds
+  haxe (append '( "function" "var" )
+               (c-lang-const c-class-decl-kwds)
+	       (c-lang-const c-brace-list-decl-kwds)))
+  
+;; Definition modifiers.
+(c-lang-defconst c-modifier-kwds
+  haxe '( "private" "public" "static" "override"))
+(c-lang-defconst c-other-decl-kwds
+  haxe nil)
+
+;; Namespaces.
+(c-lang-defconst c-ref-list-kwds
+ haxe '( "import" "package"))
+
+;; Statement keywords followed directly by a substatement.
+(c-lang-defconst c-block-stmt-1-kwds
+  haxe '( "do" "else" "try" ))
+
+;; Statement keywords followed by a paren sexp and then by a substatement.
+(c-lang-defconst c-block-stmt-2-kwds
+  haxe '( "for" "if" "switch" "while" "catch" ))
+
+;; Statement keywords followed by an expression or nothing.
+(c-lang-defconst c-simple-stmt-kwds
+  haxe '( "break" "continue" "return" "default" "new" ))
+
+;; No ';' inside 'for'.
+(c-lang-defconst c-paren-stmt-kwds
+  haxe nil)
+
+;; Keywords for constants.
+(c-lang-defconst c-constant-kwds
+  haxe '( "false" "true" "null" ))
+
+;; Keywords for expressions.
+(c-lang-defconst c-primary-expr-kwds
+  haxe '( "this" "super" ))
+
+(c-lang-defconst c-decl-hangon-kwds
+  haxe '( "in" ))
+
+;; No other labels.
+(c-lang-defconst c-before-label-kwds
+  haxe nil)
+
+;; No classes inside expressions.
+(c-lang-defconst c-inexpr-class-kwds
+  haxe nil)
+
+;; No brace lists inside expressions.
+(c-lang-defconst c-inexpr-brace-list-kwds
+  haxe nil)
+
+;; Allow '=' in typedefs so they are treated as classes.
+(c-lang-defconst c-block-prefix-disallowed-chars
+  haxe (set-difference (c-lang-const c-block-prefix-disallowed-chars java)
+                       '(?=)))
+
+;; All identifiers starting with a capital letter are types.
+(c-lang-defconst c-cpp-matchers
+  haxe (append
+        (c-lang-const c-cpp-matchers c)
+        '(("\\<\\([A-Z][A-Za-z0-9_]*\\)\\>" 1 font-lock-type-face))))
+
+;; Generic types.
+(c-lang-defconst c-recognize-<>-arglists
+  haxe t)
+
+;; Fontification degrees.
+(defconst haxe-font-lock-keywords-1 (c-lang-const c-matchers-1 haxe)
+  "Minimal highlighting for haxe mode.")
+(defconst haxe-font-lock-keywords-2 (c-lang-const c-matchers-2 haxe)
+  "Fast normal highlighting for haxe mode.")
+(defconst haxe-font-lock-keywords-3 (c-lang-const c-matchers-3 haxe)
+  "Accurate normal highlighting for haxe mode.")
+(defvar haxe-font-lock-keywords haxe-font-lock-keywords-3
+  "Default expressions to highlight in haxe mode.")
+
+(defvar haxe-mode-syntax-table nil
+  "Syntax table used in HaXe mode buffers.")
+(or haxe-mode-syntax-table
+    (setq haxe-mode-syntax-table
+          (funcall (c-lang-const c-make-mode-syntax-table haxe))))
+
+(defvar haxe-mode-abbrev-table nil
+  "Abbreviation table used in haxe mode buffers.")
+(c-define-abbrev-table 'haxe-mode-abbrev-table
+  ;; Keywords that, if they occur first on a line, might alter the
+  ;; syntactic context, and which therefore should trigger
+  ;; reindentation when they are completed.
+  '(("else" "else" c-electric-continued-statement 0)
+    ("while" "while" c-electric-continued-statement 0)
+    ("catch" "catch" c-electric-continued-statement 0)))
+
+(defvar haxe-mode-map ()
+  "Keymap used in haxe mode buffers.")
+(if haxe-mode-map
+    nil
+  (setq haxe-mode-map (c-make-inherited-keymap)))
+
+(add-to-list 'auto-mode-alist '("\\.hx\\'" . haxe-mode))
+
+;; Tell compilation-mode how to parse error messages.  You need to set
+;; compilation-error-screen-columns to nil to get the right
+;; interpretation of tabs.
+(add-to-list 'compilation-error-regexp-alist
+             '("^\\([^: ]+\\):\\([0-9]+\\): characters \\([0-9]+\\)-[0-9]+ : "
+               1 2 3))
+
+(defcustom haxe-mode-hook nil
+  "*Hook called by `haxe-mode'."
+  :type 'hook
+  :group 'c)
+
+(defun haxe-mode ()
+  "Major mode for editing haXe code.
+
+The hook `c-mode-common-hook' is run with no args at mode
+initialization, then `haxe-mode-hook'.
+
+Key bindings:
+\\{haxe-mode-map}"
+  (interactive)
+  (kill-all-local-variables)
+  (c-initialize-cc-mode t)
+  (set-syntax-table haxe-mode-syntax-table)
+  (setq major-mode 'haxe-mode
+        mode-name "haXe"
+        local-abbrev-table haxe-mode-abbrev-table
+        abbrev-mode t)
+  (use-local-map haxe-mode-map)
+  ;; `c-init-language-vars' is a macro that is expanded at compile
+  ;; time to a large `setq' with all the language variables and their
+  ;; customized values for our language.
+  (c-init-language-vars haxe-mode)
+  ;; `c-common-init' initializes most of the components of a CC Mode
+  ;; buffer, including setup of the mode menu, font-lock, etc.
+  ;; There's also a lower level routine `c-basic-common-init' that
+  ;; only makes the necessary initialization to get the syntactic
+  ;; analysis and similar things working.
+  (c-common-init 'haxe-mode)
+  (run-hooks 'c-mode-common-hook 'haxe-mode-hook)
+  (c-update-modeline))
+
+(provide 'haxe-mode)
+
+;;; haxe-mode.el ends here.
--- haxe-1.18.orig/debian/bash_completion
+++ haxe-1.18/debian/bash_completion
@@ -0,0 +1,69 @@
+#-*- mode: shell-script; -*-
+
+# haxe(1) bash completion specification.
+# Put in the public domain 2008 by Jens Peter Secher.
+
+_haxe()
+{
+    local cur prev options    
+    COMPREPLY=()
+    cur=${COMP_WORDS[COMP_CWORD]}
+    prev=${COMP_WORDS[COMP_CWORD-1]}
+    options='-cp -js -as3 -swf -swf-version -swf-header -swf-lib \
+             -neko -x -xml -main -lib -D -resource -exclude -v \
+             -debug -prompt -cmd --flash-strict --override --no-traces \
+             --flash-use-stage --neko-source --gen-hx-classes --next \
+             --altfmt --auto-xml --display --no-output --times -help \
+             --help'
+    case $prev in
+	-cp|-as3)
+            COMPREPLY=( $( compgen -d -- ${cur} ) )
+            ;;
+	-js)
+            COMPREPLY=( $( compgen -o filenames -G "${cur}*.js" ) )
+            ;;
+	-swf|-swf-lib)
+            COMPREPLY=( $( compgen -o filenames -G "${cur}*.swf" ) )
+            ;;
+	-neko|-x)
+            COMPREPLY=( $( compgen -o filenames -G "${cur}*.n" ) )
+            ;;
+	-xml)
+            COMPREPLY=( $( compgen -o filenames -G "${cur}*.xml" ) )
+            ;;
+	-exclude)
+            COMPREPLY=( $( compgen -o filenames -G "${cur}*.hx" ) )
+            ;;
+        -swf-version)
+	    local swf_versions='6 7 8 9'
+	    COMPREPLY=( $( compgen -W "${swf_versions}" -- ${cur} ) )
+	    ;;
+        -swf-header)
+            ## An improvement here would be to restrict to n:n:n:c.
+            ;;
+        -main)
+            ## An improvement here would be to find class Xxx in *.hx
+            ## files, alternatively just Xxx.hx.
+            ;;
+        -lib)
+            if haxelib list 2>&1 > /dev/null; then
+                local libraries=`haxelib list | sed 's/:.*//g'`
+                COMPREPLY=( $( compgen -W "${libraries}" -- ${cur} ) )
+            fi
+            ;;
+        -D)
+            ## An improvement here would be to grep in hx files after #if xxx.
+            ;;
+        -cmd)
+            ## Nothing.
+            ;;
+        -resource)
+            ## Nothing.
+	    ;;
+	*)
+	    COMPREPLY=( $( compgen -W "${options}" -- ${cur} ) )
+	    ;;
+    esac
+    return 0
+}
+complete -F _haxe -o filenames haxe
--- haxe-1.18.orig/debian/compat
+++ haxe-1.18/debian/compat
@@ -0,0 +1 @@
+5
--- haxe-1.18.orig/debian/rules
+++ haxe-1.18/debian/rules
@@ -0,0 +1,91 @@
+#!/usr/bin/make -f
+# debian/rules for haXe.
+
+package := $(firstword $(shell dh_listpackages))
+
+# Do we have a native ocaml compiler?  If not, use bytecode.
+ifeq ($(shell test -x /usr/bin/ocamlopt -o -x /usr/bin/ocamlopt.opt && echo true),true)
+  OCAMLTYPE = install_native.ml
+  OCAMLSTRIP =
+  OCAMLDEPS = ocaml:Depends=
+else
+  OCAMLTYPE = install_bytecode.ml
+  OCAMLSTRIP = -Xhaxe
+  OCAMLDEPS = ocaml:Depends=ocaml-base-nox-$(shell ocamlfind ocamlc -version)
+endif
+
+# The upstream CVS repository.
+motiontwin := :pserver:anonymous@cvs.motion-twin.com:/cvsroot
+cvs := cvs -z3 -d $(motiontwin)
+version := $(shell dpkg-parsechangelog | grep ^Version | cut -d' ' -f2 | cut -d':' -f2 | cut -d'-' -f1)
+date := 2008-02-25
+repackdir := $(package)-$(version)
+
+# Repackage the source.
+get-orig-source:
+	echo "*** Please hit enter on login (empty password) ***"
+	$(cvs) login
+	$(cvs) export -N -d $(repackdir) -D $(date) haxe
+	$(cvs) export -N -d $(repackdir) -D $(date) ocaml/swflib
+	$(cvs) export -N -d $(repackdir) -D $(date) ocaml/extc
+	$(cvs) export -N -d $(repackdir) -D $(date) ocaml/extlib-dev
+	$(cvs) export -N -d $(repackdir) -D $(date) ocaml/xml-light
+	$(cvs) export -N -d $(repackdir) -D $(date) neko/libs/include/ocaml
+	find $(repackdir) -name .cvsignore -o -name '*.vcproj' \
+		-o -name '*.sln' -o -name '*.bat' | xargs rm -rf
+	tar cfz $(package)_$(version).orig.tar.gz $(repackdir)
+	rm -rf $(repackdir)
+
+# Use dpath
+include /usr/share/dpatch/dpatch.make
+
+build: patch-stamp build-stamp
+build-stamp: 
+	dh_testdir
+	ocaml debian/$(OCAMLTYPE)
+	$(CURDIR)/bin/haxe $(CURDIR)/haxe/std/tools/haxedoc/haxedoc.hxml
+	$(CURDIR)/bin/haxe $(CURDIR)/haxe/std/tools/haxelib/haxelib.hxml
+	touch $@
+
+binary-indep: build-stamp
+
+binary-arch: build-stamp
+	dh_testdir
+	dh_testroot
+	mkdir -p $(CURDIR)/debian/haxe/usr/share/lintian/overrides
+	cp $(CURDIR)/debian/haxe.lintian-overrides $(CURDIR)/debian/haxe/usr/share/lintian/overrides/haxe
+	echo $(OCAMLDEPS) >> $(CURDIR)/debian/haxe.substvars
+	dh_installdocs
+	dh_install debian/haxe-mode.el usr/share/emacs/site-lisp/haxe-mode
+	dh_installemacsen
+	dh_install
+	mkdir -p $(CURDIR)/debian/haxe/etc/bash_completion.d
+	cp $(CURDIR)/debian/bash_completion $(CURDIR)/debian/haxe/etc/bash_completion.d/haxe
+	dh_installman debian/haxe.1 debian/haxelib.1 debian/haxedoc.1
+	dh_installchangelogs haxe/doc/CHANGES.txt
+	dh_strip -Xhaxedoc -Xhaxelib $(OCAMLSTRIP)
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+
+clean: clean-patched unpatch
+clean-patched:
+	dh_testdir
+	dh_testroot
+	-rm -f *-stamp
+	-rm -rf $(CURDIR)/bin
+	-rm -f $(CURDIR)/haxe/lexer.ml
+	find $(CURDIR) -name '*.o' -o -name '*.cmi' -o -name '*.cmx' -o -name '*.cmo' \
+		-o -name '*.cma' -o -name '*.a' -o -name '*.cmxa' -o -name '*.n' \
+		| xargs rm -rf
+	rm -f $(CURDIR)/haxedoc
+	rm -f $(CURDIR)/haxelib
+	dh_clean
+
+.PHONY: binary binary-indep binary-arch build clean clean-patched
--- haxe-1.18.orig/debian/control
+++ haxe-1.18/debian/control
@@ -0,0 +1,20 @@
+Source: haxe
+Section: devel
+Priority: optional
+Maintainer: Jens Peter Secher <jps@debian.org>
+Standards-Version: 3.7.3
+Build-Depends: debhelper (>= 5), dpatch, ocaml, ocaml-best-compilers, ocaml-findlib, libextlib-ocaml-dev, zlib1g-dev, emacs21 | emacsen, neko (>= 1.6.0)
+
+Package: haxe
+Architecture: any
+Section: devel
+Depends: ${shlibs:Depends}, ${ocaml:Depends}
+Description: Web-oriented universal programming language
+ Programming language similar to JavaScript, but with full-featured
+ type system and generics.  The command-line compiler can generate
+ Flash SWF files for client-side use, Neko bytecode for server-side
+ use on Apache, or JavaScript using Browser DHTML API to create AJAX
+ web applications.
+ .
+ More information can be found at Nicolas Cannasse's web site
+ http://haxe.org
--- haxe-1.18.orig/debian/copyright
+++ haxe-1.18/debian/copyright
@@ -0,0 +1,154 @@
+This is the Debian packaging of the haXe compiler, compiled by Jens
+Peter Secher <jps@debian.org>.
+
+The original source was extracted from the public CVS repository
+(:pserver:anonymous@cvs.motion-twin.com:/cvsroot) as described in the
+get-orig-source target in the debian/rules file of the Debian source
+package.
+
+---[ haXe compiler License begin ]---
+
+  Copyright (c)2005 Nicolas Cannasse
+
+  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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 
+  USA.
+
+---[ haXe compiler License end ]---
+
+The full GNU General Public License is located in the file
+/usr/share/common-licenses/GPL-2 on a Debian system.
+
+
+The haXe compiler makes use of the OCaml Extended standard Library
+(ExtLib) which licensed under the GNU Lesser General Public License.
+
+Apart from 
+
+  Copyright (C) 2003,2004 Nicolas Cannasse, 
+
+the ExtLib has the following additional copyright holders.
+
+  ocaml/dllist.ml: 
+    Copyright (C) 2004 Brian Hurt, Jesse Guardiani
+
+  ocaml/dynArray.ml: 
+    Copyright (C) 2003 Brian Hurt,
+    Copyright (C) 2003 Nicolas Cannasse
+
+  ocaml/extArray.ml:
+    Copyright (C) 2005 Richard W.M. Jones (rich @ annexia.org)
+
+  ocaml/extList.ml:
+    Copyright (C) 2003 Brian Hurt
+    Copyright (C) 2003 Nicolas Cannasse
+
+  ocaml/Makefile:
+    Makefile contributed by Alain Frisch
+
+  ocaml/OptParse.ml:
+    Copyright (C) 2004 Bardur Arantsson
+
+  ocaml/pMap.ml:
+    Copyright (C) 1996-2003 Xavier Leroy, Nicolas Cannasse, Markus Mottl
+
+  ocaml/std.ml:
+    Copyright (C) 2003 Nicolas Cannasse and Markus Mottl
+
+  ocaml/uChar.ml:
+    Copyright (C) 2002, 2003 Yamagata Yoriyuki
+
+  ocaml/uTF8.ml:
+    Copyright 2002, 2003 (C) Yamagata Yoriyuki. 
+
+---[ ExtLib License begin ]---
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version,,
+  with the special exception on linking described in file LICENSE.
+
+  This library 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
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 
+  USA.
+
+---[ ExtLib License end ]---
+
+The full GNU General Public License is located in the file
+/usr/share/common-licenses/LGPL-2.1 on a Debian system.
+
+
+The haXe compile-time library in /usr/share/haxe is distributed under
+the following license.
+
+---[ haXe library license begin ]---
+
+  Copyright (c) 2005, The haXe Project Contributors
+  All rights reserved.
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+    - Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    - Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE HAXE PROJECT CONTRIBUTORS "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE HAXE PROJECT CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+---[ haXe library license end ]---
+
+
+The Emacs mode for haXe was written by yours truly and has the
+following license.
+
+---[ haxe-mode license begin ]---
+
+  Copyright (C) 2006-2007 Jens Peter Secher
+
+  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 3 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, see <http://www.gnu.org/licenses/>.
+
+---[ haxe-mode license end ]---
+
+
+The full GNU General Public License is located in the file
+/usr/share/common-licenses/GPL-3 on a Debian system.
--- haxe-1.18.orig/debian/install_native.ml
+++ haxe-1.18/debian/install_native.ml
@@ -0,0 +1,152 @@
+(*
+ *  Haxe installer
+ *  Copyright (c)2005 Nicolas Cannasse
+ *
+ *  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
+ *)
+
+#load "unix.cma"
+
+(* ----- BEGIN CONFIGURATION ---- *)
+
+let bytecode = false
+let native = true
+
+(* ------ END CONFIGURATION ----- *)
+
+let os_type = Sys.os_type
+
+(* remove the comment to compile with windows using ocaml cygwin *)
+(* let os_type = "Cygwin" *)
+
+let obj_ext = match os_type with "Win32" -> ".obj" | _ -> ".o"
+let exe_ext = match os_type with "Win32" | "Cygwin" -> ".exe" | _ -> ""
+let ocamloptflags = match os_type with "Unix" -> "-cclib -fno-stack-protector " | _ -> ""
+
+let zlib_path = match os_type with
+	| "Win32" -> "../ocaml/extc/zlib/"
+	| _ -> "./"
+
+let zlib = match os_type with
+	| "Win32" -> zlib_path ^ "zlib.lib"
+	| _ ->
+		try
+			List.find Sys.file_exists ["/usr/lib/libz.dylib";"/usr/lib64/libz.so.1";"/usr/lib/libz.so.1";"/lib/libz.so.1"]
+		with
+			Not_found ->
+				failwith "LibZ was not found on your system, please install it or modify the search directories in the install script"
+
+let msg m =
+	prerr_endline m;
+	flush stdout
+
+let command c =
+	msg ("> " ^ c);
+	if Sys.command c <> 0 then failwith ("Error while running " ^ c)
+
+let cvs root cmd =
+	command ("cvs -z3 -d" ^ root ^ " " ^ cmd)
+
+let ocamlc file =
+	if bytecode then command ("ocamlc -c " ^ file);
+	if native then command ("ocamlopt -c " ^ ocamloptflags ^ file)
+
+let modules l ext =
+	String.concat " " (List.map (fun f -> f ^ ext) l)
+
+;;
+
+let motiontwin = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot" in
+
+let download_libs() =
+	cvs motiontwin "co ocaml/swflib";
+	cvs motiontwin "co ocaml/extc";
+	cvs motiontwin "co ocaml/extlib-dev";
+	cvs motiontwin "co ocaml/xml-light";
+	cvs motiontwin "co neko/libs/include/ocaml"
+in
+
+let download() =
+	msg "*** Please hit enter on login (empty password) ***";
+	cvs motiontwin "login";
+	cvs motiontwin "co haxe";
+	download_libs();
+in
+
+let compile_libs() =
+	(* EXTLIB *)
+	Sys.chdir "ocaml/extlib-dev";
+	command ("ocaml install.ml -nodoc -d .. " ^ (if bytecode then "-b " else "") ^ (if native then "-n" else ""));
+	msg "";
+	Sys.chdir "../..";
+
+	(* EXTC *)
+	Sys.chdir "ocaml/extc";
+	let c_opts = (if Sys.ocaml_version < "3.08" then " -ccopt -Dcaml_copy_string=copy_string " else " ") in
+	command ("ocamlc" ^ c_opts ^ " -I ../" ^ zlib_path ^ " extc_stubs.c");
+
+	let options = "-cclib ../ocaml/extc/extc_stubs" ^ obj_ext ^ " -cclib " ^ zlib ^ " extc.mli extc.ml" in
+	if bytecode then command ("ocamlc -a -o extc.cma " ^ options);
+	if native then command ("ocamlopt -a -o extc.cmxa " ^ options);
+	Sys.chdir "../..";
+
+	(* SWFLIB *)
+	Sys.chdir "ocaml/swflib";
+	let files = "-I .. -I ../extc as3.mli as3hl.mli as3code.ml as3parse.ml as3hlparse.ml swf.ml swfZip.ml actionScript.ml swfParser.ml" in
+	if bytecode then command ("ocamlc -a -o swflib.cma " ^ files);
+	if native then command ("ocamlopt -a -o swflib.cmxa " ^ files);
+	Sys.chdir "../..";
+
+	(* XML-LIGHT *)
+	Sys.chdir "ocaml/xml-light";
+	command ("ocamlyacc	xml_parser.mly");
+	command ("ocamlc xml.mli dtd.mli xml_parser.mli xml_lexer.mli");
+	command ("ocamllex xml_lexer.mll");
+	let files = "xml_parser.ml xml_lexer.ml dtd.ml xmlParser.mli xmlParser.ml xml.ml" in
+	if bytecode then command ("ocamlc -a -o xml-light.cma " ^ files);
+	if native then command ("ocamlopt -a -o xml-light.cmxa " ^ files);
+	Sys.chdir "../..";
+
+in
+
+let compile() =
+
+	(try Unix.mkdir "bin" 0o740 with Unix.Unix_error(Unix.EEXIST,_,_) -> ());
+
+	compile_libs();
+
+	(* HAXE *)
+	Sys.chdir "haxe";
+	command "ocamllex lexer.mll";
+	ocamlc "-I ../ocaml plugin.ml ast.ml lexer.ml";
+	ocamlc "-I ../ocaml -pp camlp4o parser.ml";
+	ocamlc "-I ../ocaml -I ../ocaml/swflib -I ../ocaml/xml-light type.ml plugin.ml transform.ml typer.ml genswf9.ml genswf8.ml genswf.ml genxml.ml genjs.ml genas3.ml";
+	ocamlc "-I ../ocaml -I ../neko/libs/include/ocaml ../neko/libs/include/ocaml/nast.ml ../neko/libs/include/ocaml/nxml.ml ../neko/libs/include/ocaml/binast.ml genneko.ml";
+	ocamlc "-I ../ocaml -I ../ocaml/extc main.ml";
+	let mlist = ["plugin";"ast";"lexer";"parser";"type";"transform";"typer";"genswf9";"genswf8";"genswf";"../neko/libs/include/ocaml/nast";"../neko/libs/include/ocaml/nxml";"../neko/libs/include/ocaml/binast";"genneko";"genxml";"genjs";"genas3";"main"] in
+	let libs = ["../ocaml/extLib";"../ocaml/extc/extc";"../ocaml/swflib/swflib";"../ocaml/xml-light/xml-light";"unix"] in
+	let makelibs ext = " " ^ String.concat " " (List.map (fun l -> l ^ ext) libs) ^ " " in
+	if bytecode then command ("ocamlc -custom -o ../bin/haxe" ^ exe_ext ^ makelibs ".cma" ^ modules mlist ".cmo");
+	if native then command ("ocamlopt -o ../bin/haxe" ^ exe_ext ^ makelibs ".cmxa" ^ modules mlist ".cmx");
+
+in
+let startdir = Sys.getcwd() in
+try
+	compile();
+	Sys.chdir startdir;
+with
+	Failure msg ->
+		Sys.chdir startdir;
+		prerr_endline msg; exit 1
--- haxe-1.18.orig/debian/haxelib.1
+++ haxe-1.18/debian/haxelib.1
@@ -0,0 +1,72 @@
+.TH HAXELIB 1 "Nov 6, 2006" ""
+.SH NAME
+haxelib \- Haxe Library Manager
+.SH SYNOPSIS
+.BR "haxelib " "[command] [options...]"
+.SH DESCRIPTION
+.PP
+haxelib is a command-line tool to manage both the global repository and your
+local repository of haXe libraries and projects.
+.SH COMMANDS
+.TP
+.BI "install " "library [version]"
+Install a given library from the global repository.  Once a project is
+installed, you can simply use \fBhaxe \-lib \fR\fB\fIlibrary\fR
+\fI...\fR to be able to use it from your application.  By default, this
+is the current version of the project that is used.  If you want to use
+a specific version of the project, use \fBhaxe \-lib
+\fIlibrary\fR:\fIversion\fR ...
+.TP
+.B "list"
+List all installed libraries and their versions.
+.TP
+.B "upgrade"
+Upgrade all installed libraries to their latest version.
+.TP
+.BI "remove " "library [version]"
+Remove a given library.
+.TP
+.BI "set " "library [version]"
+Set the current version for a library. The version must be already installed.
+.TP
+.BI "search " word
+List global libraries matching a word.
+.TP
+.BI "info " library
+List informations on a given library.
+.TP
+.BI "user " library
+List informations on a given user on the global repository.
+.TP
+.BI "register " name
+Register a new user in the global repository.
+.TP
+.BI "submit " library
+Submit or update a library to the global repository.
+.TP
+.B "setup"
+Set the haxelib repository path.
+.TP
+.BI "config " library
+Print the local repository path.
+.TP
+.BI "path " libraries...
+List the path to the given libraries.
+.TP
+.BI "run " "library [arguments...]"
+Run the specified library with arguments if it provides a run script. Be
+careful about trusting libraries this way since the script can damage
+your system.
+.TP
+.BI "test " library
+install the specified library locally.
+.TP
+.BI "dev"
+Set the development directory for a given project.
+.SH AUTHOR
+haXe is written by Nicolas Cannasse for Motion-Twin.
+.SH SEE ALSO
+.BR "haxe" (1),
+.BR "haxedoc" (1).
+.SH WEB
+.IR "http://haxe.org" .
--- haxe-1.18.orig/debian/emacsen-remove
+++ haxe-1.18/debian/emacsen-remove
@@ -0,0 +1,9 @@
+#!/bin/sh -e
+# /usr/lib/emacsen-common/packages/remove/haxe-mode
+FLAVOR=$1
+PACKAGE=haxe-mode
+if [ ${FLAVOR} == emacs-snapshot -o ${FLAVOR} == emacs22 ]; then
+    echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+    rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+fi
+exit 0
--- haxe-1.18.orig/debian/patches/25-debian-file-locations.dpatch
+++ haxe-1.18/debian/patches/25-debian-file-locations.dpatch
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 25-debian-file-locations.dpatch by Jens Peter Secher <jps@debian.org>
+##
+## DP: Set class path to /usr/share/haxe/.
+
+@DPATCH@
+diff -urNad haxe-20061106~/haxe/main.ml haxe-20061106/haxe/main.ml
+--- haxe-20061106~/haxe/main.ml	2006-11-06 18:11:03.000000000 +0100
++++ haxe-20061106/haxe/main.ml	2006-11-06 18:14:23.995424381 +0100
+@@ -155,7 +155,7 @@
+ 	with
+ 		Not_found ->
+ 			if Sys.os_type = "Unix" then
+-				Plugin.class_path := ["/usr/lib/haxe/std/";"/usr/local/lib/haxe/std/";"";"/"]
++				Plugin.class_path := ["./haxe/std/";"/usr/share/haxe/";"./"]
+ 			else
+ 				let base_path = normalize_path (try Extc.executable_path() with _ -> "./") in
+ 				Plugin.class_path := [base_path ^ "std/";"";"/"]);
--- haxe-1.18.orig/debian/patches/00list
+++ haxe-1.18/debian/patches/00list
@@ -0,0 +1 @@
+25-debian-file-locations
--- haxe-1.18.orig/debian/haxedoc.1
+++ haxe-1.18/debian/haxedoc.1
@@ -0,0 +1,14 @@
+.TH HAXEDOC 1 "Nov 6, 2006" ""
+.SH NAME
+haxedoc \- Haxe Documentation Generator
+.SH SYNOPSIS
+\fBhaxedoc\fR [xmlfiles...] [\fB-f \fIfilter\fR]
+.SH DESCRIPTION
+.PP
+haxedoc is a command-line tool to produce documentation from haXe programs.
+.SH AUTHOR
+haXe is written by Nicolas Cannasse for Motion-Twin.
+.SH SEE ALSO
+.BR "haxe" (1),
+.SH WEB
+.IR "http://haxe.org" .
--- haxe-1.18.orig/debian/haxe.install
+++ haxe-1.18/debian/haxe.install
@@ -0,0 +1,4 @@
+haxe/std/* usr/share/haxe
+haxedoc usr/bin
+haxelib usr/bin
+bin/haxe usr/bin
--- haxe-1.18.orig/debian/changelog
+++ haxe-1.18/debian/changelog
@@ -0,0 +1,204 @@
+haxe (1:1.18-1~bpo40+1) etch-backports; urgency=low
+
+  * Backport to Etch, which requires dropping the dependency on camlp4.
+
+ -- Jens Peter Secher <jps@debian.org>  Sat, 01 Mar 2008 12:32:55 +0100
+
+haxe (1:1.18-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Jens Peter Secher <jps@debian.org>  Tue, 26 Feb 2008 19:55:05 +0100
+
+haxe (1:1.17-1~bpo40+2) etch-backports; urgency=low
+
+  * Rebuild with fixed neko backport to get dependency right.
+
+ -- Jens Peter Secher <jps@debian.org>  Tue, 05 Feb 2008 22:10:39 +0100
+
+haxe (1:1.17-1~bpo40+1) etch-backports; urgency=low
+
+  * Backport to Etch, which requires dropping the dependency on camlp4.
+
+ -- Jens Peter Secher <jps@debian.org>  Tue, 05 Feb 2008 22:10:39 +0100
+
+haxe (1:1.17-1) unstable; urgency=low
+
+  * New upstream release.
+  * Added a bash completion specification.
+  * Bumped Standards-Version to 3.7.3.
+
+ -- Jens Peter Secher <jps@debian.org>  Mon, 14 Jan 2008 23:17:46 +0100
+
+haxe (1:1.16-1~bpo40+1) etch-backports; urgency=low
+
+  * Backport to Etch, which requires dropping the dependency on camlp4.
+
+ -- Jens Peter Secher <jps@debian.org>  Mon, 19 Nov 2007 21:31:56 +0100
+
+haxe (1:1.16-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Jens Peter Secher <jps@debian.org>  Wed, 07 Nov 2007 22:15:33 +0100
+
+haxe (1:1.15-2) unstable; urgency=low
+
+  * Make sure there is a Caml Preprocessor & Pretty Printer (camlp4) when
+    building.
+    (Closes: #441510)
+
+ -- Jens Peter Secher <jps@debian.org>  Mon, 10 Sep 2007 23:18:51 +0200
+
+haxe (1:1.15-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Jens Peter Secher <jps@debian.org>  Wed, 29 Aug 2007 21:28:45 +0200
+
+haxe (1:1.14-3) unstable; urgency=low
+
+  * The bytecode compiler should have the same name as the native
+    compiler, which fixes FTBFS on S390, M68k, Arm, and MIPS.
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 29 Jul 2007 15:07:57 +0200
+
+haxe (1:1.14-2) unstable; urgency=low
+
+  * Use $CURDIR everywhere in debian/rules.
+    (Closes: #435026)
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 29 Jul 2007 01:11:06 +0200
+
+haxe (1:1.14-1) unstable; urgency=low
+
+  * New upstream release.
+  * Updated man pages.
+  * Prefer emacs22 over emacs21.
+    (Closes: #434918)
+  * Simplify install, removal, and load-path by using symlinks instead of
+    copying source files.
+
+ -- Jens Peter Secher <jps@debian.org>  Sat, 28 Jul 2007 11:43:58 +0200
+
+haxe (1:1.13-1bpo1) stable; urgency=low
+
+  * Backport to etch (no change).
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 27 May 2007 10:58:46 +0200
+
+haxe (1:1.13-1) unstable; urgency=low
+
+  * New upstream release.
+  * Updated man pages.
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 27 May 2007 00:44:04 +0200
+
+haxe (1:1.12-1) unstable; urgency=low
+
+  * Switched to upstream version numbers.
+  * New version of haxe-mode.el which is now properly setup for emacsen
+    (but only for emacs-snapshot or emacs22, since haxe-mode depends on a
+    recent cc-mode).
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 18 Mar 2007 15:25:36 +0100
+
+haxe (20070307-1) experimental; urgency=low
+
+  * New upstream release (~1.12).
+  * Updated man page accordingly.
+
+ -- Jens Peter Secher <jps@debian.org>  Wed,  7 Mar 2007 00:30:04 +0100
+
+haxe (20070224-1) experimental; urgency=low
+
+  * New upstream release (~1.11) matches Neko version 1.5.3.
+  * New version of haxe-mode for Emacs.
+
+ -- Jens Peter Secher <jps@debian.org>  Sat, 24 Feb 2007 16:10:56 +0100
+
+haxe (20070106-1) experimental; urgency=low
+
+  * New upstream release (~1.10).
+  * Updated manpages.
+  * Include haxe-mode for Emacs.
+  
+ -- Jens Peter Secher <jps@debian.org>  Sat,  6 Jan 2007 19:01:42 +0100
+
+haxe (20061201-1) experimental; urgency=low
+
+  * New upstream release.
+  * Include lintian overrides for unstripped bytecode files.
+
+ -- Jens Peter Secher <jps@debian.org>  Fri,  1 Dec 2006 19:18:02 +0100
+
+haxe (20061106-1bpo1) stable; urgency=low
+
+  * Change the dependencies to backport to Sarge.
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 12 Nov 2006 15:16:31 +0100
+
+haxe (20061106-1) experimental; urgency=low
+
+  * New upstream release (~1.08).
+     - Fixes flash6 code generation. 
+       (Closes: #396141)
+  * Use neko to build haxelib and haxedoc executables, both of which
+    searches for the libneko.so by use of -rpath in /usr/lib/neko since we
+    do not want this private library to end up in /usr/lib.
+
+ -- Jens Peter Secher <jps@debian.org>  Mon,  6 Nov 2006 18:21:09 +0100
+
+haxe (20060912-2) unstable; urgency=low
+
+  * Fixed build failure on architectures without a native ocaml compiler.
+  * Added Tag field to control file to test Enrico Zini's
+    debtags-updatecontrol.
+  * Changed description to match that on haxe.org .
+
+ -- Jens Peter Secher <jps@debian.org>  Wed, 13 Sep 2006 09:38:12 +0200
+
+haxe (20060912-1) unstable; urgency=low
+
+  * New upstream release (1.07).
+
+ -- Jens Peter Secher <jps@debian.org>  Tue, 12 Sep 2006 21:39:22 +0200
+
+haxe (20060715-2) unstable; urgency=low
+
+  * Fixed build failure on architectures without a native ocaml compiler,
+    thanks to Samuel Mimram and Paul Wise.
+    (Closes: #378373)
+  * Fixed misspelling in package description.
+    (Closes: #378631)  
+  * Updated manual page.
+
+ -- Jens Peter Secher <jps@debian.org>  Sat, 22 Jul 2006 10:39:48 +0200
+
+haxe (20060715-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Jens Peter Secher <jps@debian.org>  Sat, 15 Jul 2006 11:13:35 +0200
+
+haxe (20060606-2) experimental; urgency=low
+
+  * Avoid splitting off the arch-independent library files into a separate
+    package.
+
+ -- Jens Peter Secher <jps@debian.org>  Wed,  7 Jun 2006 23:05:35 +0200
+
+haxe (20060606-1) experimental; urgency=low
+
+  * Included all copyright holders from the OCaml Extended standard
+    Library (ExtLib).
+  * Bumped Standards-Version to 3.7.2.
+
+ -- Jens Peter Secher <jps@debian.org>  Tue,  6 Jun 2006 21:50:56 +0200
+
+haxe (1.0-1) experimental; urgency=low
+
+  * Inital package.
+    (Closes: #365425).
+
+ -- Jens Peter Secher <jps@debian.org>  Sun, 30 Apr 2006 00:17:24 +0200
--- haxe-1.18.orig/debian/haxe.1
+++ haxe-1.18/debian/haxe.1
@@ -0,0 +1,118 @@
+.TH HAXE 1 "January 6, 2007" ""
+.SH NAME
+haxe \- compile haXe programs to SWF, Neko, or JavaScript.
+.SH SYNOPSIS
+\fBhaxe\fR [options...] \fIclass_names\fR ...
+.SH DESCRIPTION
+.B haxe
+is a command-line compiler which compiles haXe programs into client-side
+Flash SWF, server-side Neko bytecode in Apache, or simply JavaScript.
+.PP
+haXe programs are similar to JavaScript, but has a full-featured type
+system and generics.
+.SH OPTIONS
+.TP
+.BI "\-cp " path
+Add a directory to find source files.
+.TP
+.BI "\-js " file
+Compile code to JavaScript file.
+.TP
+.BI "\-as3 " directory
+Generate AS3 code into target directory.
+.TP
+.BI "\-swf " file
+Compile code to Flash SWF file.
+.TP
+.BI "\-swf\-version " version
+Change the SWF version (6,7,8,9).
+.TP
+.BI "\-swf\-header " header
+Define SWF header (width:height:fps:color).
+.TP
+.BI "\-swf\-lib " file
+Add the SWF library to the compiled SWF.
+.TP
+.BI "\-neko " file
+Compile code to Neko Binary.
+.TP
+.BI "\-x " file
+Shortcut for compiling and executing a neko file.
+.TP
+.BI "\-xml " file
+Generate XML types description.
+.TP
+.BI "\-main " class
+Select startup class.
+.TP
+.BI "\-lib " library[:version]
+Use a haxelib library.
+.TP
+.BI "\-D " var
+Define the macro variable.
+.TP
+.BI "\-resource " file@name
+Add a named resource file.
+.TP
+.BI "\-exclude " filename
+Do not generate code for classes listed in this file.
+.TP
+.B "\-v"
+Turn on verbose mode.
+.TP
+.B "\-debug"
+Add debug informations to the compiled code.
+.TP
+.B "\-prompt"
+Prompt on error.
+.TP
+.B "\-cmd"
+Run the specified command after successful compilation.
+.TP
+.B "\-\-flash\-strict"
+More type strict flash API.
+.TP
+.B "\-\-override"
+Ensure that overriden methods are declared with 'override'.
+.TP
+.B "\-\-no\-traces"
+Do not compile trace calls in the program.
+.TP
+.B "\-\-flash\-use\-stage"
+Place objects found on the stage of the SWF lib.
+.TP
+.B "\-\-neko\-source"
+Keep generated neko source.
+.TP
+.BI "\-\-gen\-hx\-classes " file
+Generate hx headers from SWF9 file.
+.TP
+.B "\-\-next"
+Separate several haxe compilations.
+.TP
+.B "\-\-altfmt"
+Use alternative error output format.
+.TP
+.B "\-\-auto\-xml"
+Automatically create an XML for each target.
+.TP
+.B "\-\-display"
+Display code tips.
+.TP
+.B "\-\-no\-output"
+Compiles but does not generate any file.
+.TP
+.B "\-\-times"
+Mesure compilation times.
+.TP
+.B "\-help"
+Display this list of options.
+.TP
+.B "\-\-help"
+Display this list of options.
+.SH AUTHOR
+haXe is written by Nicolas Cannasse for Motion-Twin.
+.SH SEE ALSO
+.BR "haxelib" (1),
+.BR "haxedoc" (1).
+.IR "http://haxe.org" .
--- haxe-1.18.orig/debian/install_bytecode.ml
+++ haxe-1.18/debian/install_bytecode.ml
@@ -0,0 +1,152 @@
+(*
+ *  Haxe installer
+ *  Copyright (c)2005 Nicolas Cannasse
+ *
+ *  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
+ *)
+
+#load "unix.cma"
+
+(* ----- BEGIN CONFIGURATION ---- *)
+
+let bytecode = true
+let native = false
+
+(* ------ END CONFIGURATION ----- *)
+
+let os_type = Sys.os_type
+
+(* remove the comment to compile with windows using ocaml cygwin *)
+(* let os_type = "Cygwin" *)
+
+let obj_ext = match os_type with "Win32" -> ".obj" | _ -> ".o"
+let exe_ext = match os_type with "Win32" | "Cygwin" -> ".exe" | _ -> ""
+let ocamloptflags = match os_type with "Unix" -> "-cclib -fno-stack-protector " | _ -> ""
+
+let zlib_path = match os_type with
+	| "Win32" -> "../ocaml/extc/zlib/"
+	| _ -> "./"
+
+let zlib = match os_type with
+	| "Win32" -> zlib_path ^ "zlib.lib"
+	| _ ->
+		try
+			List.find Sys.file_exists ["/usr/lib/libz.dylib";"/usr/lib64/libz.so.1";"/usr/lib/libz.so.1";"/lib/libz.so.1"]
+		with
+			Not_found ->
+				failwith "LibZ was not found on your system, please install it or modify the search directories in the install script"
+
+let msg m =
+	prerr_endline m;
+	flush stdout
+
+let command c =
+	msg ("> " ^ c);
+	if Sys.command c <> 0 then failwith ("Error while running " ^ c)
+
+let cvs root cmd =
+	command ("cvs -z3 -d" ^ root ^ " " ^ cmd)
+
+let ocamlc file =
+	if bytecode then command ("ocamlc -c " ^ file);
+	if native then command ("ocamlopt -c " ^ ocamloptflags ^ file)
+
+let modules l ext =
+	String.concat " " (List.map (fun f -> f ^ ext) l)
+
+;;
+
+let motiontwin = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot" in
+
+let download_libs() =
+	cvs motiontwin "co ocaml/swflib";
+	cvs motiontwin "co ocaml/extc";
+	cvs motiontwin "co ocaml/extlib-dev";
+	cvs motiontwin "co ocaml/xml-light";
+	cvs motiontwin "co neko/libs/include/ocaml"
+in
+
+let download() =
+	msg "*** Please hit enter on login (empty password) ***";
+	cvs motiontwin "login";
+	cvs motiontwin "co haxe";
+	download_libs();
+in
+
+let compile_libs() =
+	(* EXTLIB *)
+	Sys.chdir "ocaml/extlib-dev";
+	command ("ocaml install.ml -nodoc -d .. " ^ (if bytecode then "-b " else "") ^ (if native then "-n" else ""));
+	msg "";
+	Sys.chdir "../..";
+
+	(* EXTC *)
+	Sys.chdir "ocaml/extc";
+	let c_opts = (if Sys.ocaml_version < "3.08" then " -ccopt -Dcaml_copy_string=copy_string " else " ") in
+	command ("ocamlc" ^ c_opts ^ " -I ../" ^ zlib_path ^ " extc_stubs.c");
+
+	let options = "-cclib ../ocaml/extc/extc_stubs" ^ obj_ext ^ " -cclib " ^ zlib ^ " extc.mli extc.ml" in
+	if bytecode then command ("ocamlc -a -o extc.cma " ^ options);
+	if native then command ("ocamlopt -a -o extc.cmxa " ^ options);
+	Sys.chdir "../..";
+
+	(* SWFLIB *)
+	Sys.chdir "ocaml/swflib";
+	let files = "-I .. -I ../extc as3.mli as3hl.mli as3code.ml as3parse.ml as3hlparse.ml swf.ml swfZip.ml actionScript.ml swfParser.ml" in
+	if bytecode then command ("ocamlc -a -o swflib.cma " ^ files);
+	if native then command ("ocamlopt -a -o swflib.cmxa " ^ files);
+	Sys.chdir "../..";
+
+	(* XML-LIGHT *)
+	Sys.chdir "ocaml/xml-light";
+	command ("ocamlyacc	xml_parser.mly");
+	command ("ocamlc xml.mli dtd.mli xml_parser.mli xml_lexer.mli");
+	command ("ocamllex xml_lexer.mll");
+	let files = "xml_parser.ml xml_lexer.ml dtd.ml xmlParser.mli xmlParser.ml xml.ml" in
+	if bytecode then command ("ocamlc -a -o xml-light.cma " ^ files);
+	if native then command ("ocamlopt -a -o xml-light.cmxa " ^ files);
+	Sys.chdir "../..";
+
+in
+
+let compile() =
+
+	(try Unix.mkdir "bin" 0o740 with Unix.Unix_error(Unix.EEXIST,_,_) -> ());
+
+	compile_libs();
+
+	(* HAXE *)
+	Sys.chdir "haxe";
+	command "ocamllex lexer.mll";
+	ocamlc "-I ../ocaml plugin.ml ast.ml lexer.ml";
+	ocamlc "-I ../ocaml -pp camlp4o parser.ml";
+	ocamlc "-I ../ocaml -I ../ocaml/swflib -I ../ocaml/xml-light type.ml plugin.ml transform.ml typer.ml genswf9.ml genswf8.ml genswf.ml genxml.ml genjs.ml genas3.ml";
+	ocamlc "-I ../ocaml -I ../neko/libs/include/ocaml ../neko/libs/include/ocaml/nast.ml ../neko/libs/include/ocaml/nxml.ml ../neko/libs/include/ocaml/binast.ml genneko.ml";
+	ocamlc "-I ../ocaml -I ../ocaml/extc main.ml";
+	let mlist = ["plugin";"ast";"lexer";"parser";"type";"transform";"typer";"genswf9";"genswf8";"genswf";"../neko/libs/include/ocaml/nast";"../neko/libs/include/ocaml/nxml";"../neko/libs/include/ocaml/binast";"genneko";"genxml";"genjs";"genas3";"main"] in
+	let libs = ["../ocaml/extLib";"../ocaml/extc/extc";"../ocaml/swflib/swflib";"../ocaml/xml-light/xml-light";"unix"] in
+	let makelibs ext = " " ^ String.concat " " (List.map (fun l -> l ^ ext) libs) ^ " " in
+	if bytecode then command ("ocamlc -custom -o ../bin/haxe" ^ exe_ext ^ makelibs ".cma" ^ modules mlist ".cmo");
+	if native then command ("ocamlopt -o ../bin/haxe" ^ exe_ext ^ makelibs ".cmxa" ^ modules mlist ".cmx");
+
+in
+let startdir = Sys.getcwd() in
+try
+	compile();
+	Sys.chdir startdir;
+with
+	Failure msg ->
+		Sys.chdir startdir;
+		prerr_endline msg; exit 1
--- haxe-1.18.orig/debian/emacsen-install
+++ haxe-1.18/debian/emacsen-install
@@ -0,0 +1,21 @@
+#! /bin/sh -e
+# /usr/lib/emacsen-common/packages/install/haxe-mode
+# With thanks to Dirk Eddelbuettel, Michael Olson, Santiago Vila, Jim Van Zandt.
+FLAVOR=$1
+PACKAGE=haxe-mode
+if [ ${FLAVOR} != emacs-snapshot -a ${FLAVOR} != emacs22 ]; then exit 0; fi
+echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
+ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+install -m 755 -d ${ELCDIR}
+cd ${ELDIR}
+FILES=`echo *.el`
+cd ${ELCDIR}
+ln -sf ${ELDIR}/*.el .
+cat << EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+exit 0
--- haxe-1.18.orig/ocaml/xml-light/xml_lexer.ml
+++ haxe-1.18/ocaml/xml-light/xml_lexer.ml
@@ -0,0 +1,1543 @@
+# 1 "xml_lexer.mll"
+ (*
+ * Xml Light, an small Xml parser/printer with DTD support.
+ * Copyright (C) 2003 Nicolas Cannasse (ncannasse@motion-twin.com)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library has the special exception on linking described in file
+ * README.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *)
+
+open Lexing
+open Xml_parser
+open Dtd
+
+type error =
+	| EUnterminatedComment
+	| EUnterminatedString
+	| EIdentExpected
+	| ECloseExpected
+	| ENodeExpected
+	| EAttributeNameExpected
+	| EAttributeValueExpected
+	| EUnterminatedEntity
+
+type dtd_error =
+	| EInvalidDTDDecl
+	| EInvalidDTDTag
+	| EDTDItemExpected
+	| EInvalidDTDElement
+	| EInvalidDTDAttribute
+
+exception Error of error
+exception DTDError of dtd_error
+
+type pos = int * int * int * int
+
+type dtd_decl =
+	| DTDFile of string
+	| DTDData of dtd
+
+type dtd_item_type =
+	| TElement
+	| TAttribute
+
+type token =
+	| Tag of string * (string * string) list * bool
+	| PCData of string
+	| Endtag of string
+	| DocType of (string * dtd_decl)
+	| Eof
+
+let last_pos = ref 0
+and current_line = ref 0
+and current_line_start = ref 0
+
+let tmp = Buffer.create 200
+
+let idents = Hashtbl.create 0
+
+let _ = begin
+	Hashtbl.add idents "gt;" ">";
+	Hashtbl.add idents "lt;" "<";
+	Hashtbl.add idents "amp;" "&";
+	Hashtbl.add idents "apos;" "'";
+	Hashtbl.add idents "quot;" "\"";
+end
+
+let init lexbuf =
+	current_line := 1;
+	current_line_start := lexeme_start lexbuf;
+	last_pos := !current_line_start
+
+let close lexbuf =
+	Buffer.reset tmp
+
+let pos lexbuf =
+	!current_line ,	!current_line_start ,
+	!last_pos ,
+	lexeme_start lexbuf
+
+let restore (cl,cls,lp,_) =
+	current_line := cl;
+	current_line_start := cls;
+	last_pos := lp
+
+let newline lexbuf =
+	incr current_line;
+	last_pos := lexeme_end lexbuf;
+	current_line_start := !last_pos
+
+let error lexbuf e =
+	last_pos := lexeme_start lexbuf;
+	raise (Error e)
+
+let dtd_error lexbuf e =
+	last_pos := lexeme_start lexbuf;
+	raise (DTDError e)
+
+# 114 "xml_lexer.ml"
+let __ocaml_lex_tables = {
+  Lexing.lex_base = 
+   "\000\000\243\255\244\255\001\000\000\000\008\000\010\000\012\000\
+    \255\255\011\000\017\000\250\255\000\000\001\000\000\000\000\000\
+    \002\000\000\000\000\000\000\000\001\000\253\255\005\000\000\000\
+    \001\000\001\000\001\000\252\255\251\255\247\255\020\000\015\000\
+    \006\000\003\000\013\000\254\255\024\000\014\000\002\000\000\000\
+    \008\000\015\000\044\000\001\000\073\000\071\000\236\000\044\001\
+    \122\001\200\001\016\000\034\000\026\000\022\002\100\002\185\000\
+    \081\000\186\000\091\000\187\000\022\000\024\000\020\000\070\000\
+    \027\000\005\000\017\000\037\000\032\000\046\000\054\000\039\000\
+    \040\000\057\000\050\000\095\000\035\000\213\000\188\000\069\000\
+    \072\000\004\000\008\000\118\000\102\000\133\000\081\000\090\000\
+    \098\000\122\000\131\000\125\000\120\000\121\000\130\000\134\000\
+    \125\000\125\000\170\000\134\000\134\000\124\000\134\000\131\000\
+    \127\000\159\000\162\000\214\002\036\003\245\255\246\255\145\000\
+    \249\255\218\000\161\000\161\000\165\000\148\000\168\000\248\255\
+    \194\000\168\000\160\000\170\000\175\000\157\000\177\000\159\000\
+    \165\000\174\000\182\000\174\000\171\000\185\000\185\000\114\003\
+    \192\003\236\000\231\000\201\000\190\000\187\000\186\000\204\000\
+    \194\000\194\000\208\000\200\000\215\000\217\000\206\000\211\000\
+    \215\000\220\000\222\000\203\000\223\000\225\000\224\000\231\000\
+    \212\000\222\000\215\000\037\001";
+  Lexing.lex_backtrk = 
+   "\255\255\255\255\255\255\010\000\009\000\007\000\001\000\001\000\
+    \255\255\006\000\007\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\002\000\001\000\
+    \255\255\003\000\255\255\255\255\255\255\003\000\255\255\003\000\
+    \000\000\255\255\003\000\002\000\000\000\255\255\001\000\255\255\
+    \255\255\000\000\255\255\002\000\255\255\255\255\000\000\255\255\
+    \002\000\002\000\255\255\255\255\255\255\003\000\255\255\003\000\
+    \255\255\003\000\003\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\001\000\003\000\002\000\255\255\
+    \255\255\002\000\001\000\255\255\001\000\255\255\002\000\002\000\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\003\000\003\000\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\011\000\255\255\255\255\012\000\
+    \255\255\001\000\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\005\000\005\000\005\000\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\002\000\255\255\255\255\255\255\
+    \000\000\255\255\255\255\006\000\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255";
+  Lexing.lex_default = 
+   "\003\000\000\000\000\000\003\000\255\255\255\255\255\255\003\000\
+    \000\000\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\000\000\255\255\255\255\
+    \255\255\255\255\255\255\000\000\000\000\000\000\255\255\255\255\
+    \027\000\255\255\255\255\000\000\027\000\255\255\040\000\255\255\
+    \040\000\255\255\044\000\255\255\044\000\035\000\255\255\255\255\
+    \035\000\255\255\035\000\255\255\255\255\035\000\255\255\021\000\
+    \255\255\255\255\255\255\255\255\027\000\255\255\027\000\255\255\
+    \027\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\021\000\255\255\255\255\255\255\035\000\
+    \021\000\255\255\255\255\255\255\255\255\021\000\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\027\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\035\000\035\000\001\000\255\255\000\000\000\000\255\255\
+    \000\000\255\255\255\255\255\255\255\255\255\255\255\255\000\000\
+    \011\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\035\000\
+    \255\255\021\000\112\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\021\000";
+  Lexing.lex_trans = 
+   "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\007\000\008\000\255\255\035\000\006\000\255\255\000\000\
+    \008\000\010\000\255\255\006\000\009\000\007\000\255\255\006\000\
+    \031\000\006\000\010\000\000\000\031\000\031\000\008\000\000\000\
+    \007\000\031\000\008\000\029\000\035\000\082\000\004\000\255\255\
+    \010\000\012\000\006\000\009\000\007\000\013\000\028\000\031\000\
+    \034\000\010\000\255\255\033\000\031\000\083\000\255\255\009\000\
+    \008\000\255\255\035\000\008\000\005\000\255\255\001\000\255\255\
+    \009\000\024\000\026\000\022\000\015\000\017\000\021\000\011\000\
+    \255\255\023\000\255\255\035\000\035\000\021\000\008\000\016\000\
+    \020\000\052\000\043\000\255\255\018\000\025\000\255\255\037\000\
+    \035\000\019\000\058\000\014\000\027\000\041\000\071\000\039\000\
+    \008\000\024\000\026\000\022\000\058\000\255\255\067\000\068\000\
+    \255\255\023\000\255\255\066\000\069\000\035\000\065\000\255\255\
+    \063\000\058\000\061\000\008\000\035\000\025\000\021\000\070\000\
+    \035\000\008\000\072\000\058\000\073\000\008\000\074\000\035\000\
+    \008\000\008\000\035\000\008\000\081\000\255\255\035\000\255\255\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\035\000\008\000\008\000\093\000\088\000\089\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\057\000\059\000\059\000\078\000\086\000\090\000\
+    \091\000\078\000\087\000\092\000\008\000\094\000\095\000\096\000\
+    \097\000\035\000\021\000\102\000\101\000\008\000\103\000\104\000\
+    \035\000\057\000\059\000\059\000\078\000\008\000\078\000\035\000\
+    \008\000\114\000\078\000\113\000\115\000\116\000\117\000\113\000\
+    \118\000\119\000\028\000\100\000\132\000\127\000\124\000\099\000\
+    \125\000\126\000\008\000\128\000\129\000\078\000\056\000\058\000\
+    \058\000\130\000\113\000\131\000\035\000\133\000\134\000\027\000\
+    \002\000\255\255\028\000\158\000\155\000\123\000\021\000\150\000\
+    \255\255\008\000\139\000\121\000\255\255\140\000\035\000\141\000\
+    \122\000\144\000\142\000\145\000\021\000\008\000\021\000\146\000\
+    \021\000\147\000\148\000\143\000\149\000\021\000\151\000\152\000\
+    \153\000\154\000\027\000\156\000\157\000\028\000\159\000\008\000\
+    \160\000\161\000\162\000\011\000\255\255\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\008\000\
+    \000\000\255\255\000\000\000\000\035\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\008\000\
+    \035\000\000\000\000\000\000\000\000\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\049\000\
+    \000\000\000\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\008\000\000\000\000\000\
+    \000\000\049\000\000\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\000\000\000\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\000\000\000\000\000\000\000\000\049\000\
+    \000\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\054\000\000\000\000\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\000\000\000\000\000\000\000\000\000\000\000\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\000\000\000\000\000\000\000\000\054\000\000\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\000\000\000\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\000\000\
+    \000\000\000\000\000\000\054\000\000\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\113\000\
+    \008\000\000\000\000\000\113\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\113\000\000\000\
+    \000\000\111\000\000\000\000\000\000\000\000\000\021\000\027\000\
+    \029\000\110\000\028\000\108\000\000\000\000\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\000\000\000\000\000\000\011\000\109\000\000\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\000\000\000\000\000\000\000\000\108\000\000\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\112\000\000\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\000\000\
+    \000\000\000\000\000\000\108\000\000\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\136\000\
+    \000\000\000\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\000\000\000\000\000\000\
+    \000\000\136\000\000\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\000\000\000\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\000\000\000\000\000\000\000\000\136\000\
+    \000\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+    \000\000";
+  Lexing.lex_check = 
+   "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\000\000\000\000\003\000\038\000\000\000\003\000\255\255\
+    \032\000\005\000\040\000\006\000\009\000\007\000\007\000\006\000\
+    \031\000\007\000\010\000\255\255\031\000\030\000\030\000\255\255\
+    \000\000\030\000\036\000\004\000\043\000\081\000\000\000\003\000\
+    \005\000\005\000\006\000\009\000\007\000\012\000\013\000\031\000\
+    \033\000\010\000\007\000\032\000\030\000\082\000\042\000\005\000\
+    \060\000\042\000\061\000\062\000\000\000\003\000\000\000\003\000\
+    \010\000\023\000\025\000\014\000\012\000\016\000\020\000\005\000\
+    \007\000\022\000\007\000\034\000\037\000\041\000\050\000\015\000\
+    \019\000\051\000\042\000\044\000\017\000\024\000\044\000\036\000\
+    \052\000\018\000\056\000\012\000\026\000\039\000\065\000\038\000\
+    \051\000\023\000\025\000\014\000\058\000\040\000\066\000\067\000\
+    \042\000\022\000\042\000\064\000\068\000\063\000\064\000\044\000\
+    \062\000\056\000\060\000\056\000\061\000\024\000\064\000\069\000\
+    \056\000\070\000\071\000\058\000\072\000\058\000\073\000\074\000\
+    \076\000\075\000\058\000\079\000\080\000\044\000\075\000\044\000\
+    \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
+    \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
+    \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
+    \045\000\045\000\063\000\083\000\084\000\086\000\087\000\088\000\
+    \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
+    \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
+    \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
+    \045\000\045\000\055\000\057\000\059\000\078\000\085\000\089\000\
+    \090\000\078\000\085\000\091\000\092\000\093\000\094\000\095\000\
+    \096\000\097\000\098\000\099\000\100\000\101\000\102\000\103\000\
+    \104\000\055\000\057\000\059\000\078\000\105\000\077\000\077\000\
+    \106\000\111\000\077\000\113\000\114\000\115\000\116\000\113\000\
+    \117\000\118\000\120\000\098\000\121\000\122\000\123\000\098\000\
+    \124\000\125\000\126\000\127\000\128\000\077\000\055\000\057\000\
+    \059\000\129\000\113\000\130\000\131\000\132\000\133\000\134\000\
+    \000\000\003\000\038\000\140\000\141\000\120\000\032\000\142\000\
+    \040\000\138\000\138\000\120\000\007\000\139\000\138\000\139\000\
+    \120\000\143\000\139\000\144\000\062\000\137\000\060\000\145\000\
+    \036\000\146\000\147\000\139\000\148\000\149\000\150\000\151\000\
+    \152\000\153\000\154\000\155\000\156\000\157\000\158\000\046\000\
+    \159\000\160\000\161\000\162\000\042\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\163\000\
+    \255\255\044\000\255\255\255\255\163\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
+    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\047\000\
+    \137\000\255\255\255\255\255\255\255\255\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\255\255\
+    \255\255\255\255\255\255\255\255\255\255\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
+    \047\000\047\000\047\000\047\000\047\000\047\000\047\000\048\000\
+    \255\255\255\255\048\000\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\255\255\255\255\255\255\
+    \255\255\255\255\255\255\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\077\000\255\255\255\255\
+    \255\255\048\000\255\255\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\
+    \048\000\048\000\048\000\048\000\048\000\049\000\255\255\255\255\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\255\255\255\255\255\255\255\255\049\000\
+    \255\255\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
+    \049\000\049\000\049\000\053\000\255\255\255\255\053\000\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\255\255\255\255\255\255\255\255\255\255\255\255\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\255\255\255\255\255\255\255\255\053\000\255\255\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
+    \053\000\054\000\255\255\255\255\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\255\255\
+    \255\255\255\255\255\255\255\255\255\255\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\255\255\
+    \255\255\255\255\255\255\054\000\255\255\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
+    \054\000\054\000\054\000\054\000\054\000\054\000\054\000\107\000\
+    \107\000\255\255\255\255\107\000\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\107\000\255\255\
+    \255\255\107\000\255\255\255\255\255\255\255\255\107\000\107\000\
+    \107\000\107\000\107\000\107\000\255\255\255\255\107\000\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\255\255\255\255\255\255\107\000\107\000\255\255\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\255\255\255\255\255\255\255\255\107\000\255\255\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\
+    \107\000\108\000\107\000\255\255\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\255\255\
+    \255\255\255\255\255\255\255\255\255\255\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\255\255\
+    \255\255\255\255\255\255\108\000\255\255\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\
+    \108\000\108\000\108\000\108\000\108\000\108\000\108\000\135\000\
+    \255\255\255\255\135\000\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\255\255\255\255\255\255\
+    \255\255\255\255\255\255\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\255\255\255\255\255\255\
+    \255\255\135\000\255\255\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\
+    \135\000\135\000\135\000\135\000\135\000\136\000\255\255\255\255\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\255\255\255\255\255\255\255\255\136\000\
+    \255\255\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\
+    \136\000\136\000\136\000\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+    \255\255";
+  Lexing.lex_base_code = 
+   "";
+  Lexing.lex_backtrk_code = 
+   "";
+  Lexing.lex_default_code = 
+   "";
+  Lexing.lex_trans_code = 
+   "";
+  Lexing.lex_check_code = 
+   "";
+  Lexing.lex_code = 
+   "";
+}
+
+let rec token lexbuf =
+    __ocaml_lex_token_rec lexbuf 0
+and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 123 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			token lexbuf
+		)
+# 514 "xml_lexer.ml"
+
+  | 1 ->
+# 128 "xml_lexer.mll"
+  (
+			last_pos := lexeme_end lexbuf;
+			token lexbuf
+		)
+# 522 "xml_lexer.ml"
+
+  | 2 ->
+# 133 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			ignore_spaces lexbuf;
+			let root = ident_name lexbuf in
+			ignore_spaces lexbuf;
+			let data = dtd_data lexbuf in
+			DocType (root, data)
+		)
+# 534 "xml_lexer.ml"
+
+  | 3 ->
+# 142 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			Buffer.reset tmp;
+			PCData (cdata lexbuf)
+		)
+# 543 "xml_lexer.ml"
+
+  | 4 ->
+# 148 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			comment lexbuf;
+			token lexbuf
+		)
+# 552 "xml_lexer.ml"
+
+  | 5 ->
+# 154 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			header lexbuf;
+			token lexbuf;
+		)
+# 561 "xml_lexer.ml"
+
+  | 6 ->
+# 160 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			let tag = ident_name lexbuf in
+			ignore_spaces lexbuf;
+			close_tag lexbuf;
+			Endtag tag
+		)
+# 572 "xml_lexer.ml"
+
+  | 7 ->
+# 168 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			let tag = ident_name lexbuf in
+			ignore_spaces lexbuf;
+			let attribs, closed = attributes lexbuf in
+			Tag(tag, attribs, closed)
+		)
+# 583 "xml_lexer.ml"
+
+  | 8 ->
+# 176 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			Buffer.reset tmp;
+			Buffer.add_string tmp (lexeme lexbuf);
+			PCData (pcdata lexbuf)
+		)
+# 593 "xml_lexer.ml"
+
+  | 9 ->
+# 183 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			Buffer.reset tmp;
+			Buffer.add_string tmp (entity lexbuf);
+			PCData (pcdata lexbuf)
+		)
+# 603 "xml_lexer.ml"
+
+  | 10 ->
+# 190 "xml_lexer.mll"
+  (
+			last_pos := lexeme_start lexbuf;
+			Buffer.reset tmp;
+			Buffer.add_string tmp (lexeme lexbuf);
+			PCData (pcdata lexbuf)
+		)
+# 613 "xml_lexer.ml"
+
+  | 11 ->
+# 196 "xml_lexer.mll"
+       ( Eof )
+# 618 "xml_lexer.ml"
+
+  | 12 ->
+# 198 "xml_lexer.mll"
+  ( error lexbuf ENodeExpected )
+# 623 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state
+
+and ignore_spaces lexbuf =
+    __ocaml_lex_ignore_spaces_rec lexbuf 30
+and __ocaml_lex_ignore_spaces_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 202 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			ignore_spaces lexbuf
+		)
+# 637 "xml_lexer.ml"
+
+  | 1 ->
+# 207 "xml_lexer.mll"
+  ( ignore_spaces lexbuf )
+# 642 "xml_lexer.ml"
+
+  | 2 ->
+# 209 "xml_lexer.mll"
+  ( () )
+# 647 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_ignore_spaces_rec lexbuf __ocaml_lex_state
+
+and comment lexbuf =
+    __ocaml_lex_comment_rec lexbuf 32
+and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 213 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			comment lexbuf
+		)
+# 661 "xml_lexer.ml"
+
+  | 1 ->
+# 218 "xml_lexer.mll"
+  ( () )
+# 666 "xml_lexer.ml"
+
+  | 2 ->
+# 220 "xml_lexer.mll"
+  ( raise (Error EUnterminatedComment) )
+# 671 "xml_lexer.ml"
+
+  | 3 ->
+# 222 "xml_lexer.mll"
+  ( comment lexbuf )
+# 676 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state
+
+and header lexbuf =
+    __ocaml_lex_header_rec lexbuf 36
+and __ocaml_lex_header_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 226 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			header lexbuf
+		)
+# 690 "xml_lexer.ml"
+
+  | 1 ->
+# 231 "xml_lexer.mll"
+  ( () )
+# 695 "xml_lexer.ml"
+
+  | 2 ->
+# 233 "xml_lexer.mll"
+  ( error lexbuf ECloseExpected )
+# 700 "xml_lexer.ml"
+
+  | 3 ->
+# 235 "xml_lexer.mll"
+  ( header lexbuf )
+# 705 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_header_rec lexbuf __ocaml_lex_state
+
+and cdata lexbuf =
+    __ocaml_lex_cdata_rec lexbuf 38
+and __ocaml_lex_cdata_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 239 "xml_lexer.mll"
+  (
+			Buffer.add_string tmp (lexeme lexbuf);
+			cdata lexbuf
+		)
+# 719 "xml_lexer.ml"
+
+  | 1 ->
+# 244 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			Buffer.add_string tmp (lexeme lexbuf);
+			cdata lexbuf
+		)
+# 728 "xml_lexer.ml"
+
+  | 2 ->
+# 250 "xml_lexer.mll"
+  ( Buffer.contents tmp )
+# 733 "xml_lexer.ml"
+
+  | 3 ->
+# 252 "xml_lexer.mll"
+  (
+			Buffer.add_string tmp (lexeme lexbuf);
+			cdata lexbuf
+		)
+# 741 "xml_lexer.ml"
+
+  | 4 ->
+# 257 "xml_lexer.mll"
+  ( error lexbuf ECloseExpected )
+# 746 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_cdata_rec lexbuf __ocaml_lex_state
+
+and pcdata lexbuf =
+    __ocaml_lex_pcdata_rec lexbuf 42
+and __ocaml_lex_pcdata_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 261 "xml_lexer.mll"
+  (
+			Buffer.add_string tmp (lexeme lexbuf);
+			pcdata lexbuf
+		)
+# 760 "xml_lexer.ml"
+
+  | 1 ->
+# 266 "xml_lexer.mll"
+  (
+			Buffer.add_string tmp (lexeme lexbuf);
+			pcdata lexbuf;
+		)
+# 768 "xml_lexer.ml"
+
+  | 2 ->
+# 271 "xml_lexer.mll"
+  (
+			Buffer.add_string tmp (entity lexbuf);
+			pcdata lexbuf
+		)
+# 776 "xml_lexer.ml"
+
+  | 3 ->
+# 276 "xml_lexer.mll"
+  ( Buffer.contents tmp )
+# 781 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_pcdata_rec lexbuf __ocaml_lex_state
+
+and entity lexbuf =
+    __ocaml_lex_entity_rec lexbuf 45
+and __ocaml_lex_entity_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 280 "xml_lexer.mll"
+  (
+			let ident = lexeme lexbuf in
+			try
+				Hashtbl.find idents (String.lowercase ident)
+			with
+				Not_found -> "&" ^ ident
+		)
+# 798 "xml_lexer.ml"
+
+  | 1 ->
+# 288 "xml_lexer.mll"
+  ( raise (Error EUnterminatedEntity) )
+# 803 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_entity_rec lexbuf __ocaml_lex_state
+
+and ident_name lexbuf =
+    __ocaml_lex_ident_name_rec lexbuf 48
+and __ocaml_lex_ident_name_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 292 "xml_lexer.mll"
+  ( lexeme lexbuf )
+# 814 "xml_lexer.ml"
+
+  | 1 ->
+# 294 "xml_lexer.mll"
+  ( error lexbuf EIdentExpected )
+# 819 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_ident_name_rec lexbuf __ocaml_lex_state
+
+and close_tag lexbuf =
+    __ocaml_lex_close_tag_rec lexbuf 50
+and __ocaml_lex_close_tag_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 298 "xml_lexer.mll"
+  ( () )
+# 830 "xml_lexer.ml"
+
+  | 1 ->
+# 300 "xml_lexer.mll"
+  ( error lexbuf ECloseExpected )
+# 835 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_close_tag_rec lexbuf __ocaml_lex_state
+
+and attributes lexbuf =
+    __ocaml_lex_attributes_rec lexbuf 51
+and __ocaml_lex_attributes_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 304 "xml_lexer.mll"
+  ( [], false )
+# 846 "xml_lexer.ml"
+
+  | 1 ->
+# 306 "xml_lexer.mll"
+  ( [], true )
+# 851 "xml_lexer.ml"
+
+  | 2 ->
+# 308 "xml_lexer.mll"
+  (
+			let key = attribute lexbuf in
+			let data = attribute_data lexbuf in
+			ignore_spaces lexbuf;
+			let others, closed = attributes lexbuf in
+			(key, data) :: others, closed
+		)
+# 862 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_attributes_rec lexbuf __ocaml_lex_state
+
+and attribute lexbuf =
+    __ocaml_lex_attribute_rec lexbuf 53
+and __ocaml_lex_attribute_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 318 "xml_lexer.mll"
+  ( lexeme lexbuf )
+# 873 "xml_lexer.ml"
+
+  | 1 ->
+# 320 "xml_lexer.mll"
+  ( error lexbuf EAttributeNameExpected )
+# 878 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_attribute_rec lexbuf __ocaml_lex_state
+
+and attribute_data lexbuf =
+    __ocaml_lex_attribute_data_rec lexbuf 55
+and __ocaml_lex_attribute_data_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 324 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			last_pos := lexeme_end lexbuf;
+			dq_string lexbuf
+		)
+# 893 "xml_lexer.ml"
+
+  | 1 ->
+# 330 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			last_pos := lexeme_end lexbuf;
+			q_string lexbuf
+		)
+# 902 "xml_lexer.ml"
+
+  | 2 ->
+# 336 "xml_lexer.mll"
+  ( error lexbuf EAttributeValueExpected )
+# 907 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_attribute_data_rec lexbuf __ocaml_lex_state
+
+and dq_string lexbuf =
+    __ocaml_lex_dq_string_rec lexbuf 60
+and __ocaml_lex_dq_string_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 340 "xml_lexer.mll"
+  ( Buffer.contents tmp )
+# 918 "xml_lexer.ml"
+
+  | 1 ->
+# 342 "xml_lexer.mll"
+  (
+			Buffer.add_char tmp (lexeme_char lexbuf 1);
+			dq_string lexbuf
+		)
+# 926 "xml_lexer.ml"
+
+  | 2 ->
+# 347 "xml_lexer.mll"
+  ( raise (Error EUnterminatedString) )
+# 931 "xml_lexer.ml"
+
+  | 3 ->
+# 349 "xml_lexer.mll"
+  ( 
+			Buffer.add_char tmp (lexeme_char lexbuf 0);
+			dq_string lexbuf
+		)
+# 939 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dq_string_rec lexbuf __ocaml_lex_state
+
+and q_string lexbuf =
+    __ocaml_lex_q_string_rec lexbuf 62
+and __ocaml_lex_q_string_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 356 "xml_lexer.mll"
+  ( Buffer.contents tmp )
+# 950 "xml_lexer.ml"
+
+  | 1 ->
+# 358 "xml_lexer.mll"
+  (
+			Buffer.add_char tmp (lexeme_char lexbuf 1);
+			q_string lexbuf
+		)
+# 958 "xml_lexer.ml"
+
+  | 2 ->
+# 363 "xml_lexer.mll"
+  ( raise (Error EUnterminatedString) )
+# 963 "xml_lexer.ml"
+
+  | 3 ->
+# 365 "xml_lexer.mll"
+  ( 
+			Buffer.add_char tmp (lexeme_char lexbuf 0);
+			q_string lexbuf
+		)
+# 971 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_q_string_rec lexbuf __ocaml_lex_state
+
+and dtd_data lexbuf =
+    __ocaml_lex_dtd_data_rec lexbuf 64
+and __ocaml_lex_dtd_data_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 372 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			(* skipping Public ID *)
+			let _ = dtd_file lexbuf in
+			let file = dtd_file lexbuf in
+			dtd_end_decl lexbuf;
+			DTDFile file
+		)
+# 989 "xml_lexer.ml"
+
+  | 1 ->
+# 381 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			let file = dtd_file lexbuf in
+			dtd_end_decl lexbuf;
+			DTDFile file
+		)
+# 999 "xml_lexer.ml"
+
+  | 2 ->
+# 388 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			let data = dtd_intern lexbuf in
+			dtd_end_decl lexbuf;
+			DTDData data
+		)
+# 1009 "xml_lexer.ml"
+
+  | 3 ->
+# 395 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDDecl )
+# 1014 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_data_rec lexbuf __ocaml_lex_state
+
+and dtd_file lexbuf =
+    __ocaml_lex_dtd_file_rec lexbuf 75
+and __ocaml_lex_dtd_file_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 399 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			let s = dq_string lexbuf in
+			ignore_spaces lexbuf;
+			s
+		)
+# 1030 "xml_lexer.ml"
+
+  | 1 ->
+# 406 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			let s = q_string lexbuf in
+			ignore_spaces lexbuf;
+			s
+		)
+# 1040 "xml_lexer.ml"
+
+  | 2 ->
+# 413 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDDecl )
+# 1045 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_file_rec lexbuf __ocaml_lex_state
+
+and dtd_intern lexbuf =
+    __ocaml_lex_dtd_intern_rec lexbuf 76
+and __ocaml_lex_dtd_intern_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 417 "xml_lexer.mll"
+  ( 
+			ignore_spaces lexbuf;
+			[]
+		)
+# 1059 "xml_lexer.ml"
+
+  | 1 ->
+# 422 "xml_lexer.mll"
+  (
+			let l = dtd_item lexbuf in
+			l @ (dtd_intern lexbuf)
+		)
+# 1067 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_intern_rec lexbuf __ocaml_lex_state
+
+and dtd lexbuf =
+    __ocaml_lex_dtd_rec lexbuf 77
+and __ocaml_lex_dtd_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 429 "xml_lexer.mll"
+  ( [] )
+# 1078 "xml_lexer.ml"
+
+  | 1 ->
+# 431 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			dtd lexbuf
+		)
+# 1086 "xml_lexer.ml"
+
+  | 2 ->
+# 436 "xml_lexer.mll"
+  ( dtd lexbuf )
+# 1091 "xml_lexer.ml"
+
+  | 3 ->
+# 438 "xml_lexer.mll"
+  (
+			let l = dtd_item lexbuf in
+			l @ (dtd lexbuf)
+		)
+# 1099 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_rec lexbuf __ocaml_lex_state
+
+and dtd_end_decl lexbuf =
+    __ocaml_lex_dtd_end_decl_rec lexbuf 79
+and __ocaml_lex_dtd_end_decl_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 445 "xml_lexer.mll"
+  ( ignore_spaces lexbuf )
+# 1110 "xml_lexer.ml"
+
+  | 1 ->
+# 447 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDDecl )
+# 1115 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_end_decl_rec lexbuf __ocaml_lex_state
+
+and dtd_item lexbuf =
+    __ocaml_lex_dtd_item_rec lexbuf 80
+and __ocaml_lex_dtd_item_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 451 "xml_lexer.mll"
+  (
+			comment lexbuf;
+			[];
+		)
+# 1129 "xml_lexer.ml"
+
+  | 1 ->
+# 456 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			let t = dtd_item_type lexbuf in
+			let name = (try ident_name lexbuf with Error EIdentExpected -> raise (DTDError EInvalidDTDDecl)) in
+			ignore_spaces lexbuf;
+			match t with
+			| TElement -> [ DTDElement (name , (dtd_element_type lexbuf)) ]
+			| TAttribute -> List.map (fun (attrname,atype,adef) -> DTDAttribute (name, attrname, atype, adef)) (dtd_attributes lexbuf)
+		)
+# 1142 "xml_lexer.ml"
+
+  | 2 ->
+# 466 "xml_lexer.mll"
+  (  dtd_error lexbuf EDTDItemExpected )
+# 1147 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_item_rec lexbuf __ocaml_lex_state
+
+and dtd_attributes lexbuf =
+    __ocaml_lex_dtd_attributes_rec lexbuf 84
+and __ocaml_lex_dtd_attributes_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 470 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			[]
+		)
+# 1161 "xml_lexer.ml"
+
+  | 1 ->
+# 475 "xml_lexer.mll"
+  (
+			let attrname = (try ident_name lexbuf with Error EIdentExpected -> raise (DTDError EInvalidDTDAttribute)) in
+			ignore_spaces lexbuf;
+			let atype = dtd_attr_type lexbuf in
+			let adef = dtd_attr_default lexbuf in
+			let a = (attrname, atype, adef) in
+			a :: (dtd_attributes lexbuf)
+		)
+# 1173 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_attributes_rec lexbuf __ocaml_lex_state
+
+and dtd_item_type lexbuf =
+    __ocaml_lex_dtd_item_type_rec lexbuf 85
+and __ocaml_lex_dtd_item_type_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 486 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			TElement
+		)
+# 1187 "xml_lexer.ml"
+
+  | 1 ->
+# 491 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			TAttribute
+		)
+# 1195 "xml_lexer.ml"
+
+  | 2 ->
+# 496 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDTag )
+# 1200 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_item_type_rec lexbuf __ocaml_lex_state
+
+and dtd_element_type lexbuf =
+    __ocaml_lex_dtd_element_type_rec lexbuf 98
+and __ocaml_lex_dtd_element_type_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 500 "xml_lexer.mll"
+  ( 
+			ignore_spaces lexbuf;
+			dtd_end_element lexbuf;
+			DTDAny
+		)
+# 1215 "xml_lexer.ml"
+
+  | 1 ->
+# 506 "xml_lexer.mll"
+  ( 
+			ignore_spaces lexbuf;
+			dtd_end_element lexbuf;
+			DTDEmpty
+		)
+# 1224 "xml_lexer.ml"
+
+  | 2 ->
+# 512 "xml_lexer.mll"
+  (
+			try
+				let item = Xml_parser.dtd_element dtd_element_token lexbuf in
+				ignore_spaces lexbuf;
+				DTDChild item
+			with
+				Parsing.Parse_error -> dtd_error lexbuf EInvalidDTDElement
+		)
+# 1236 "xml_lexer.ml"
+
+  | 3 ->
+# 521 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDElement )
+# 1241 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_element_type_rec lexbuf __ocaml_lex_state
+
+and dtd_end_element lexbuf =
+    __ocaml_lex_dtd_end_element_rec lexbuf 105
+and __ocaml_lex_dtd_end_element_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 525 "xml_lexer.mll"
+  ( ignore_spaces lexbuf )
+# 1252 "xml_lexer.ml"
+
+  | 1 ->
+# 527 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDElement )
+# 1257 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_end_element_rec lexbuf __ocaml_lex_state
+
+and dtd_end_attribute lexbuf =
+    __ocaml_lex_dtd_end_attribute_rec lexbuf 106
+and __ocaml_lex_dtd_end_attribute_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 531 "xml_lexer.mll"
+  ( ignore_spaces lexbuf )
+# 1268 "xml_lexer.ml"
+
+  | 1 ->
+# 533 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDAttribute )
+# 1273 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_end_attribute_rec lexbuf __ocaml_lex_state
+
+and dtd_element_token lexbuf =
+    __ocaml_lex_dtd_element_token_rec lexbuf 107
+and __ocaml_lex_dtd_element_token_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 537 "xml_lexer.mll"
+  (
+			newline lexbuf;
+			dtd_element_token lexbuf
+		)
+# 1287 "xml_lexer.ml"
+
+  | 1 ->
+# 542 "xml_lexer.mll"
+  ( dtd_element_token lexbuf )
+# 1292 "xml_lexer.ml"
+
+  | 2 ->
+# 544 "xml_lexer.mll"
+  ( OPEN )
+# 1297 "xml_lexer.ml"
+
+  | 3 ->
+# 546 "xml_lexer.mll"
+  ( CLOSE )
+# 1302 "xml_lexer.ml"
+
+  | 4 ->
+# 548 "xml_lexer.mll"
+  ( NEXT )
+# 1307 "xml_lexer.ml"
+
+  | 5 ->
+# 550 "xml_lexer.mll"
+  ( END )
+# 1312 "xml_lexer.ml"
+
+  | 6 ->
+# 552 "xml_lexer.mll"
+  ( OR )
+# 1317 "xml_lexer.ml"
+
+  | 7 ->
+# 554 "xml_lexer.mll"
+  ( PCDATA )
+# 1322 "xml_lexer.ml"
+
+  | 8 ->
+# 556 "xml_lexer.mll"
+  ( STAR )
+# 1327 "xml_lexer.ml"
+
+  | 9 ->
+# 558 "xml_lexer.mll"
+  ( PLUS )
+# 1332 "xml_lexer.ml"
+
+  | 10 ->
+# 560 "xml_lexer.mll"
+  ( QUESTION )
+# 1337 "xml_lexer.ml"
+
+  | 11 ->
+# 562 "xml_lexer.mll"
+  ( IDENT (lexeme lexbuf) )
+# 1342 "xml_lexer.ml"
+
+  | 12 ->
+# 564 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDElement )
+# 1347 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_element_token_rec lexbuf __ocaml_lex_state
+
+and dtd_attr_type lexbuf =
+    __ocaml_lex_dtd_attr_type_rec lexbuf 120
+and __ocaml_lex_dtd_attr_type_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 568 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDCData
+		)
+# 1361 "xml_lexer.ml"
+
+  | 1 ->
+# 573 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDNMToken
+		)
+# 1369 "xml_lexer.ml"
+
+  | 2 ->
+# 578 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+		 	DTDID
+		)
+# 1377 "xml_lexer.ml"
+
+  | 3 ->
+# 583 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDIDRef
+		)
+# 1385 "xml_lexer.ml"
+
+  | 4 ->
+# 588 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDEnum (dtd_attr_enum lexbuf)
+		)
+# 1393 "xml_lexer.ml"
+
+  | 5 ->
+# 593 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDAttribute )
+# 1398 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_attr_type_rec lexbuf __ocaml_lex_state
+
+and dtd_attr_enum lexbuf =
+    __ocaml_lex_dtd_attr_enum_rec lexbuf 135
+and __ocaml_lex_dtd_attr_enum_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 597 "xml_lexer.mll"
+  (
+			let v = lexeme lexbuf in
+			ignore_spaces lexbuf;
+			v :: (dtd_attr_enum_next lexbuf)
+		)
+# 1413 "xml_lexer.ml"
+
+  | 1 ->
+# 603 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDAttribute )
+# 1418 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_attr_enum_rec lexbuf __ocaml_lex_state
+
+and dtd_attr_enum_next lexbuf =
+    __ocaml_lex_dtd_attr_enum_next_rec lexbuf 137
+and __ocaml_lex_dtd_attr_enum_next_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 607 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			[]
+		)
+# 1432 "xml_lexer.ml"
+
+  | 1 ->
+# 612 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			dtd_attr_enum lexbuf
+		)
+# 1440 "xml_lexer.ml"
+
+  | 2 ->
+# 617 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDAttribute )
+# 1445 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_attr_enum_next_rec lexbuf __ocaml_lex_state
+
+and dtd_attr_default lexbuf =
+    __ocaml_lex_dtd_attr_default_rec lexbuf 138
+and __ocaml_lex_dtd_attr_default_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 621 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			let v = (try dq_string lexbuf with Error EUnterminatedString -> raise (DTDError EInvalidDTDAttribute)) in
+			ignore_spaces lexbuf;
+			DTDDefault v
+		)
+# 1461 "xml_lexer.ml"
+
+  | 1 ->
+# 628 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			let v = (try q_string lexbuf with Error EUnterminatedString -> raise (DTDError EInvalidDTDAttribute)) in
+			ignore_spaces lexbuf;
+			DTDDefault v
+		)
+# 1471 "xml_lexer.ml"
+
+  | 2 ->
+# 635 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDRequired
+		)
+# 1479 "xml_lexer.ml"
+
+  | 3 ->
+# 640 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDImplied
+		)
+# 1487 "xml_lexer.ml"
+
+  | 4 ->
+# 645 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDFixed (dtd_attr_string lexbuf)
+		)
+# 1495 "xml_lexer.ml"
+
+  | 5 ->
+# 650 "xml_lexer.mll"
+  (
+			ignore_spaces lexbuf;
+			DTDDefault (dtd_attr_string lexbuf)
+		)
+# 1503 "xml_lexer.ml"
+
+  | 6 ->
+# 655 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDAttribute )
+# 1508 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_attr_default_rec lexbuf __ocaml_lex_state
+
+and dtd_attr_string lexbuf =
+    __ocaml_lex_dtd_attr_string_rec lexbuf 163
+and __ocaml_lex_dtd_attr_string_rec lexbuf __ocaml_lex_state =
+  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+      | 0 ->
+# 659 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			let v = (try dq_string lexbuf with Error EUnterminatedString -> raise (DTDError EInvalidDTDAttribute)) in
+			ignore_spaces lexbuf;
+			v
+		)
+# 1524 "xml_lexer.ml"
+
+  | 1 ->
+# 666 "xml_lexer.mll"
+  (
+			Buffer.reset tmp;
+			let v = (try q_string lexbuf with Error EUnterminatedString -> raise (DTDError EInvalidDTDAttribute)) in
+			ignore_spaces lexbuf;
+			v
+		)
+# 1534 "xml_lexer.ml"
+
+  | 2 ->
+# 673 "xml_lexer.mll"
+  ( dtd_error lexbuf EInvalidDTDAttribute )
+# 1539 "xml_lexer.ml"
+
+  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_dtd_attr_string_rec lexbuf __ocaml_lex_state
+
+;;
+
--- haxe-1.18.orig/ocaml/xml-light/xml_parser.mli
+++ haxe-1.18/ocaml/xml-light/xml_parser.mli
@@ -0,0 +1,14 @@
+type token =
+  | NEXT
+  | OR
+  | IDENT of (string)
+  | PCDATA
+  | STAR
+  | QUESTION
+  | PLUS
+  | OPEN
+  | CLOSE
+  | END
+
+val dtd_element :
+  (Lexing.lexbuf  -> token) -> Lexing.lexbuf -> Dtd.dtd_child
--- haxe-1.18.orig/ocaml/xml-light/xml_parser.ml
+++ haxe-1.18/ocaml/xml-light/xml_parser.ml
@@ -0,0 +1,294 @@
+type token =
+  | NEXT
+  | OR
+  | IDENT of (string)
+  | PCDATA
+  | STAR
+  | QUESTION
+  | PLUS
+  | OPEN
+  | CLOSE
+  | END
+
+open Parsing;;
+# 1 "xml_parser.mly"
+(*
+ * Xml Light, an small Xml parser/printer with DTD support.
+ * Copyright (C) 2003 Nicolas Cannasse (ncannasse@motion-twin.com)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library has the special exception on linking described in file
+ * README.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *)	
+# 38 "xml_parser.ml"
+let yytransl_const = [|
+  257 (* NEXT *);
+  258 (* OR *);
+  260 (* PCDATA *);
+  261 (* STAR *);
+  262 (* QUESTION *);
+  263 (* PLUS *);
+  264 (* OPEN *);
+  265 (* CLOSE *);
+  266 (* END *);
+    0|]
+
+let yytransl_block = [|
+  259 (* IDENT *);
+    0|]
+
+let yylhs = "\255\255\
+\001\000\002\000\002\000\003\000\003\000\003\000\006\000\006\000\
+\007\000\007\000\005\000\005\000\008\000\008\000\008\000\008\000\
+\004\000\004\000\009\000\009\000\009\000\000\000"
+
+let yylen = "\002\000\
+\002\000\003\000\002\000\003\000\003\000\001\000\003\000\001\000\
+\003\000\001\000\002\000\001\000\002\000\002\000\001\000\001\000\
+\002\000\001\000\001\000\001\000\001\000\002\000"
+
+let yydefred = "\000\000\
+\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\
+\000\000\012\000\019\000\020\000\021\000\013\000\000\000\014\000\
+\011\000\001\000\000\000\000\000\000\000\017\000\002\000\000\000\
+\004\000\000\000\005\000\000\000\000\000\007\000\009\000"
+
+let yydgoto = "\002\000\
+\006\000\007\000\008\000\014\000\009\000\025\000\027\000\010\000\
+\015\000"
+
+let yysindex = "\002\000\
+\020\255\000\000\024\255\024\255\020\255\000\000\254\254\007\255\
+\031\255\000\000\000\000\000\000\000\000\000\000\024\255\000\000\
+\000\000\000\000\024\255\020\255\020\255\000\000\000\000\021\255\
+\000\000\019\255\000\000\020\255\020\255\000\000\000\000"
+
+let yyrindex = "\000\000\
+\000\000\000\000\005\255\018\255\000\000\000\000\000\000\000\000\
+\025\255\000\000\000\000\000\000\000\000\000\000\000\255\000\000\
+\000\000\000\000\003\255\000\000\000\000\000\000\000\000\026\255\
+\000\000\027\255\000\000\000\000\000\000\000\000\000\000"
+
+let yygindex = "\000\000\
+\000\000\032\000\000\000\252\255\253\255\010\000\011\000\000\000\
+\000\000"
+
+let yytablesize = 40
+let yytable = "\016\000\
+\018\000\018\000\001\000\003\000\003\000\015\000\015\000\018\000\
+\018\000\018\000\022\000\003\000\003\000\015\000\023\000\019\000\
+\024\000\026\000\016\000\016\000\029\000\028\000\003\000\004\000\
+\024\000\026\000\016\000\005\000\011\000\012\000\013\000\020\000\
+\021\000\006\000\008\000\010\000\017\000\030\000\000\000\031\000"
+
+let yycheck = "\004\000\
+\001\001\002\001\001\000\001\001\002\001\001\001\002\001\010\001\
+\009\001\010\001\015\000\009\001\010\001\009\001\019\000\009\001\
+\020\000\021\000\001\001\002\001\002\001\001\001\003\001\004\001\
+\028\000\029\000\009\001\008\001\005\001\006\001\007\001\001\001\
+\002\001\009\001\009\001\009\001\005\000\028\000\255\255\029\000"
+
+let yynames_const = "\
+  NEXT\000\
+  OR\000\
+  PCDATA\000\
+  STAR\000\
+  QUESTION\000\
+  PLUS\000\
+  OPEN\000\
+  CLOSE\000\
+  END\000\
+  "
+
+let yynames_block = "\
+  IDENT\000\
+  "
+
+let yyact = [|
+  (fun _ -> failwith "parser")
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'dtd_full_seq) in
+    Obj.repr(
+# 39 "xml_parser.mly"
+  ( _1 )
+# 129 "xml_parser.ml"
+               : Dtd.dtd_child))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'dtd_seq) in
+    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_op) in
+    Obj.repr(
+# 43 "xml_parser.mly"
+  ( _3 _1 )
+# 137 "xml_parser.ml"
+               : 'dtd_full_seq))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'dtd_seq) in
+    Obj.repr(
+# 45 "xml_parser.mly"
+  ( _1 )
+# 144 "xml_parser.ml"
+               : 'dtd_full_seq))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'dtd_item) in
+    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_children) in
+    Obj.repr(
+# 49 "xml_parser.mly"
+  ( Dtd.DTDChildren (_1 :: _3) )
+# 152 "xml_parser.ml"
+               : 'dtd_seq))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'dtd_item) in
+    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_choice) in
+    Obj.repr(
+# 51 "xml_parser.mly"
+  ( Dtd.DTDChoice (_1 :: _3) )
+# 160 "xml_parser.ml"
+               : 'dtd_seq))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_item) in
+    Obj.repr(
+# 53 "xml_parser.mly"
+  ( _1 )
+# 167 "xml_parser.ml"
+               : 'dtd_seq))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'dtd_item) in
+    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_children) in
+    Obj.repr(
+# 57 "xml_parser.mly"
+  ( _1 :: _3 )
+# 175 "xml_parser.ml"
+               : 'dtd_children))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_item) in
+    Obj.repr(
+# 59 "xml_parser.mly"
+  ( [_1] )
+# 182 "xml_parser.ml"
+               : 'dtd_children))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'dtd_item) in
+    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_choice) in
+    Obj.repr(
+# 63 "xml_parser.mly"
+  ( _1 :: _3 )
+# 190 "xml_parser.ml"
+               : 'dtd_choice))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_item) in
+    Obj.repr(
+# 65 "xml_parser.mly"
+  ( [_1] )
+# 197 "xml_parser.ml"
+               : 'dtd_choice))
+; (fun __caml_parser_env ->
+    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_full_seq) in
+    Obj.repr(
+# 69 "xml_parser.mly"
+  ( _2 )
+# 204 "xml_parser.ml"
+               : 'dtd_item))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_member) in
+    Obj.repr(
+# 71 "xml_parser.mly"
+  ( _1 )
+# 211 "xml_parser.ml"
+               : 'dtd_item))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
+    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_op) in
+    Obj.repr(
+# 75 "xml_parser.mly"
+  ( _2 (Dtd.DTDTag _1) )
+# 219 "xml_parser.ml"
+               : 'dtd_member))
+; (fun __caml_parser_env ->
+    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_op) in
+    Obj.repr(
+# 77 "xml_parser.mly"
+  ( _2 Dtd.DTDPCData )
+# 226 "xml_parser.ml"
+               : 'dtd_member))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+    Obj.repr(
+# 79 "xml_parser.mly"
+  ( Dtd.DTDTag _1 )
+# 233 "xml_parser.ml"
+               : 'dtd_member))
+; (fun __caml_parser_env ->
+    Obj.repr(
+# 81 "xml_parser.mly"
+  ( Dtd.DTDPCData )
+# 239 "xml_parser.ml"
+               : 'dtd_member))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'dtd_op_item) in
+    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_op) in
+    Obj.repr(
+# 85 "xml_parser.mly"
+  ( (fun x -> _2 (_1 x)) )
+# 247 "xml_parser.ml"
+               : 'dtd_op))
+; (fun __caml_parser_env ->
+    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'dtd_op_item) in
+    Obj.repr(
+# 87 "xml_parser.mly"
+  ( _1 )
+# 254 "xml_parser.ml"
+               : 'dtd_op))
+; (fun __caml_parser_env ->
+    Obj.repr(
+# 91 "xml_parser.mly"
+  ( (fun x -> Dtd.DTDZeroOrMore x) )
+# 260 "xml_parser.ml"
+               : 'dtd_op_item))
+; (fun __caml_parser_env ->
+    Obj.repr(
+# 93 "xml_parser.mly"
+  ( (fun x -> Dtd.DTDOptional x) )
+# 266 "xml_parser.ml"
+               : 'dtd_op_item))
+; (fun __caml_parser_env ->
+    Obj.repr(
+# 95 "xml_parser.mly"
+  ( (fun x -> Dtd.DTDOneOrMore x) )
+# 272 "xml_parser.ml"
+               : 'dtd_op_item))
+(* Entry dtd_element *)
+; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
+|]
+let yytables =
+  { Parsing.actions=yyact;
+    Parsing.transl_const=yytransl_const;
+    Parsing.transl_block=yytransl_block;
+    Parsing.lhs=yylhs;
+    Parsing.len=yylen;
+    Parsing.defred=yydefred;
+    Parsing.dgoto=yydgoto;
+    Parsing.sindex=yysindex;
+    Parsing.rindex=yyrindex;
+    Parsing.gindex=yygindex;
+    Parsing.tablesize=yytablesize;
+    Parsing.table=yytable;
+    Parsing.check=yycheck;
+    Parsing.error_function=parse_error;
+    Parsing.names_const=yynames_const;
+    Parsing.names_block=yynames_block }
+let dtd_element (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
+   (Parsing.yyparse yytables 1 lexfun lexbuf : Dtd.dtd_child)
