summaryrefslogtreecommitdiff
path: root/modules/scicos/src/xml2modelica
diff options
context:
space:
mode:
authorShashank2017-05-29 12:40:26 +0530
committerShashank2017-05-29 12:40:26 +0530
commit0345245e860375a32c9a437c4a9d9cae807134e9 (patch)
treead51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/scicos/src/xml2modelica
downloadscilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz
scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2
scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip
CMSCOPE changed
Diffstat (limited to 'modules/scicos/src/xml2modelica')
-rwxr-xr-xmodules/scicos/src/xml2modelica/linenum.cmibin0 -> 755 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/linenum.cmxbin0 -> 1732 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/linenum.ml139
-rwxr-xr-xmodules/scicos/src/xml2modelica/linenum.mll56
-rwxr-xr-xmodules/scicos/src/xml2modelica/linenum.obin0 -> 6480 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/makefile.mak61
-rwxr-xr-xmodules/scicos/src/xml2modelica/modelicaCodeGenerator.cmibin0 -> 729 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/modelicaCodeGenerator.cmxbin0 -> 992 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/modelicaCodeGenerator.ml110
-rwxr-xr-xmodules/scicos/src/xml2modelica/modelicaCodeGenerator.obin0 -> 23136 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringLexer.cmibin0 -> 759 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringLexer.cmxbin0 -> 2009 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringLexer.ml158
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringLexer.obin0 -> 7904 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringParser.cmibin0 -> 1428 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringParser.cmxbin0 -> 1030 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringParser.ml108
-rwxr-xr-xmodules/scicos/src/xml2modelica/stringParser.obin0 -> 6952 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xML2Modelica.cmibin0 -> 927 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xML2Modelica.cmxbin0 -> 1146 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xML2Modelica.ml80
-rwxr-xr-xmodules/scicos/src/xml2modelica/xML2Modelica.obin0 -> 13248 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLLexer.cmibin0 -> 2398 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLLexer.cmxbin0 -> 8670 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLLexer.ml832
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLLexer.obin0 -> 24912 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLParser.cmibin0 -> 2746 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLParser.cmxbin0 -> 2715 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLParser.ml514
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLParser.obin0 -> 25096 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLTree.cmibin0 -> 1155 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLTree.cmxbin0 -> 179 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLTree.ml54
-rwxr-xr-xmodules/scicos/src/xml2modelica/xMLTree.obin0 -> 1608 bytes
-rwxr-xr-xmodules/scicos/src/xml2modelica/xml2modelica.vcxproj113
-rwxr-xr-xmodules/scicos/src/xml2modelica/xml2modelica.vcxproj.filters22
36 files changed, 2247 insertions, 0 deletions
diff --git a/modules/scicos/src/xml2modelica/linenum.cmi b/modules/scicos/src/xml2modelica/linenum.cmi
new file mode 100755
index 000000000..d65e538f8
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/linenum.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/linenum.cmx b/modules/scicos/src/xml2modelica/linenum.cmx
new file mode 100755
index 000000000..b2a53f070
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/linenum.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/linenum.ml b/modules/scicos/src/xml2modelica/linenum.ml
new file mode 100755
index 000000000..d93117dfe
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/linenum.ml
@@ -0,0 +1,139 @@
+# 23 "src/xml2modelica/linenum.mll"
+
+
+(** Convert {! Parser.location } to line and column numbers. *)
+
+let linenum = ref 0
+let linebeg = ref 0
+
+
+# 11 "src/xml2modelica/linenum.ml"
+let __ocaml_lex_tables = {
+ Lexing.lex_base =
+ "\000\000\254\255\001\000\255\255";
+ Lexing.lex_backtrk =
+ "\255\255\255\255\000\000\255\255";
+ Lexing.lex_default =
+ "\000\000\000\000\255\255\000\000";
+ Lexing.lex_trans =
+ "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\003\000\003\000\000\000\002\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \001\000\000\000";
+ Lexing.lex_check =
+ "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\000\000\002\000\255\255\000\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\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \000\000\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 skip_line lexbuf =
+ __ocaml_lex_skip_line_rec lexbuf 0
+and __ocaml_lex_skip_line_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 34 "src/xml2modelica/linenum.mll"
+ ( incr linenum;
+ linebeg := Lexing.lexeme_start lexbuf;
+ Lexing.lexeme_end lexbuf )
+# 110 "src/xml2modelica/linenum.ml"
+
+ | 1 ->
+# 38 "src/xml2modelica/linenum.mll"
+ ( incr linenum;
+ linebeg := Lexing.lexeme_start lexbuf;
+ raise End_of_file )
+# 117 "src/xml2modelica/linenum.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
+ __ocaml_lex_skip_line_rec lexbuf __ocaml_lex_state
+
+;;
+
+# 42 "src/xml2modelica/linenum.mll"
+
+
+let for_position file loc =
+ let ic = open_in_bin file in
+ let lb = Lexing.from_channel ic in
+ linenum := 1;
+ linebeg := 0;
+ begin try
+ while skip_line lb <= loc do () done
+ with End_of_file -> ()
+ end;
+ close_in ic;
+ (!linenum - 1, !linebeg)
+
+
+# 140 "src/xml2modelica/linenum.ml"
diff --git a/modules/scicos/src/xml2modelica/linenum.mll b/modules/scicos/src/xml2modelica/linenum.mll
new file mode 100755
index 000000000..c043e44b3
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/linenum.mll
@@ -0,0 +1,56 @@
+(*
+ * Translator from Modelica 2.x to flat Modelica
+ *
+ * Copyright (C) 2005 - 2007 Imagine S.A.
+ * For more information or commercial use please contact us at www.amesim.com
+ *
+ * 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *)
+
+{
+
+(** Convert {! Parser.location } to line and column numbers. *)
+
+let linenum = ref 0
+let linebeg = ref 0
+
+}
+
+rule skip_line = parse
+ | [^ '\n' '\r']* ('\n' | '\r' | "\r\n")
+ { incr linenum;
+ linebeg := Lexing.lexeme_start lexbuf;
+ Lexing.lexeme_end lexbuf }
+ | [^ '\n' '\r']* eof
+ { incr linenum;
+ linebeg := Lexing.lexeme_start lexbuf;
+ raise End_of_file }
+
+{
+
+let for_position file loc =
+ let ic = open_in_bin file in
+ let lb = Lexing.from_channel ic in
+ linenum := 1;
+ linebeg := 0;
+ begin try
+ while skip_line lb <= loc do () done
+ with End_of_file -> ()
+ end;
+ close_in ic;
+ (!linenum - 1, !linebeg)
+
+}
diff --git a/modules/scicos/src/xml2modelica/linenum.o b/modules/scicos/src/xml2modelica/linenum.o
new file mode 100755
index 000000000..ab0861a93
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/linenum.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/makefile.mak b/modules/scicos/src/xml2modelica/makefile.mak
new file mode 100755
index 000000000..d0291b883
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/makefile.mak
@@ -0,0 +1,61 @@
+# Scicos
+#
+# Copyright (C) INRIA - scilab
+# Copyright (C) DIGITEO - 2009 - Allan CORNET
+#
+# 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# See the file ./license.txt
+
+!IF "$(OCAMLLIB)" == ""
+OCAMLPATH=C:\Program Files\Objective Caml
+!ELSE
+OCAMLPATH=$(OCAMLLIB)\..
+!ENDIF
+
+OCAMLPATHBIN=$(OCAMLPATH)\bin
+OCAMLPATHLIB=$(OCAMLPATH)\lib
+OCAMLC=ocamlc
+OCAMLOPT=ocamlopt
+OCAMLDEP=ocamldep
+CAMLP4=camlp4
+OCAMLYACC=ocamlyacc
+OCAMLLEX=ocamllex
+RM=del
+EXEC=xml2modelica.exe
+
+all::
+ $(OCAMLOPT) -c xMLTree.ml
+ $(OCAMLOPT) -c linenum.ml
+ $(OCAMLOPT) -c stringParser.ml
+ $(OCAMLOPT) -c stringLexer.ml
+ $(OCAMLOPT) -c xMLParser.ml
+ $(OCAMLOPT) -c xMLLexer.ml
+ $(OCAMLOPT) -c modelicaCodeGenerator.ml
+ $(OCAMLOPT) -c xML2Modelica.ml
+ $(OCAMLOPT) -o $(EXEC) xMLTree.cmx linenum.cmx stringParser.cmx stringLexer.cmx xMLParser.cmx xMLLexer.cmx modelicaCodeGenerator.cmx xML2Modelica.cmx
+ @copy $(EXEC) ..\..\..\..\bin\$(EXEC)
+
+clean::
+ @-$(RM) *.cmi
+ @-$(RM) *.cmo
+ @-$(RM) *.exe
+ @-$(RM) ..\..\..\..\bin\$(EXEC)
+
+distclean::
+ @-$(RM) *.cmi
+ @-$(RM) *.cmo
+ @-$(RM) *.exe
+
diff --git a/modules/scicos/src/xml2modelica/modelicaCodeGenerator.cmi b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.cmi
new file mode 100755
index 000000000..a713a0ec4
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/modelicaCodeGenerator.cmx b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.cmx
new file mode 100755
index 000000000..d45700281
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/modelicaCodeGenerator.ml b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.ml
new file mode 100755
index 000000000..fef2e2cb0
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.ml
@@ -0,0 +1,110 @@
+(*
+ * XML to Modelica
+ *
+ * Copyright (C) 2005 - 2007 Imagine S.A.
+ * For more information or commercial use please contact us at www.amesim.com
+ *
+ * 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *)
+
+open XMLTree
+
+let start_equations = ref []
+
+(* Decode XML special characters *)
+let decode_spc s =
+ let token_fun = StringLexer.token
+ and lexbuf = Lexing.from_string s in
+ StringParser.parse token_fun lexbuf
+
+let generate_attributes oc attribs =
+ let rec modified_attributes attribs = match attribs with
+ | [] -> []
+ | (attrib, value) :: attribs when value = "" ->
+ modified_attributes attribs
+ | (attrib, value) :: attribs ->
+ (attrib, value) :: (modified_attributes attribs) in
+ let rec generate_attributes' attribs = match attribs with
+ | [] -> ()
+ | [ (attrib, value) ] ->
+ Printf.fprintf oc "%s = %s" attrib value
+ | (attrib, value) :: attribs ->
+ Printf.fprintf oc "%s = %s, " attrib value;
+ generate_attributes' attribs in
+ match modified_attributes attribs with
+ | [] -> ()
+ | attribs ->
+ Printf.fprintf oc "(";
+ generate_attributes' attribs;
+ Printf.fprintf oc ")"
+
+let generate_code init filename model =
+ let generate_type_specifier oc t = match t.kind, t.output with
+ | Input, _ -> Printf.fprintf oc " input Real"
+ | (FixedParameter | Parameter), _ -> Printf.fprintf oc " parameter Real"
+ | Variable, true -> Printf.fprintf oc " output Real"
+ | DiscreteVariable, _ when init -> Printf.fprintf oc " Real"
+ | DiscreteVariable, _ -> Printf.fprintf oc " discrete Real"
+ | _ -> Printf.fprintf oc " Real"
+ and generate_identifier oc t =
+ Printf.fprintf oc " `%s`" (decode_spc t.id)
+ and generate_comment oc t =
+ Printf.fprintf oc " \"%s\";\n" (decode_spc t.comment) in
+ let generate_start_attribute oc t = match t.kind with
+ | _ when t.initial_value = "" -> ()
+ | Variable | DiscreteVariable when t.fixed <> "true" ->
+ generate_attributes oc [ "start", t.initial_value ]
+ | Variable | DiscreteVariable ->
+ let equ =
+ Printf.sprintf "`%s` = %s;" (decode_spc t.id) t.initial_value in
+ start_equations := equ :: !start_equations
+ | FixedParameter | Parameter when t.fixed <> "false" ->
+ let equ =
+ Printf.sprintf "`%s` = %s;" (decode_spc t.id) t.initial_value in
+ start_equations := equ :: !start_equations
+ | FixedParameter | Parameter ->
+ Printf.fprintf oc " = %s" t.initial_value
+ | Input -> () in
+ let rec generate_sub_elements oc = function
+ | [] -> ()
+ | Struct s :: elts ->
+ generate_sub_elements oc s.subnodes;
+ generate_sub_elements oc elts
+ | Terminal t :: elts ->
+ generate_terminal oc t;
+ generate_sub_elements oc elts
+ and generate_terminal oc t =
+ generate_type_specifier oc t;
+ generate_identifier oc t;
+ generate_start_attribute oc t;
+ generate_comment oc t
+ and generate_sub_equations oc = function
+ | [] -> ()
+ | equ :: equs ->
+ Printf.fprintf oc " %s\n" (decode_spc equ);
+ generate_sub_equations oc equs in
+ let oc = open_out filename in
+ start_equations := [];
+ Printf.fprintf oc
+ "class %s\n" (Filename.chop_suffix (Filename.basename filename) ".mo");
+ generate_sub_elements oc model.elements;
+ Printf.fprintf oc "equation\n";
+ generate_sub_equations oc
+ (!start_equations @ model.equations @ model.when_clauses);
+ Printf.fprintf oc
+ "end %s;\n" (Filename.chop_suffix (Filename.basename filename) ".mo");
+ close_out oc
+
diff --git a/modules/scicos/src/xml2modelica/modelicaCodeGenerator.o b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.o
new file mode 100755
index 000000000..574bac3d9
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/modelicaCodeGenerator.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/stringLexer.cmi b/modules/scicos/src/xml2modelica/stringLexer.cmi
new file mode 100755
index 000000000..0d5392157
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringLexer.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/stringLexer.cmx b/modules/scicos/src/xml2modelica/stringLexer.cmx
new file mode 100755
index 000000000..f119221e2
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringLexer.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/stringLexer.ml b/modules/scicos/src/xml2modelica/stringLexer.ml
new file mode 100755
index 000000000..3c1dcd4b2
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringLexer.ml
@@ -0,0 +1,158 @@
+# 23 "stringLexer.mll"
+
+
+open StringParser
+
+exception Illegal_character of char * int * int
+
+
+# 10 "stringLexer.ml"
+let __ocaml_lex_tables = {
+ Lexing.lex_base =
+ "\000\000\249\255\001\000\000\000\000\000\000\000\000\000\002\000\
+ \000\000\255\255\001\000\254\255\000\000\002\000\002\000\253\255\
+ \000\000\003\000\252\255\008\000\004\000\004\000\251\255";
+ Lexing.lex_backtrk =
+ "\005\000\255\255\005\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";
+ Lexing.lex_default =
+ "\002\000\000\000\002\000\255\255\255\255\255\255\255\255\255\255\
+ \255\255\000\000\255\255\000\000\255\255\255\255\255\255\000\000\
+ \255\255\255\255\000\000\255\255\255\255\255\255\000\000";
+ Lexing.lex_trans =
+ "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\003\000\255\255\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\009\000\011\000\015\000\018\000\022\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\005\000\000\000\000\000\000\000\000\000\000\000\006\000\
+ \000\000\000\000\000\000\000\000\007\000\013\000\000\000\016\000\
+ \012\000\004\000\014\000\017\000\010\000\019\000\008\000\020\000\
+ \021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \001\000\255\255\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\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\000\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\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\008\000\010\000\014\000\017\000\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\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\003\000\255\255\255\255\255\255\255\255\255\255\003\000\
+ \255\255\255\255\255\255\255\255\003\000\005\000\255\255\012\000\
+ \005\000\003\000\013\000\016\000\006\000\004\000\007\000\019\000\
+ \020\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\255\255\
+ \000\000\002\000\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 ->
+# 32 "stringLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in STRING "<" )
+# 115 "stringLexer.ml"
+
+ | 1 ->
+# 33 "stringLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in STRING ">" )
+# 120 "stringLexer.ml"
+
+ | 2 ->
+# 34 "stringLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in STRING "&" )
+# 125 "stringLexer.ml"
+
+ | 3 ->
+# 35 "stringLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in STRING "'" )
+# 130 "stringLexer.ml"
+
+ | 4 ->
+# 36 "stringLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in STRING "\"" )
+# 135 "stringLexer.ml"
+
+ | 5 ->
+# 37 "stringLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in STRING lxm )
+# 140 "stringLexer.ml"
+
+ | 6 ->
+# 38 "stringLexer.mll"
+ ( EOF )
+# 145 "stringLexer.ml"
+
+ | 7 ->
+# 39 "stringLexer.mll"
+ ( raise (
+ Illegal_character (
+ (Lexing.lexeme lexbuf).[0],
+ Lexing.lexeme_start lexbuf,
+ Lexing.lexeme_end lexbuf)) )
+# 154 "stringLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state
+
+;;
+
diff --git a/modules/scicos/src/xml2modelica/stringLexer.o b/modules/scicos/src/xml2modelica/stringLexer.o
new file mode 100755
index 000000000..eed9fe74e
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringLexer.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/stringParser.cmi b/modules/scicos/src/xml2modelica/stringParser.cmi
new file mode 100755
index 000000000..14005c1d5
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringParser.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/stringParser.cmx b/modules/scicos/src/xml2modelica/stringParser.cmx
new file mode 100755
index 000000000..1ea275915
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringParser.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/stringParser.ml b/modules/scicos/src/xml2modelica/stringParser.ml
new file mode 100755
index 000000000..d881fc77d
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringParser.ml
@@ -0,0 +1,108 @@
+type token =
+ | STRING of (string)
+ | EOF
+
+open Parsing;;
+# 23 "stringParser.mly"
+
+
+# 10 "stringParser.ml"
+let yytransl_const = [|
+ 0 (* EOF *);
+ 0|]
+
+let yytransl_block = [|
+ 257 (* STRING *);
+ 0|]
+
+let yylhs = "\255\255\
+\001\000\001\000\001\000\000\000"
+
+let yylen = "\002\000\
+\000\000\001\000\002\000\002\000"
+
+let yydefred = "\000\000\
+\000\000\000\000\002\000\000\000\003\000"
+
+let yydgoto = "\002\000\
+\004\000"
+
+let yysindex = "\255\255\
+\000\255\000\000\000\000\001\255\000\000"
+
+let yyrindex = "\000\000\
+\003\000\000\000\000\000\004\000\000\000"
+
+let yygindex = "\000\000\
+\000\000"
+
+let yytablesize = 4
+let yytable = "\001\000\
+\003\000\005\000\001\000\004\000"
+
+let yycheck = "\001\000\
+\001\001\001\001\000\000\000\000"
+
+let yynames_const = "\
+ EOF\000\
+ "
+
+let yynames_block = "\
+ STRING\000\
+ "
+
+let yyact = [|
+ (fun _ -> failwith "parser")
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 38 "stringParser.mly"
+ ( "" )
+# 61 "stringParser.ml"
+ : string))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 39 "stringParser.mly"
+ ( _1 )
+# 68 "stringParser.ml"
+ : string))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
+ let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 40 "stringParser.mly"
+ ( _1 ^ _2 )
+# 76 "stringParser.ml"
+ : string))
+(* Entry parse_string *)
+; (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 parse_string (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
+ (Parsing.yyparse yytables 1 lexfun lexbuf : string)
+;;
+# 43 "stringParser.mly"
+
+
+let parse token_fun lexbuf =
+ try
+ parse_string token_fun lexbuf
+ with
+ | _ -> assert false
+# 109 "stringParser.ml"
diff --git a/modules/scicos/src/xml2modelica/stringParser.o b/modules/scicos/src/xml2modelica/stringParser.o
new file mode 100755
index 000000000..6b09a183d
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/stringParser.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xML2Modelica.cmi b/modules/scicos/src/xml2modelica/xML2Modelica.cmi
new file mode 100755
index 000000000..10b92be5b
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xML2Modelica.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xML2Modelica.cmx b/modules/scicos/src/xml2modelica/xML2Modelica.cmx
new file mode 100755
index 000000000..0bf3c5d73
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xML2Modelica.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xML2Modelica.ml b/modules/scicos/src/xml2modelica/xML2Modelica.ml
new file mode 100755
index 000000000..b38e6d515
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xML2Modelica.ml
@@ -0,0 +1,80 @@
+(*
+ * XML to Modelica
+ *
+ * Copyright (C) 2005 - 2007 Imagine S.A.
+ * For more information or commercial use please contact us at www.amesim.com
+ *
+ * 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *)
+
+let sccs_id =
+ "@(#)XML2Modelica - Copyright (C) 2008 LMS Imagine"
+
+let version = "1.0"
+
+let output = ref ""
+
+let input = ref ""
+
+let init = ref false
+
+let check_filename () =
+ if Filename.check_suffix !input "xml" then ()
+ else failwith "check_filename: Filename suffix must be 'xml'"
+
+let check_output () =
+ if !output = "" then failwith "check_output: No output filename specified"
+
+let set_output s =
+ if !output <> "" then failwith "set_output: More than one output specified";
+ output := s
+
+let set_input s =
+ if !input <> "" then failwith "set_input: More than one input specified";
+ input := s
+
+let construct_output_filename () =
+ if !output = "" then begin
+ output := Filename.chop_suffix !input "mo"
+ end;
+ !output
+
+let parse_args () =
+ Arg.parse
+ [("-o", Arg.String set_output,
+ "<outputfile> Set output file name to <outputfile>");
+ ("-init", Arg.Set init,
+ "Generate flat Modelica code for initialization")]
+ set_input
+ ("usage: XML2modelica -o <outputfile> <inputfile>")
+
+let run () =
+ parse_args ();
+ check_filename ();
+ check_output ();
+ let ic = open_in !input in
+ Printf.printf "Input file name = %s\n" !input; flush stdout;
+ let lexbuf = Lexing.from_channel ic in
+ Printf.printf "Parsing..."; flush stdout;
+ let model = XMLParser.parse !input XMLLexer.token lexbuf in
+ let filename = construct_output_filename () in
+ Printf.printf "OK\nGenerating code..."; flush stdout;
+ ModelicaCodeGenerator.generate_code !init filename model;
+ Printf.printf " OK\nOutput file name = %s\n" !output; flush stdout;
+ Printf.printf "Terminated.\n"; flush stdout;
+ close_in ic
+
+let () = run ()
diff --git a/modules/scicos/src/xml2modelica/xML2Modelica.o b/modules/scicos/src/xml2modelica/xML2Modelica.o
new file mode 100755
index 000000000..a6e770996
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xML2Modelica.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLLexer.cmi b/modules/scicos/src/xml2modelica/xMLLexer.cmi
new file mode 100755
index 000000000..7728093c5
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLLexer.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLLexer.cmx b/modules/scicos/src/xml2modelica/xMLLexer.cmx
new file mode 100755
index 000000000..812d13d1b
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLLexer.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLLexer.ml b/modules/scicos/src/xml2modelica/xMLLexer.ml
new file mode 100755
index 000000000..744a46527
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLLexer.ml
@@ -0,0 +1,832 @@
+# 23 "xMLLexer.mll"
+
+
+open XMLParser
+
+exception Eof
+
+
+# 10 "xMLLexer.ml"
+let __ocaml_lex_tables = {
+ Lexing.lex_base =
+ "\000\000\214\255\215\255\045\000\002\000\117\000\079\000\254\255\
+ \255\255\197\000\211\000\221\000\233\000\248\000\250\255\081\001\
+ \117\000\006\000\013\000\036\000\021\000\039\000\033\000\040\000\
+ \041\000\068\000\190\000\048\000\196\000\033\000\033\000\062\000\
+ \074\000\069\000\000\000\249\255\003\000\109\001\081\000\071\000\
+ \094\000\112\000\110\001\005\000\210\000\011\000\090\001\001\000\
+ \233\255\006\000\117\001\144\000\135\000\138\000\156\000\119\001\
+ \008\000\054\001\014\000\122\001\002\000\232\255\170\000\183\000\
+ \193\000\034\000\248\255\191\000\188\000\206\000\196\000\213\000\
+ \192\000\214\000\232\000\225\000\015\001\013\000\118\001\010\001\
+ \021\001\025\001\033\001\035\001\031\001\023\001\040\001\034\001\
+ \044\001\085\001\247\255\034\001\054\001\044\001\044\001\057\001\
+ \057\001\044\001\098\001\243\255\045\001\064\001\048\001\103\001\
+ \242\255\056\001\067\001\106\001\239\255\107\001\237\255\056\001\
+ \063\001\069\001\065\001\079\001\069\001\119\001\225\255\067\001\
+ \085\001\080\001\089\001\083\001\078\001\081\001\136\001\224\255\
+ \104\001\086\001\098\001\094\001\097\001\094\001\149\001\221\255\
+ \111\001\103\001\120\001\117\001\109\001\121\001\104\001\107\001\
+ \122\001\110\001\164\001\217\255\128\001\128\001\122\001\169\001\
+ \216\255\116\001\133\001\128\001\138\001\131\001\126\001\128\001\
+ \182\001\246\255\148\001\130\001\142\001\137\001\139\001\241\001\
+ \242\001\190\001\223\255\145\001\158\001\143\001\141\001\160\001\
+ \144\001\199\001\245\255\152\001\152\001\164\001\164\001\151\001\
+ \205\001\244\255\167\001\170\001\154\001\170\001\172\001\010\002\
+ \011\002\180\001\170\001\164\001\181\001\018\002\019\002\251\001\
+ \024\002\224\001\227\255\025\002\001\002\230\001\226\255\181\001\
+ \188\001\195\001\191\001\205\001\195\001\242\001\241\255\195\001\
+ \208\001\249\001\203\001\240\255\201\001\211\001\214\001\000\002\
+ \029\002\034\002\031\002\032\002\036\002\035\002\042\002\070\002\
+ \046\002\041\002\075\002\086\002\091\002\103\002\218\001\012\002\
+ \238\255\217\001\232\001\241\001\231\001\245\001\223\001\245\001\
+ \238\001\233\001\004\002\134\002\145\002\243\001\007\002\010\002\
+ \147\002\155\002\011\002\008\002\011\002\012\002\002\002\160\002\
+ \161\002\025\002\041\002\042\002\060\002\162\002\172\002\138\002\
+ \173\002\162\002\114\002\234\255\074\002\093\002\091\002\083\002\
+ \100\002\081\002\084\002\099\002\194\002\199\002\155\002\219\255\
+ \147\002\220\255\101\002\102\002\112\002\104\002\099\002\209\002\
+ \215\002\100\002\107\002\104\002\111\002\000\000\167\002\228\255\
+ \114\002\253\255\136\002\126\002\118\002\135\002\229\002\231\002\
+ \203\002\230\002\183\002\128\002\151\002\141\002\133\002\151\002\
+ \001\003\006\003\219\002\017\003\009\003\193\002\139\002\159\002\
+ \150\002\150\002\167\002\041\003\047\003\235\002\048\003\049\003\
+ \211\002\156\002\184\002\175\002\167\002\192\002\065\003\050\003\
+ \013\003\083\003\074\003\233\002\182\002\204\002\199\002\191\002\
+ \213\002\108\003\111\003\042\003\123\003\110\003\003\003\204\002\
+ \226\002\216\002\208\002\232\002\120\003\145\003\056\003\148\003\
+ \152\003\023\003";
+ Lexing.lex_backtrk =
+ "\255\255\255\255\255\255\041\000\041\000\004\000\002\000\255\255\
+ \255\255\255\255\003\000\003\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\026\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\
+ \033\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\024\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\020\000\255\255\255\255\255\255\
+ \255\255\019\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\037\000\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \025\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\002\000\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\002\000\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\002\000\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\002\000\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\002\000\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \002\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255";
+ Lexing.lex_default =
+ "\001\000\000\000\000\000\255\255\016\000\255\255\255\255\000\000\
+ \000\000\255\255\255\255\255\255\255\255\255\255\000\000\255\255\
+ \016\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\000\000\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\044\000\255\255\255\255\255\255\
+ \000\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\057\000\255\255\255\255\255\255\000\000\255\255\255\255\
+ \255\255\255\255\000\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\000\000\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\
+ \000\000\255\255\255\255\255\255\000\000\255\255\000\000\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\255\255\255\255\255\255\000\000\
+ \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\255\255\255\255\255\255\
+ \255\255\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
+ \000\000\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\255\255\
+ \255\255\255\255\000\000\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\
+ \255\255\000\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\199\000\
+ \255\255\255\255\000\000\255\255\255\255\255\255\000\000\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\000\000\255\255\
+ \255\255\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
+ \224\000\255\255\224\000\224\000\224\000\224\000\224\000\224\000\
+ \224\000\224\000\224\000\224\000\224\000\224\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\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\015\001\
+ \255\255\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\
+ \255\255\000\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\000\000\
+ \049\001\000\000\255\255\255\255\255\255\255\255\255\255\255\255\
+ \056\001\255\255\255\255\049\001\255\255\255\255\255\255\255\255\
+ \255\255\255\255\066\001\255\255\255\255\255\255\049\001\255\255\
+ \255\255\255\255\255\255\255\255\255\255\077\001\255\255\255\255\
+ \255\255\049\001\255\255\255\255\255\255\255\255\255\255\255\255\
+ \088\001\255\255\255\255\255\255\049\001\255\255\255\255\255\255\
+ \255\255\255\255\255\255\099\001\255\255\255\255\255\255\049\001\
+ \255\255\255\255\255\255\255\255\255\255\255\255\110\001\255\255\
+ \255\255\255\255";
+ Lexing.lex_trans =
+ "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\008\000\007\000\000\000\037\000\008\000\043\000\050\000\
+ \037\000\056\000\043\000\050\000\045\000\056\000\078\000\058\000\
+ \045\000\000\000\078\000\058\000\000\000\000\000\000\000\000\000\
+ \008\000\000\000\004\000\037\000\014\000\043\000\050\000\044\000\
+ \056\000\000\000\057\000\045\000\000\000\078\000\058\000\046\001\
+ \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\
+ \006\000\006\000\047\000\000\000\003\000\060\000\035\000\048\000\
+ \061\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\026\000\005\000\015\000\005\000\
+ \066\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\041\001\034\001\010\000\253\000\006\000\
+ \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\
+ \006\000\003\001\215\000\239\000\002\001\207\000\171\000\049\000\
+ \018\000\063\000\025\000\020\000\009\000\238\000\021\000\014\000\
+ \022\000\036\000\028\000\027\000\017\000\173\000\172\000\062\000\
+ \024\000\023\000\032\000\013\000\019\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\033\000\
+ \154\000\034\000\039\000\040\000\009\000\153\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\015\000\005\000\041\000\005\000\042\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \012\000\052\000\012\000\053\000\045\000\011\000\011\000\011\000\
+ \011\000\011\000\011\000\011\000\011\000\011\000\011\000\054\000\
+ \002\000\055\000\255\255\010\000\010\000\010\000\010\000\010\000\
+ \010\000\010\000\010\000\010\000\010\000\011\000\011\000\011\000\
+ \011\000\011\000\011\000\011\000\011\000\011\000\011\000\067\000\
+ \009\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
+ \011\000\011\000\011\000\081\000\064\000\030\000\065\000\083\000\
+ \068\000\084\000\069\000\079\000\086\000\029\000\046\000\070\000\
+ \071\000\085\000\082\000\031\000\072\000\080\000\073\000\074\000\
+ \009\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\075\000\005\000\076\000\005\000\
+ \058\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\016\000\077\000\255\255\037\000\042\000\
+ \016\000\148\000\037\000\042\000\044\000\136\000\050\000\078\000\
+ \055\000\044\000\050\000\078\000\055\000\120\000\111\000\109\000\
+ \105\000\087\000\119\000\091\000\092\000\037\000\042\000\088\000\
+ \016\000\089\000\059\000\090\000\100\000\050\000\078\000\055\000\
+ \093\000\044\000\094\000\095\000\057\000\096\000\097\000\098\000\
+ \099\000\057\000\101\000\102\000\103\000\104\000\106\000\107\000\
+ \108\000\110\000\112\000\043\000\113\000\016\000\114\000\115\000\
+ \116\000\117\000\016\000\016\000\056\000\118\000\044\000\016\000\
+ \128\000\057\000\121\000\044\000\044\000\122\000\123\000\016\000\
+ \044\000\124\000\125\000\016\000\126\000\016\000\127\000\016\000\
+ \044\000\129\000\130\000\131\000\044\000\132\000\044\000\133\000\
+ \044\000\134\000\255\255\135\000\137\000\138\000\057\000\139\000\
+ \140\000\141\000\142\000\057\000\057\000\143\000\144\000\145\000\
+ \057\000\146\000\147\000\038\000\149\000\150\000\151\000\152\000\
+ \057\000\162\000\155\000\051\000\057\000\156\000\057\000\157\000\
+ \057\000\158\000\159\000\160\000\161\000\163\000\164\000\165\000\
+ \166\000\167\000\168\000\168\000\170\000\186\000\168\000\168\000\
+ \179\000\174\000\175\000\176\000\177\000\178\000\180\000\181\000\
+ \182\000\183\000\184\000\185\000\187\000\188\000\189\000\190\000\
+ \191\000\168\000\168\000\192\000\192\000\194\000\195\000\192\000\
+ \192\000\196\000\197\000\197\000\198\000\203\000\202\000\197\000\
+ \198\000\200\000\203\000\199\000\206\000\200\000\203\000\208\000\
+ \199\000\209\000\192\000\192\000\210\000\211\000\212\000\213\000\
+ \214\000\216\000\197\000\198\000\217\000\199\000\255\255\219\000\
+ \200\000\203\000\220\000\221\000\222\000\223\000\224\000\255\255\
+ \199\000\255\255\255\255\241\000\224\000\255\255\255\255\201\000\
+ \205\000\224\000\240\000\255\255\255\255\242\000\227\000\198\000\
+ \255\255\243\000\244\000\245\000\246\000\247\000\248\000\204\000\
+ \218\000\226\000\249\000\226\000\226\000\199\000\250\000\226\000\
+ \226\000\224\000\199\000\199\000\169\000\226\000\226\000\199\000\
+ \255\255\251\000\226\000\254\000\255\000\255\255\000\001\199\000\
+ \020\001\004\001\005\001\199\000\006\001\199\000\007\001\199\000\
+ \255\255\225\000\010\001\225\000\225\000\255\255\224\000\225\000\
+ \225\000\193\000\226\000\224\000\224\000\225\000\225\000\226\000\
+ \224\000\255\255\225\000\228\000\200\000\229\000\231\000\252\000\
+ \224\000\230\000\226\000\252\000\224\000\011\001\224\000\226\000\
+ \224\000\237\000\252\000\234\000\001\001\233\000\252\000\012\001\
+ \001\001\013\001\225\000\226\000\001\001\232\000\252\000\225\000\
+ \001\001\008\001\008\001\013\001\016\001\008\001\008\001\013\001\
+ \019\001\252\000\225\000\001\001\235\000\014\001\016\001\225\000\
+ \021\001\014\001\016\001\001\001\022\001\236\000\023\001\024\001\
+ \008\001\008\001\013\001\225\000\015\001\025\001\026\001\027\001\
+ \028\001\015\001\032\001\029\001\014\001\016\001\015\001\029\001\
+ \029\001\033\001\035\001\036\001\029\001\037\001\038\001\039\001\
+ \042\001\031\001\040\001\043\001\018\001\044\001\040\001\014\001\
+ \040\001\015\001\029\001\045\001\040\001\047\001\017\001\029\001\
+ \050\001\051\001\052\001\053\001\054\001\057\001\054\001\057\001\
+ \055\001\040\001\054\001\057\001\055\001\008\000\060\001\040\001\
+ \061\001\062\001\063\001\255\255\064\001\067\001\015\001\008\000\
+ \072\001\071\001\073\001\015\001\015\001\054\001\057\001\055\001\
+ \015\001\056\001\064\001\074\001\075\001\078\001\064\001\065\001\
+ \015\001\008\000\082\001\065\001\015\001\058\001\015\001\009\001\
+ \015\001\083\001\067\001\084\001\085\001\255\255\067\001\255\255\
+ \255\255\064\001\055\001\255\255\255\255\086\001\065\001\008\000\
+ \066\001\255\255\255\255\066\001\093\001\094\001\255\255\089\001\
+ \066\001\067\001\075\001\095\001\096\001\030\001\075\001\068\001\
+ \076\001\078\001\097\001\087\001\076\001\078\001\065\001\087\001\
+ \069\001\008\000\104\001\105\001\106\001\107\001\255\255\079\001\
+ \066\001\075\001\086\001\255\255\100\001\108\001\086\001\076\001\
+ \078\001\077\001\087\001\077\001\088\001\008\000\255\255\000\000\
+ \077\001\000\000\111\001\255\255\089\001\000\000\000\000\080\001\
+ \089\001\086\001\000\000\000\000\000\000\066\001\076\001\255\255\
+ \000\000\090\001\066\001\066\001\088\001\000\000\000\000\066\001\
+ \077\001\088\001\007\000\089\001\000\000\097\001\000\000\066\001\
+ \098\001\097\001\000\000\066\001\098\001\066\001\087\001\066\001\
+ \007\000\108\001\091\001\000\000\100\001\108\001\101\001\000\000\
+ \100\001\088\001\255\255\007\000\097\001\077\001\000\000\098\001\
+ \099\001\099\001\077\001\077\001\112\001\099\001\000\000\077\001\
+ \108\001\000\000\109\001\100\001\007\000\111\001\109\001\077\001\
+ \000\000\111\001\000\000\077\001\000\000\077\001\088\001\077\001\
+ \000\000\098\001\102\001\088\001\088\001\099\001\000\000\000\000\
+ \088\001\109\001\000\000\110\001\111\001\109\001\007\000\000\000\
+ \088\001\000\000\110\001\000\000\088\001\000\000\088\001\110\001\
+ \088\001\000\000\000\000\113\001\000\000\000\000\000\000\000\000\
+ \000\000\000\000\099\001\255\255\007\000\000\000\000\000\099\001\
+ \099\001\000\000\000\000\000\000\099\001\000\000\000\000\110\001\
+ \000\000\000\000\000\000\255\255\099\001\000\000\000\000\000\000\
+ \099\001\000\000\099\001\000\000\099\001\000\000\000\000\000\000\
+ \000\000\000\000\000\000\255\255\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\110\001\000\000\000\000\000\000\
+ \000\000\110\001\110\001\000\000\000\000\000\000\110\001\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\110\001\000\000\
+ \000\000\000\000\110\001\000\000\110\001\255\255\110\001\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\255\255\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\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\255\255\036\000\000\000\043\000\049\000\
+ \036\000\056\000\043\000\049\000\045\000\056\000\077\000\058\000\
+ \045\000\255\255\077\000\058\000\255\255\255\255\255\255\255\255\
+ \000\000\255\255\000\000\036\000\004\000\043\000\049\000\043\000\
+ \056\000\255\255\056\000\045\000\255\255\077\000\058\000\045\001\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\045\000\255\255\000\000\058\000\034\000\047\000\
+ \060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\003\000\000\000\004\000\000\000\
+ \065\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+ \000\000\000\000\000\000\017\000\018\000\006\000\020\000\006\000\
+ \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\
+ \006\000\019\000\022\000\021\000\019\000\023\000\024\000\029\000\
+ \003\000\027\000\003\000\003\000\006\000\021\000\003\000\016\000\
+ \003\000\030\000\003\000\003\000\003\000\024\000\024\000\027\000\
+ \003\000\003\000\031\000\005\000\003\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\032\000\
+ \025\000\033\000\038\000\039\000\006\000\025\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\016\000\005\000\040\000\005\000\041\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
+ \009\000\051\000\009\000\052\000\044\000\009\000\009\000\009\000\
+ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\053\000\
+ \000\000\054\000\004\000\010\000\010\000\010\000\010\000\010\000\
+ \010\000\010\000\010\000\010\000\010\000\011\000\011\000\011\000\
+ \011\000\011\000\011\000\011\000\011\000\011\000\011\000\062\000\
+ \010\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\
+ \012\000\012\000\012\000\026\000\063\000\028\000\064\000\026\000\
+ \067\000\026\000\068\000\026\000\026\000\028\000\044\000\069\000\
+ \070\000\026\000\026\000\028\000\071\000\026\000\072\000\073\000\
+ \010\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
+ \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
+ \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
+ \013\000\013\000\013\000\013\000\074\000\013\000\075\000\013\000\
+ \057\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
+ \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
+ \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
+ \013\000\013\000\013\000\015\000\076\000\016\000\037\000\042\000\
+ \015\000\079\000\037\000\042\000\046\000\080\000\050\000\078\000\
+ \055\000\046\000\050\000\078\000\055\000\081\000\082\000\083\000\
+ \084\000\086\000\081\000\085\000\085\000\037\000\042\000\087\000\
+ \015\000\088\000\057\000\089\000\091\000\050\000\078\000\055\000\
+ \092\000\046\000\093\000\094\000\059\000\095\000\096\000\097\000\
+ \098\000\059\000\100\000\101\000\102\000\103\000\105\000\106\000\
+ \107\000\109\000\111\000\042\000\112\000\015\000\113\000\114\000\
+ \115\000\116\000\015\000\015\000\055\000\117\000\046\000\015\000\
+ \119\000\059\000\120\000\046\000\046\000\121\000\122\000\015\000\
+ \046\000\123\000\124\000\015\000\125\000\015\000\126\000\015\000\
+ \046\000\128\000\129\000\130\000\046\000\131\000\046\000\132\000\
+ \046\000\133\000\044\000\134\000\136\000\137\000\059\000\138\000\
+ \139\000\140\000\141\000\059\000\059\000\142\000\143\000\144\000\
+ \059\000\145\000\146\000\037\000\148\000\149\000\150\000\151\000\
+ \059\000\153\000\154\000\050\000\059\000\155\000\059\000\156\000\
+ \059\000\157\000\158\000\159\000\160\000\162\000\163\000\164\000\
+ \165\000\166\000\167\000\168\000\169\000\171\000\167\000\168\000\
+ \172\000\173\000\174\000\175\000\176\000\177\000\179\000\180\000\
+ \181\000\182\000\183\000\184\000\186\000\187\000\188\000\189\000\
+ \190\000\167\000\168\000\191\000\192\000\193\000\194\000\191\000\
+ \192\000\195\000\196\000\197\000\198\000\199\000\201\000\197\000\
+ \198\000\200\000\203\000\204\000\205\000\200\000\203\000\207\000\
+ \204\000\208\000\191\000\192\000\209\000\210\000\211\000\212\000\
+ \213\000\215\000\197\000\198\000\216\000\198\000\057\000\217\000\
+ \200\000\203\000\218\000\220\000\221\000\222\000\223\000\224\000\
+ \204\000\226\000\227\000\238\000\225\000\229\000\228\000\200\000\
+ \203\000\225\000\239\000\233\000\230\000\241\000\226\000\197\000\
+ \232\000\242\000\243\000\244\000\245\000\246\000\247\000\199\000\
+ \217\000\224\000\248\000\226\000\227\000\204\000\249\000\229\000\
+ \228\000\225\000\204\000\204\000\167\000\233\000\230\000\204\000\
+ \231\000\250\000\232\000\253\000\254\000\234\000\255\000\204\000\
+ \002\001\003\001\004\001\204\000\005\001\204\000\006\001\204\000\
+ \235\000\224\000\009\001\226\000\227\000\236\000\225\000\229\000\
+ \228\000\192\000\231\000\225\000\225\000\233\000\230\000\234\000\
+ \225\000\237\000\232\000\227\000\198\000\228\000\230\000\251\000\
+ \225\000\229\000\235\000\251\000\225\000\010\001\225\000\236\000\
+ \225\000\236\000\252\000\233\000\000\001\232\000\252\000\011\001\
+ \000\001\012\001\231\000\237\000\001\001\231\000\251\000\234\000\
+ \001\001\007\001\008\001\013\001\015\001\007\001\008\001\013\001\
+ \018\001\252\000\235\000\000\001\234\000\014\001\016\001\236\000\
+ \020\001\014\001\016\001\001\001\021\001\235\000\022\001\023\001\
+ \007\001\008\001\013\001\237\000\017\001\024\001\025\001\026\001\
+ \027\001\017\001\030\001\028\001\014\001\016\001\014\001\028\001\
+ \029\001\032\001\034\001\035\001\029\001\036\001\037\001\038\001\
+ \041\001\030\001\039\001\042\001\016\001\043\001\039\001\013\001\
+ \040\001\017\001\028\001\044\001\040\001\046\001\015\001\029\001\
+ \048\001\050\001\051\001\052\001\053\001\056\001\054\001\057\001\
+ \055\001\039\001\054\001\057\001\055\001\058\001\059\001\040\001\
+ \060\001\061\001\062\001\199\000\063\001\066\001\017\001\069\001\
+ \071\001\070\001\072\001\017\001\017\001\054\001\057\001\055\001\
+ \017\001\055\001\064\001\073\001\074\001\077\001\064\001\065\001\
+ \017\001\080\001\081\001\065\001\017\001\057\001\017\001\008\001\
+ \017\001\082\001\067\001\083\001\084\001\224\000\067\001\226\000\
+ \227\000\064\001\054\001\229\000\228\000\085\001\065\001\091\001\
+ \065\001\233\000\230\000\068\001\092\001\093\001\232\000\088\001\
+ \068\001\067\001\075\001\094\001\095\001\028\001\075\001\066\001\
+ \076\001\078\001\096\001\087\001\076\001\078\001\064\001\087\001\
+ \067\001\102\001\103\001\104\001\105\001\106\001\231\000\077\001\
+ \068\001\075\001\086\001\234\000\099\001\107\001\086\001\076\001\
+ \078\001\076\001\087\001\079\001\087\001\113\001\235\000\255\255\
+ \079\001\255\255\110\001\236\000\089\001\255\255\255\255\078\001\
+ \089\001\086\001\255\255\255\255\255\255\068\001\075\001\237\000\
+ \255\255\088\001\068\001\068\001\090\001\255\255\255\255\068\001\
+ \079\001\090\001\048\001\089\001\255\255\097\001\255\255\068\001\
+ \098\001\097\001\255\255\068\001\098\001\068\001\086\001\068\001\
+ \059\001\108\001\089\001\255\255\100\001\108\001\099\001\255\255\
+ \100\001\090\001\015\001\070\001\097\001\079\001\255\255\098\001\
+ \101\001\098\001\079\001\079\001\110\001\101\001\255\255\079\001\
+ \108\001\255\255\109\001\100\001\081\001\111\001\109\001\079\001\
+ \255\255\111\001\255\255\079\001\255\255\079\001\090\001\079\001\
+ \255\255\097\001\100\001\090\001\090\001\101\001\255\255\255\255\
+ \090\001\109\001\255\255\109\001\111\001\108\001\092\001\255\255\
+ \090\001\255\255\112\001\255\255\090\001\255\255\090\001\112\001\
+ \090\001\255\255\255\255\111\001\255\255\255\255\255\255\255\255\
+ \255\255\255\255\101\001\056\001\103\001\255\255\255\255\101\001\
+ \101\001\255\255\255\255\255\255\101\001\255\255\255\255\112\001\
+ \255\255\255\255\255\255\066\001\101\001\255\255\255\255\255\255\
+ \101\001\255\255\101\001\255\255\101\001\255\255\255\255\255\255\
+ \255\255\255\255\255\255\077\001\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\112\001\255\255\255\255\255\255\
+ \255\255\112\001\112\001\255\255\255\255\255\255\112\001\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\112\001\255\255\
+ \255\255\255\255\112\001\255\255\112\001\088\001\112\001\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\099\001\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \110\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
+ \255\255\255\255\255\255\255\255\255\255\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 ->
+# 49 "xMLLexer.mll"
+ ( token lexbuf )
+# 475 "xMLLexer.ml"
+
+ | 1 ->
+# 52 "xMLLexer.mll"
+ ( token lexbuf )
+# 480 "xMLLexer.ml"
+
+ | 2 ->
+# 56 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ UNSIGNED_INTEGER lxm )
+# 486 "xMLLexer.ml"
+
+ | 3 ->
+# 60 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ UNSIGNED_NUMBER lxm )
+# 492 "xMLLexer.ml"
+
+ | 4 ->
+# 64 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ IDENT lxm )
+# 498 "xMLLexer.ml"
+
+ | 5 ->
+# 68 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ STRING (String.sub lxm 1 (String.length lxm - 2)) )
+# 504 "xMLLexer.ml"
+
+ | 6 ->
+# 71 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in MODEL_TAG )
+# 509 "xMLLexer.ml"
+
+ | 7 ->
+# 72 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in NAME_TAG )
+# 514 "xMLLexer.ml"
+
+ | 8 ->
+# 73 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in NAME_END_TAG )
+# 519 "xMLLexer.ml"
+
+ | 9 ->
+# 74 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENTS_TAG )
+# 524 "xMLLexer.ml"
+
+ | 10 ->
+# 75 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_STRUCT_TAG )
+# 529 "xMLLexer.ml"
+
+ | 11 ->
+# 76 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_STRUCT_SUBNODES_TAG )
+# 534 "xMLLexer.ml"
+
+ | 12 ->
+# 77 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_STRUCT_SUBNODES_END_TAG )
+# 539 "xMLLexer.ml"
+
+ | 13 ->
+# 78 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_STRUCT_END_TAG )
+# 544 "xMLLexer.ml"
+
+ | 14 ->
+# 79 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_TAG )
+# 549 "xMLLexer.ml"
+
+ | 15 ->
+# 80 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_KIND_TAG )
+# 554 "xMLLexer.ml"
+
+ | 16 ->
+# 81 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_KIND_END_TAG )
+# 559 "xMLLexer.ml"
+
+ | 17 ->
+# 82 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_ID_TAG )
+# 564 "xMLLexer.ml"
+
+ | 18 ->
+# 83 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_ID_END_TAG )
+# 569 "xMLLexer.ml"
+
+ | 19 ->
+# 84 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in element_fixed_value lexbuf )
+# 574 "xMLLexer.ml"
+
+ | 20 ->
+# 85 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in element_terminal_initial_value_value lexbuf )
+# 579 "xMLLexer.ml"
+
+ | 21 ->
+# 86 "xMLLexer.mll"
+ ( token lexbuf )
+# 584 "xMLLexer.ml"
+
+ | 22 ->
+# 87 "xMLLexer.mll"
+ ( token lexbuf )
+# 589 "xMLLexer.ml"
+
+ | 23 ->
+# 88 "xMLLexer.mll"
+ ( token lexbuf )
+# 594 "xMLLexer.ml"
+
+ | 24 ->
+# 89 "xMLLexer.mll"
+ ( token lexbuf )
+# 599 "xMLLexer.ml"
+
+ | 25 ->
+# 90 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in element_terminal_comment_value lexbuf )
+# 604 "xMLLexer.ml"
+
+ | 26 ->
+# 91 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in element_terminal_nominal_value_value lexbuf )
+# 609 "xMLLexer.ml"
+
+ | 27 ->
+# 92 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_OUTPUT_TAG )
+# 614 "xMLLexer.ml"
+
+ | 28 ->
+# 93 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_SELECT_TAG )
+# 619 "xMLLexer.ml"
+
+ | 29 ->
+# 94 "xMLLexer.mll"
+ ( token lexbuf )
+# 624 "xMLLexer.ml"
+
+ | 30 ->
+# 95 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENT_TERMINAL_END_TAG )
+# 629 "xMLLexer.ml"
+
+ | 31 ->
+# 96 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in ELEMENTS_END_TAG )
+# 634 "xMLLexer.ml"
+
+ | 32 ->
+# 97 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in EQUATIONS_TAG )
+# 639 "xMLLexer.ml"
+
+ | 33 ->
+# 98 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in equation_value lexbuf )
+# 644 "xMLLexer.ml"
+
+ | 34 ->
+# 99 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in EQUATIONS_END_TAG )
+# 649 "xMLLexer.ml"
+
+ | 35 ->
+# 100 "xMLLexer.mll"
+ ( token lexbuf )
+# 654 "xMLLexer.ml"
+
+ | 36 ->
+# 101 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in WHEN_CLAUSES_TAG )
+# 659 "xMLLexer.ml"
+
+ | 37 ->
+# 102 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in when_clause_value lexbuf )
+# 664 "xMLLexer.ml"
+
+ | 38 ->
+# 103 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in WHEN_CLAUSES_END_TAG )
+# 669 "xMLLexer.ml"
+
+ | 39 ->
+# 104 "xMLLexer.mll"
+ ( let _ = Lexing.lexeme lexbuf in MODEL_END_TAG )
+# 674 "xMLLexer.ml"
+
+ | 40 ->
+# 106 "xMLLexer.mll"
+ ( EOF )
+# 679 "xMLLexer.ml"
+
+ | 41 ->
+# 108 "xMLLexer.mll"
+ ( ERROR )
+# 684 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state
+
+and element_terminal_comment_value lexbuf =
+ __ocaml_lex_element_terminal_comment_value_rec lexbuf 304
+and __ocaml_lex_element_terminal_comment_value_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 113 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ let i = String.index lxm '\"'
+ and j = String.rindex lxm '\"' in
+ ELEMENT_TERMINAL_COMMENT_VALUE_TAG (String.sub lxm (i + 1) (j - i - 1)) )
+# 698 "xMLLexer.ml"
+
+ | 1 ->
+# 117 "xMLLexer.mll"
+ ( EOF )
+# 703 "xMLLexer.ml"
+
+ | 2 ->
+# 119 "xMLLexer.mll"
+ ( ERROR )
+# 708 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_element_terminal_comment_value_rec lexbuf __ocaml_lex_state
+
+and element_terminal_initial_value_value lexbuf =
+ __ocaml_lex_element_terminal_initial_value_value_rec lexbuf 315
+and __ocaml_lex_element_terminal_initial_value_value_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 124 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ let i = String.index lxm '\"'
+ and j = String.rindex lxm '\"' in
+ ELEMENT_TERMINAL_INITIAL_VALUE_VALUE_TAG (String.sub lxm (i + 1) (j - i - 1)) )
+# 722 "xMLLexer.ml"
+
+ | 1 ->
+# 128 "xMLLexer.mll"
+ ( EOF )
+# 727 "xMLLexer.ml"
+
+ | 2 ->
+# 130 "xMLLexer.mll"
+ ( ERROR )
+# 732 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_element_terminal_initial_value_value_rec lexbuf __ocaml_lex_state
+
+and element_fixed_value lexbuf =
+ __ocaml_lex_element_fixed_value_rec lexbuf 326
+and __ocaml_lex_element_fixed_value_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 135 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ let i = String.index lxm '\"'
+ and j = String.rindex lxm '\"' in
+ ELEMENT_TERMINAL_FIXED_VALUE_TAG (String.sub lxm (i + 1) (j - i - 1)) )
+# 746 "xMLLexer.ml"
+
+ | 1 ->
+# 139 "xMLLexer.mll"
+ ( EOF )
+# 751 "xMLLexer.ml"
+
+ | 2 ->
+# 141 "xMLLexer.mll"
+ ( ERROR )
+# 756 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_element_fixed_value_rec lexbuf __ocaml_lex_state
+
+and element_terminal_nominal_value_value lexbuf =
+ __ocaml_lex_element_terminal_nominal_value_value_rec lexbuf 337
+and __ocaml_lex_element_terminal_nominal_value_value_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 146 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ let i = String.index lxm '\"'
+ and j = String.rindex lxm '\"' in
+ ELEMENT_TERMINAL_NOMINAL_VALUE_VALUE_TAG (String.sub lxm (i + 1) (j - i - 1)) )
+# 770 "xMLLexer.ml"
+
+ | 1 ->
+# 150 "xMLLexer.mll"
+ ( EOF )
+# 775 "xMLLexer.ml"
+
+ | 2 ->
+# 152 "xMLLexer.mll"
+ ( ERROR )
+# 780 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_element_terminal_nominal_value_value_rec lexbuf __ocaml_lex_state
+
+and equation_value lexbuf =
+ __ocaml_lex_equation_value_rec lexbuf 348
+and __ocaml_lex_equation_value_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 157 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ let i = String.index lxm '\"'
+ and j = String.rindex lxm '\"' in
+ EQUATION_VALUE_TAG (String.sub lxm (i + 1) (j - i - 1)) )
+# 794 "xMLLexer.ml"
+
+ | 1 ->
+# 161 "xMLLexer.mll"
+ ( EOF )
+# 799 "xMLLexer.ml"
+
+ | 2 ->
+# 163 "xMLLexer.mll"
+ ( ERROR )
+# 804 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_equation_value_rec lexbuf __ocaml_lex_state
+
+and when_clause_value lexbuf =
+ __ocaml_lex_when_clause_value_rec lexbuf 359
+and __ocaml_lex_when_clause_value_rec lexbuf __ocaml_lex_state =
+ match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
+ | 0 ->
+# 168 "xMLLexer.mll"
+ ( let lxm = Lexing.lexeme lexbuf in
+ let i = String.index lxm '\"'
+ and j = String.rindex lxm '\"' in
+ WHEN_CLAUSE_VALUE_TAG (String.sub lxm (i + 1) (j - i - 1)) )
+# 818 "xMLLexer.ml"
+
+ | 1 ->
+# 172 "xMLLexer.mll"
+ ( EOF )
+# 823 "xMLLexer.ml"
+
+ | 2 ->
+# 174 "xMLLexer.mll"
+ ( ERROR )
+# 828 "xMLLexer.ml"
+
+ | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_when_clause_value_rec lexbuf __ocaml_lex_state
+
+;;
+
diff --git a/modules/scicos/src/xml2modelica/xMLLexer.o b/modules/scicos/src/xml2modelica/xMLLexer.o
new file mode 100755
index 000000000..37e173ec8
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLLexer.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLParser.cmi b/modules/scicos/src/xml2modelica/xMLParser.cmi
new file mode 100755
index 000000000..6fae4eceb
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLParser.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLParser.cmx b/modules/scicos/src/xml2modelica/xMLParser.cmx
new file mode 100755
index 000000000..c99328d3f
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLParser.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLParser.ml b/modules/scicos/src/xml2modelica/xMLParser.ml
new file mode 100755
index 000000000..0b3882f1c
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLParser.ml
@@ -0,0 +1,514 @@
+type token =
+ | IDENT of (string)
+ | UNSIGNED_INTEGER of (string)
+ | UNSIGNED_NUMBER of (string)
+ | STRING of (string)
+ | MODEL_TAG
+ | MODEL_END_TAG
+ | NAME_TAG
+ | NAME_END_TAG
+ | ELEMENTS_TAG
+ | ELEMENT_STRUCT_TAG
+ | ELEMENT_STRUCT_SUBNODES_TAG
+ | ELEMENT_STRUCT_SUBNODES_END_TAG
+ | ELEMENT_STRUCT_END_TAG
+ | ELEMENT_TERMINAL_TAG
+ | ELEMENT_TERMINAL_KIND_TAG
+ | ELEMENT_TERMINAL_KIND_END_TAG
+ | ELEMENT_TERMINAL_ID_TAG
+ | ELEMENT_TERMINAL_ID_END_TAG
+ | ELEMENT_TERMINAL_END_TAG
+ | ELEMENTS_END_TAG
+ | EQUATIONS_TAG
+ | EQUATIONS_END_TAG
+ | WHEN_CLAUSES_TAG
+ | WHEN_CLAUSES_END_TAG
+ | ELEMENT_TERMINAL_OUTPUT_TAG
+ | ELEMENT_TERMINAL_SELECT_TAG
+ | ELEMENT_TERMINAL_COMMENT_VALUE_TAG of (string)
+ | ELEMENT_TERMINAL_INITIAL_VALUE_VALUE_TAG of (string)
+ | ELEMENT_TERMINAL_NOMINAL_VALUE_VALUE_TAG of (string)
+ | ELEMENT_TERMINAL_FIXED_VALUE_TAG of (string)
+ | EQUATION_VALUE_TAG of (string)
+ | WHEN_CLAUSE_VALUE_TAG of (string)
+ | ERROR
+ | EOF
+
+open Parsing;;
+# 28 "xMLParser.mly"
+
+
+ open XMLTree
+
+# 44 "xMLParser.ml"
+let yytransl_const = [|
+ 261 (* MODEL_TAG *);
+ 262 (* MODEL_END_TAG *);
+ 263 (* NAME_TAG *);
+ 264 (* NAME_END_TAG *);
+ 265 (* ELEMENTS_TAG *);
+ 266 (* ELEMENT_STRUCT_TAG *);
+ 267 (* ELEMENT_STRUCT_SUBNODES_TAG *);
+ 268 (* ELEMENT_STRUCT_SUBNODES_END_TAG *);
+ 269 (* ELEMENT_STRUCT_END_TAG *);
+ 270 (* ELEMENT_TERMINAL_TAG *);
+ 271 (* ELEMENT_TERMINAL_KIND_TAG *);
+ 272 (* ELEMENT_TERMINAL_KIND_END_TAG *);
+ 273 (* ELEMENT_TERMINAL_ID_TAG *);
+ 274 (* ELEMENT_TERMINAL_ID_END_TAG *);
+ 275 (* ELEMENT_TERMINAL_END_TAG *);
+ 276 (* ELEMENTS_END_TAG *);
+ 277 (* EQUATIONS_TAG *);
+ 278 (* EQUATIONS_END_TAG *);
+ 279 (* WHEN_CLAUSES_TAG *);
+ 280 (* WHEN_CLAUSES_END_TAG *);
+ 281 (* ELEMENT_TERMINAL_OUTPUT_TAG *);
+ 282 (* ELEMENT_TERMINAL_SELECT_TAG *);
+ 289 (* ERROR *);
+ 0 (* EOF *);
+ 0|]
+
+let yytransl_block = [|
+ 257 (* IDENT *);
+ 258 (* UNSIGNED_INTEGER *);
+ 259 (* UNSIGNED_NUMBER *);
+ 260 (* STRING *);
+ 283 (* ELEMENT_TERMINAL_COMMENT_VALUE_TAG *);
+ 284 (* ELEMENT_TERMINAL_INITIAL_VALUE_VALUE_TAG *);
+ 285 (* ELEMENT_TERMINAL_NOMINAL_VALUE_VALUE_TAG *);
+ 286 (* ELEMENT_TERMINAL_FIXED_VALUE_TAG *);
+ 287 (* EQUATION_VALUE_TAG *);
+ 288 (* WHEN_CLAUSE_VALUE_TAG *);
+ 0|]
+
+let yylhs = "\255\255\
+\001\000\002\000\003\000\005\000\008\000\008\000\009\000\009\000\
+\010\000\004\000\012\000\011\000\013\000\014\000\018\000\018\000\
+\016\000\016\000\015\000\015\000\017\000\017\000\019\000\019\000\
+\020\000\020\000\006\000\021\000\021\000\022\000\007\000\007\000\
+\023\000\023\000\024\000\000\000"
+
+let yylen = "\002\000\
+\002\000\003\000\004\000\003\000\000\000\002\000\003\000\003\000\
+\002\000\003\000\003\000\009\000\003\000\003\000\000\000\001\000\
+\000\000\001\000\000\000\001\000\000\000\001\000\000\000\001\000\
+\000\000\001\000\003\000\000\000\002\000\001\000\000\000\003\000\
+\000\000\002\000\001\000\002\000"
+
+let yydefred = "\000\000\
+\000\000\000\000\000\000\036\000\000\000\000\000\000\000\000\000\
+\001\000\000\000\002\000\005\000\000\000\010\000\000\000\028\000\
+\000\000\000\000\000\000\004\000\006\000\000\000\033\000\003\000\
+\000\000\000\000\000\000\000\000\027\000\030\000\029\000\000\000\
+\005\000\009\000\007\000\000\000\000\000\008\000\032\000\035\000\
+\034\000\000\000\000\000\000\000\000\000\011\000\013\000\000\000\
+\020\000\000\000\014\000\018\000\000\000\022\000\000\000\016\000\
+\000\000\024\000\000\000\026\000\012\000"
+
+let yydgoto = "\002\000\
+\004\000\005\000\007\000\008\000\013\000\017\000\024\000\015\000\
+\021\000\026\000\028\000\034\000\037\000\045\000\050\000\053\000\
+\055\000\057\000\059\000\061\000\022\000\031\000\032\000\041\000"
+
+let yysindex = "\002\000\
+\255\254\000\000\010\255\000\000\019\000\021\255\017\255\023\255\
+\000\000\025\255\000\000\000\000\013\255\000\000\004\255\000\000\
+\019\255\010\255\010\255\000\000\000\000\250\254\000\000\000\000\
+\024\255\027\255\030\255\028\255\000\000\000\000\000\000\253\254\
+\000\000\000\000\000\000\043\255\031\255\000\000\000\000\000\000\
+\000\000\029\255\033\255\045\255\020\255\000\000\000\000\034\255\
+\000\000\026\255\000\000\000\000\022\255\000\000\032\255\000\000\
+\035\255\000\000\036\255\000\000\000\000"
+
+let yyrindex = "\000\000\
+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+\047\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+\000\000\000\000\000\000\000\000\237\254\000\000\000\000\000\000\
+\000\000\242\254\000\000\000\000\001\255\000\000\011\255\000\000\
+\012\255\000\000\037\255\000\000\000\000"
+
+let yygindex = "\000\000\
+\000\000\000\000\000\000\239\255\000\000\000\000\000\000\022\000\
+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
+
+let yytablesize = 62
+let yytable = "\019\000\
+\025\000\027\000\001\000\003\000\017\000\019\000\019\000\019\000\
+\019\000\019\000\017\000\017\000\017\000\018\000\017\000\029\000\
+\006\000\019\000\009\000\021\000\039\000\010\000\011\000\020\000\
+\030\000\021\000\021\000\021\000\040\000\015\000\023\000\012\000\
+\014\000\016\000\033\000\015\000\015\000\023\000\018\000\035\000\
+\046\000\023\000\019\000\043\000\036\000\048\000\038\000\044\000\
+\047\000\049\000\054\000\051\000\031\000\052\000\042\000\025\000\
+\000\000\000\000\056\000\058\000\000\000\060\000"
+
+let yycheck = "\019\001\
+\018\000\019\000\001\000\005\001\019\001\025\001\026\001\027\001\
+\028\001\029\001\025\001\026\001\027\001\010\001\029\001\022\001\
+\007\001\014\001\000\000\019\001\024\001\001\001\006\001\020\001\
+\031\001\025\001\026\001\027\001\032\001\019\001\019\001\009\001\
+\008\001\021\001\011\001\025\001\026\001\026\001\010\001\013\001\
+\012\001\023\001\014\001\001\001\015\001\001\001\019\001\017\001\
+\016\001\030\001\029\001\018\001\006\001\028\001\033\000\019\001\
+\255\255\255\255\027\001\025\001\255\255\026\001"
+
+let yynames_const = "\
+ MODEL_TAG\000\
+ MODEL_END_TAG\000\
+ NAME_TAG\000\
+ NAME_END_TAG\000\
+ ELEMENTS_TAG\000\
+ ELEMENT_STRUCT_TAG\000\
+ ELEMENT_STRUCT_SUBNODES_TAG\000\
+ ELEMENT_STRUCT_SUBNODES_END_TAG\000\
+ ELEMENT_STRUCT_END_TAG\000\
+ ELEMENT_TERMINAL_TAG\000\
+ ELEMENT_TERMINAL_KIND_TAG\000\
+ ELEMENT_TERMINAL_KIND_END_TAG\000\
+ ELEMENT_TERMINAL_ID_TAG\000\
+ ELEMENT_TERMINAL_ID_END_TAG\000\
+ ELEMENT_TERMINAL_END_TAG\000\
+ ELEMENTS_END_TAG\000\
+ EQUATIONS_TAG\000\
+ EQUATIONS_END_TAG\000\
+ WHEN_CLAUSES_TAG\000\
+ WHEN_CLAUSES_END_TAG\000\
+ ELEMENT_TERMINAL_OUTPUT_TAG\000\
+ ELEMENT_TERMINAL_SELECT_TAG\000\
+ ERROR\000\
+ EOF\000\
+ "
+
+let yynames_block = "\
+ IDENT\000\
+ UNSIGNED_INTEGER\000\
+ UNSIGNED_NUMBER\000\
+ STRING\000\
+ ELEMENT_TERMINAL_COMMENT_VALUE_TAG\000\
+ ELEMENT_TERMINAL_INITIAL_VALUE_VALUE_TAG\000\
+ ELEMENT_TERMINAL_NOMINAL_VALUE_VALUE_TAG\000\
+ ELEMENT_TERMINAL_FIXED_VALUE_TAG\000\
+ EQUATION_VALUE_TAG\000\
+ WHEN_CLAUSE_VALUE_TAG\000\
+ "
+
+let yyact = [|
+ (fun _ -> failwith "parser")
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 1 : 'definition) in
+ Obj.repr(
+# 65 "xMLParser.mly"
+ ( _1 )
+# 207 "xMLParser.ml"
+ : XMLTree.t))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'model_definition) in
+ Obj.repr(
+# 69 "xMLParser.mly"
+ ( _2 )
+# 214 "xMLParser.ml"
+ : 'definition))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 3 : 'name) in
+ let _2 = (Parsing.peek_val __caml_parser_env 2 : 'elements_definition) in
+ let _3 = (Parsing.peek_val __caml_parser_env 1 : 'equations_definition) in
+ let _4 = (Parsing.peek_val __caml_parser_env 0 : 'when_clauses_definition) in
+ Obj.repr(
+# 74 "xMLParser.mly"
+ ( { name = _1; elements = _2; equations = _3; when_clauses = _4 } )
+# 224 "xMLParser.ml"
+ : 'model_definition))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'element_list) in
+ Obj.repr(
+# 78 "xMLParser.mly"
+ ( List.rev _2 )
+# 231 "xMLParser.ml"
+ : 'elements_definition))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 82 "xMLParser.mly"
+ ( [] )
+# 237 "xMLParser.ml"
+ : 'element_list))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 1 : 'element_list) in
+ let _2 = (Parsing.peek_val __caml_parser_env 0 : 'element_definition) in
+ Obj.repr(
+# 83 "xMLParser.mly"
+ ( _2 :: _1 )
+# 245 "xMLParser.ml"
+ : 'element_list))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'struct_contents) in
+ Obj.repr(
+# 87 "xMLParser.mly"
+ ( Struct _2 )
+# 252 "xMLParser.ml"
+ : 'element_definition))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'terminal_contents) in
+ Obj.repr(
+# 89 "xMLParser.mly"
+ ( Terminal _2 )
+# 259 "xMLParser.ml"
+ : 'element_definition))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 1 : 'name) in
+ let _2 = (Parsing.peek_val __caml_parser_env 0 : 'subnodes_definition) in
+ Obj.repr(
+# 93 "xMLParser.mly"
+ ( { struct_name = _1; subnodes = _2 } )
+# 267 "xMLParser.ml"
+ : 'struct_contents))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in
+ Obj.repr(
+# 97 "xMLParser.mly"
+ ( _2 )
+# 274 "xMLParser.ml"
+ : 'name))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'element_list) in
+ Obj.repr(
+# 102 "xMLParser.mly"
+ ( List.rev _2 )
+# 281 "xMLParser.ml"
+ : 'subnodes_definition))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 8 : 'name) in
+ let _2 = (Parsing.peek_val __caml_parser_env 7 : 'kind) in
+ let _3 = (Parsing.peek_val __caml_parser_env 6 : 'id) in
+ let _4 = (Parsing.peek_val __caml_parser_env 5 : 'fixed_value) in
+ let _5 = (Parsing.peek_val __caml_parser_env 4 : 'initial_value_value) in
+ let _6 = (Parsing.peek_val __caml_parser_env 3 : 'nominal_value_value) in
+ let _7 = (Parsing.peek_val __caml_parser_env 2 : 'comment_value) in
+ let _8 = (Parsing.peek_val __caml_parser_env 1 : 'output) in
+ let _9 = (Parsing.peek_val __caml_parser_env 0 : 'select) in
+ Obj.repr(
+# 108 "xMLParser.mly"
+ ( { terminal_name = _1;
+ kind = _2;
+ id = _3;
+ comment = _7;
+ initial_value = _5;
+ nominal = _6;
+ output = _8;
+ select = _9;
+ fixed = _4 } )
+# 304 "xMLParser.ml"
+ : 'terminal_contents))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in
+ Obj.repr(
+# 121 "xMLParser.mly"
+ ( match _2 with
+ | "input" -> Input
+ | "fixed_parameter" -> FixedParameter
+ | "parameter" -> Parameter
+ | "variable" -> Variable
+ | "discrete_variable" -> DiscreteVariable
+ | _ -> raise Parsing.Parse_error )
+# 317 "xMLParser.ml"
+ : 'kind))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : string) in
+ Obj.repr(
+# 132 "xMLParser.mly"
+ ( _2 )
+# 324 "xMLParser.ml"
+ : 'id))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 136 "xMLParser.mly"
+ ( "" )
+# 330 "xMLParser.ml"
+ : 'comment_value))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 137 "xMLParser.mly"
+ ( _1 )
+# 337 "xMLParser.ml"
+ : 'comment_value))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 141 "xMLParser.mly"
+ ( "" )
+# 343 "xMLParser.ml"
+ : 'initial_value_value))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 142 "xMLParser.mly"
+ ( _1 )
+# 350 "xMLParser.ml"
+ : 'initial_value_value))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 146 "xMLParser.mly"
+ ( "" )
+# 356 "xMLParser.ml"
+ : 'fixed_value))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 147 "xMLParser.mly"
+ ( _1 )
+# 363 "xMLParser.ml"
+ : 'fixed_value))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 151 "xMLParser.mly"
+ ( "" )
+# 369 "xMLParser.ml"
+ : 'nominal_value_value))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 152 "xMLParser.mly"
+ ( _1 )
+# 376 "xMLParser.ml"
+ : 'nominal_value_value))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 156 "xMLParser.mly"
+ ( false )
+# 382 "xMLParser.ml"
+ : 'output))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 157 "xMLParser.mly"
+ ( true )
+# 388 "xMLParser.ml"
+ : 'output))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 161 "xMLParser.mly"
+ ( false )
+# 394 "xMLParser.ml"
+ : 'select))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 162 "xMLParser.mly"
+ ( true )
+# 400 "xMLParser.ml"
+ : 'select))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'equation_list) in
+ Obj.repr(
+# 166 "xMLParser.mly"
+ ( List.rev _2 )
+# 407 "xMLParser.ml"
+ : 'equations_definition))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 170 "xMLParser.mly"
+ ( [] )
+# 413 "xMLParser.ml"
+ : 'equation_list))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 1 : 'equation_list) in
+ let _2 = (Parsing.peek_val __caml_parser_env 0 : 'equation_definition) in
+ Obj.repr(
+# 171 "xMLParser.mly"
+ ( _2 :: _1 )
+# 421 "xMLParser.ml"
+ : 'equation_list))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 175 "xMLParser.mly"
+ ( _1 )
+# 428 "xMLParser.ml"
+ : 'equation_definition))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 179 "xMLParser.mly"
+ ( [] )
+# 434 "xMLParser.ml"
+ : 'when_clauses_definition))
+; (fun __caml_parser_env ->
+ let _2 = (Parsing.peek_val __caml_parser_env 1 : 'when_clause_list) in
+ Obj.repr(
+# 180 "xMLParser.mly"
+ ( List.rev _2 )
+# 441 "xMLParser.ml"
+ : 'when_clauses_definition))
+; (fun __caml_parser_env ->
+ Obj.repr(
+# 184 "xMLParser.mly"
+ ( [] )
+# 447 "xMLParser.ml"
+ : 'when_clause_list))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 1 : 'when_clause_list) in
+ let _2 = (Parsing.peek_val __caml_parser_env 0 : 'when_clause_definition) in
+ Obj.repr(
+# 185 "xMLParser.mly"
+ ( _2 :: _1 )
+# 455 "xMLParser.ml"
+ : 'when_clause_list))
+; (fun __caml_parser_env ->
+ let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
+ Obj.repr(
+# 189 "xMLParser.mly"
+ ( _1 )
+# 462 "xMLParser.ml"
+ : 'when_clause_definition))
+(* Entry xML_definition_eof *)
+; (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 xML_definition_eof (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
+ (Parsing.yyparse yytables 1 lexfun lexbuf : XMLTree.t)
+;;
+# 192 "xMLParser.mly"
+
+
+let parse filename token_fun lexbuf =
+ try
+ xML_definition_eof token_fun lexbuf
+ with
+ | Parsing.Parse_error ->
+ let linenum, linebeg =
+ Linenum.for_position filename (Lexing.lexeme_start lexbuf)
+ and linenum', linebeg' =
+ Linenum.for_position filename (Lexing.lexeme_end lexbuf)
+ in
+ let first_char = Lexing.lexeme_start lexbuf - linebeg
+ and first_char' = Lexing.lexeme_end lexbuf - linebeg'
+ in
+ Printf.printf
+ "Syntax error.\n\
+ Start: %d and %d\n\
+ Characters %d and %d\n\
+ Line %d, character %d.\n\
+ Line %d, character %d.\n"
+ linebeg
+ linebeg'
+ (Lexing.lexeme_start lexbuf) (Lexing.lexeme_end lexbuf)
+ linenum first_char
+ linenum' first_char';
+ raise Exit
+# 515 "xMLParser.ml"
diff --git a/modules/scicos/src/xml2modelica/xMLParser.o b/modules/scicos/src/xml2modelica/xMLParser.o
new file mode 100755
index 000000000..487a2a1eb
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLParser.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLTree.cmi b/modules/scicos/src/xml2modelica/xMLTree.cmi
new file mode 100755
index 000000000..2ce79d361
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLTree.cmi
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLTree.cmx b/modules/scicos/src/xml2modelica/xMLTree.cmx
new file mode 100755
index 000000000..1e88c97ee
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLTree.cmx
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xMLTree.ml b/modules/scicos/src/xml2modelica/xMLTree.ml
new file mode 100755
index 000000000..c9aae0981
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLTree.ml
@@ -0,0 +1,54 @@
+(*
+ * XML to Modelica
+ *
+ * Copyright (C) 2005 - 2007 Imagine S.A.
+ * For more information or commercial use please contact us at www.amesim.com
+ *
+ * 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *)
+
+type t =
+ {
+ name: string;
+ elements: element list;
+ equations: string list;
+ when_clauses: string list
+ }
+
+and element =
+ | Struct of structured_element
+ | Terminal of terminal_element
+
+and structured_element =
+ {
+ struct_name: string;
+ subnodes: element list
+ }
+
+and terminal_element =
+ {
+ terminal_name: string;
+ kind: kind;
+ id: string;
+ comment: string;
+ initial_value: string;
+ nominal: string;
+ output: bool;
+ select: bool;
+ fixed: string
+ }
+
+and kind = Input | FixedParameter | Parameter | Variable | DiscreteVariable
diff --git a/modules/scicos/src/xml2modelica/xMLTree.o b/modules/scicos/src/xml2modelica/xMLTree.o
new file mode 100755
index 000000000..0972a3e0a
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xMLTree.o
Binary files differ
diff --git a/modules/scicos/src/xml2modelica/xml2modelica.vcxproj b/modules/scicos/src/xml2modelica/xml2modelica.vcxproj
new file mode 100755
index 000000000..f0b77db53
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xml2modelica.vcxproj
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{7CF15086-6DED-4F83-9C40-C4951FD373B3}</ProjectGuid>
+ <Keyword>MakeFileProj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">nmake /f makefile.mak all /a</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">nmake /f makefile.mak all /a</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">nmake /f makefile.mak clean /a</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">xml2modelica.exe</NMakeOutput>
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">nmake /f makefile.mak all /a</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">nmake /f makefile.mak all /a</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">nmake /f makefile.mak clean /a</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">xml2modelica.exe</NMakeOutput>
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nmake /f makefile.mak all /a</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nmake /f makefile.mak all /a</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nmake /f makefile.mak clean /a</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">xml2modelica.exe</NMakeOutput>
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">nmake /f makefile.mak all /a</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">nmake /f makefile.mak all /a</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">nmake /f makefile.mak clean /a</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'">xml2modelica.exe</NMakeOutput>
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="makefile.mak" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/modules/scicos/src/xml2modelica/xml2modelica.vcxproj.filters b/modules/scicos/src/xml2modelica/xml2modelica.vcxproj.filters
new file mode 100755
index 000000000..aaca9a412
--- /dev/null
+++ b/modules/scicos/src/xml2modelica/xml2modelica.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="makefile.mak">
+ <Filter>Source Files</Filter>
+ </None>
+ </ItemGroup>
+</Project> \ No newline at end of file