diff --git a/tools/rml/include/diff/rml.h b/tools/rml/include/diff/rml.h
index 7c9d049b849310a91e80158529ac11d80b60f749..e1768b9550031ba62c2788b999ec3dcf961658bb 100644
--- a/tools/rml/include/diff/rml.h
+++ b/tools/rml/include/diff/rml.h
@@ -40,9 +40,9 @@ typedef unsigned int rml_uint_t;
 
 #define RML_GCCGOTO
 #define RML_GCCGOTO_NOSHIFT
-/* starting rml.h */
-#ifndef _RML_H_
-#define _RML_H_
+/* starting rml.h */
+#ifndef _RML_H_
+#define _RML_H_
 /* 
  * This file is part of OpenModelica.
  * 
@@ -804,645 +804,645 @@ extern void rml_prim_gc(rml_uint_t, rml_uint_t);
 
 
 
-
-/*
- * rml-predef.h
- */
-
-extern void rml_prim_motor(rml_labptr_t);
-extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
-extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
-/* let the print relation be available for non-debug-version-rml-library also */
-extern void rmldb_var_print(void *p);
-
-/*
- * Standard procedures
- * adrpo added Java named RML buildin relations 2005-11-10
- */
-
-/* roots */
-extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
-extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
-/* java named */
-#define RML__setGlobalRoot  RML__set_5fglobal_5froot
-#define RML__getGlobalRoot  RML__get_5fglobal_5froot
-
-/* references */
-extern RML_FORWARD_LABEL(RML__reference_5feq);
-extern RML_FORWARD_LABEL(RML__reference_5finteger);
-extern RML_FORWARD_LABEL(RML__reference_5fupdate);
-extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
-extern RML_FORWARD_LABEL(RML__reference_5fshare);
-/* java named */
-#define RML__referenceEq       RML__reference_5feq
-#define RML__referenceInteger  RML__reference_5finteger
-#define RML__referenceUpdate   RML__reference_5fupdate
-#define RML__referenceSetNth   RML__reference_5fsetnth
-#define RML__referenceShare    RML__reference_5fshare
-
-/* values */
-extern RML_FORWARD_LABEL(RML__value_5fconstructor);
-extern RML_FORWARD_LABEL(RML__value_5fslots);
-extern RML_FORWARD_LABEL(RML__value_5feq);
-extern RML_FORWARD_LABEL(RML__value_5fmatch);
-extern RML_FORWARD_LABEL(RML__value_5fhash);
-extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
-/* java named */
-#define RML__valueConstructor RML__value_5fconstructor
-#define RML__valueSlots       RML__value_5fslots
-#define RML__valueEq          RML__value_5feq
-#define RML__valueMatch       RML__value_5fmatch
-#define RML__valueHash        RML__value_5fhash
-#define RML__valueHashMod     RML__value_5fhash_5fmod
-
-/* booleans */
-extern RML_FORWARD_LABEL(RML__bool_5fand);
-extern RML_FORWARD_LABEL(RML__bool_5fnot);
-extern RML_FORWARD_LABEL(RML__bool_5for);
-extern RML_FORWARD_LABEL(RML__bool_5feq);
-extern RML_FORWARD_LABEL(RML__bool_5fstring);
-/* java named */
-#define RML__boolAnd    RML__bool_5fand
-#define RML__boolNot    RML__bool_5fnot
-#define RML__boolOr     RML__bool_5for
-#define RML__boolEq     RML__bool_5feq
-#define RML__boolString RML__bool_5fstring
-
-/* chars */
-extern RML_FORWARD_LABEL(RML__int_5fint);
-extern RML_FORWARD_LABEL(RML__list_5fstring);
-extern RML_FORWARD_LABEL(RML__string_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fnth);
-extern RML_FORWARD_LABEL(RML__string_5fget);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth);
-extern RML_FORWARD_LABEL(RML__string_5fupdate);
-extern RML_FORWARD_LABEL(RML__string_5fequal);
-extern RML_FORWARD_LABEL(RML__string_5fcompare);
-/* hash functions */
-extern RML_FORWARD_LABEL(RML__string_5fhash);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
-#define RML__char_5fint	RML__int_5fint
-#define RML__int_5fchar	RML__int_5fint
-/* java named */
-#define RML__intChar        RML__int_5fint
-#define RML__charInt        RML__int_5fint
-#define RML__listString     RML__list_5fstring
-#define RML__stringList     RML__string_5flist
-#define RML__stringNth      RML__string_5fnth
-#define RML__stringGet      RML__string_5fget
-#define RML__stringSetNth   RML__string_5fset_5fnth
-#define RML__stringUpdate   RML__string_5fupdate
-#define RML__stringEqual    RML__string_5fequal
-#define RML__stringCompare  RML__string_5fcompare
-#define RML__stringEq       RML__string_5fequal
-#define RML__string_5feq    RML__string_5fequal
-/* hash functions */
-#define RML__stringHash     RML__string_5fhash
-#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
-#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
-
-/* string chars */
-extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
-extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
-/* java named */
-#define RML__stringCharInt           RML__string_5fchar_5fint
-#define RML__intStringChar           RML__int_5fstring_5fchar
-#define RML__listStringChar          RML__list_5fstring_5fchar
-#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
-#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
-#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
-#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
-#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
-#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
-
-extern RML_FORWARD_LABEL(RML__int_5fabs);
-extern RML_FORWARD_LABEL(RML__int_5fadd);
-extern RML_FORWARD_LABEL(RML__int_5fdiv);
-extern RML_FORWARD_LABEL(RML__int_5feq);
-extern RML_FORWARD_LABEL(RML__int_5fge);
-extern RML_FORWARD_LABEL(RML__int_5fgt);
-extern RML_FORWARD_LABEL(RML__int_5fle);
-extern RML_FORWARD_LABEL(RML__int_5flt);
-extern RML_FORWARD_LABEL(RML__int_5fmax);
-extern RML_FORWARD_LABEL(RML__int_5fmin);
-extern RML_FORWARD_LABEL(RML__int_5fmod);
-extern RML_FORWARD_LABEL(RML__int_5fmul);
-extern RML_FORWARD_LABEL(RML__int_5fne);
-extern RML_FORWARD_LABEL(RML__int_5fneg);
-extern RML_FORWARD_LABEL(RML__int_5freal);
-extern RML_FORWARD_LABEL(RML__int_5fstring);
-extern RML_FORWARD_LABEL(RML__int_5fsub);
-/* bit operations */
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
-/* java named */
-#define RML__intAbs       RML__int_5fabs
-#define RML__intAdd       RML__int_5fadd
-#define RML__intDiv       RML__int_5fdiv
-#define RML__intEq        RML__int_5feq
-#define RML__intGe        RML__int_5fge
-#define RML__intGt        RML__int_5fgt
-#define RML__intLe        RML__int_5fle
-#define RML__intLt        RML__int_5flt
-#define RML__intMax       RML__int_5fmax
-#define RML__intMin       RML__int_5fmin
-#define RML__intMod       RML__int_5fmod
-#define RML__intMul       RML__int_5fmul
-#define RML__intNe        RML__int_5fne
-#define RML__intNeg       RML__int_5fneg
-#define RML__intReal      RML__int_5freal
-#define RML__intString    RML__int_5fstring
-#define RML__intSub       RML__int_5fsub
-/* bit operations */
-#define RML__intBitNot    RML__int_5fbit_5fnot
-#define RML__intBitAnd    RML__int_5fbit_5fand
-#define RML__intBitOr     RML__int_5fbit_5for
-#define RML__intBitXor    RML__int_5fbit_5fxor
-#define RML__intBitLShift RML__int_5fbit_5flshift
-#define RML__intBitRShift RML__int_5fbit_5frshift
-
-
-/* lists */
-extern RML_FORWARD_LABEL(RML__list_5fappend);
-extern RML_FORWARD_LABEL(RML__list_5fdelete);
-extern RML_FORWARD_LABEL(RML__list_5flength);
-extern RML_FORWARD_LABEL(RML__list_5fmember);
-extern RML_FORWARD_LABEL(RML__list_5fnth);
-extern RML_FORWARD_LABEL(RML__list_5fget);
-extern RML_FORWARD_LABEL(RML__list_5freverse);
-extern RML_FORWARD_LABEL(RML__list_5fvector);
-extern RML_FORWARD_LABEL(RML__list_5farray);
-extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
-/* java named */
-#define RML__listAppend       RML__list_5fappend
-#define RML__listDelete       RML__list_5fdelete
-#define RML__listLength       RML__list_5flength
-#define RML__listMember       RML__list_5fmember
-#define RML__listNth          RML__list_5fnth
-#define RML__listGet          RML__list_5fget
-#define RML__listReverse      RML__list_5freverse
-#define RML__listVector       RML__list_5fvector
-#define RML__listArray        RML__list_5farray
-#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
-
-/* logical variables */
-extern RML_FORWARD_LABEL(RML__lvar_5fget);
-extern RML_FORWARD_LABEL(RML__lvar_5fnew);
-extern RML_FORWARD_LABEL(RML__lvar_5fset);
-/* java named */
-#define RML__lvarGet RML__lvar_5fget
-#define RML__lvarNew RML__lvar_5fnew
-#define RML__lvarSet RML__lvar_5fset
-
-/* reals */
-extern RML_FORWARD_LABEL(RML__real_5fabs);
-extern RML_FORWARD_LABEL(RML__real_5fadd);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fcos);
-extern RML_FORWARD_LABEL(RML__real_5fdiv);
-extern RML_FORWARD_LABEL(RML__real_5feq);
-extern RML_FORWARD_LABEL(RML__real_5fexp);
-extern RML_FORWARD_LABEL(RML__real_5ffloor);
-extern RML_FORWARD_LABEL(RML__real_5fceil);
-extern RML_FORWARD_LABEL(RML__real_5fge);
-extern RML_FORWARD_LABEL(RML__real_5fgt);
-extern RML_FORWARD_LABEL(RML__real_5fint);
-extern RML_FORWARD_LABEL(RML__real_5fle);
-extern RML_FORWARD_LABEL(RML__real_5fln);
-extern RML_FORWARD_LABEL(RML__real_5flt);
-extern RML_FORWARD_LABEL(RML__real_5fmax);
-extern RML_FORWARD_LABEL(RML__real_5fmin);
-extern RML_FORWARD_LABEL(RML__real_5fmod);
-extern RML_FORWARD_LABEL(RML__real_5fmul);
-extern RML_FORWARD_LABEL(RML__real_5fne);
-extern RML_FORWARD_LABEL(RML__real_5fneg);
-extern RML_FORWARD_LABEL(RML__real_5fpow);
-extern RML_FORWARD_LABEL(RML__real_5fsin);
-extern RML_FORWARD_LABEL(RML__real_5fsqrt);
-extern RML_FORWARD_LABEL(RML__real_5fstring);
-extern RML_FORWARD_LABEL(RML__real_5fsub);
-extern RML_FORWARD_LABEL(RML__real_5fasin);
-extern RML_FORWARD_LABEL(RML__real_5facos);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fatan2);
-extern RML_FORWARD_LABEL(RML__real_5fcosh);
-extern RML_FORWARD_LABEL(RML__real_5flog);
-extern RML_FORWARD_LABEL(RML__real_5flog10);
-extern RML_FORWARD_LABEL(RML__real_5fsinh);
-extern RML_FORWARD_LABEL(RML__real_5ftanh);
-/* java named */
-#define RML__realAbs    RML__real_5fabs
-#define RML__realAdd    RML__real_5fadd
-#define RML__realAtan   RML__real_5fatan
-#define RML__realCos    RML__real_5fcos
-#define RML__realDiv    RML__real_5fdiv
-#define RML__realEq     RML__real_5feq
-#define RML__realExp    RML__real_5fexp
-#define RML__realFloor  RML__real_5ffloor
-#define RML__realCeil   RML__real_5fceil
-#define RML__realGe     RML__real_5fge
-#define RML__realGt     RML__real_5fgt
-#define RML__realInt    RML__real_5fint
-#define RML__realLe     RML__real_5fle
-#define RML__realLn     RML__real_5fln
-#define RML__realLt     RML__real_5flt
-#define RML__realMax    RML__real_5fmax
-#define RML__realMin    RML__real_5fmin
-#define RML__realMod    RML__real_5fmod
-#define RML__realMul    RML__real_5fmul
-#define RML__realNe     RML__real_5fne
-#define RML__realNeg    RML__real_5fneg
-#define RML__realPow    RML__real_5fpow
-#define RML__realSin    RML__real_5fsin
-#define RML__realSqrt   RML__real_5fsqrt
-#define RML__realString RML__real_5fstring
-#define RML__realSub    RML__real_5fsub
-#define RML__realAsin   RML__real_5fasin
-#define RML__realAcos   RML__real_5facos
-#define RML__realAtan2  RML__real_5fatan2
-#define RML__realCosh   RML__real_5fcosh
-#define RML__realLog    RML__real_5flog
-#define RML__realLog10  RML__real_5flog10
-#define RML__realSinh   RML__real_5fsinh
-#define RML__realTanh   RML__real_5ftanh
-
-/* strings */
-extern RML_FORWARD_LABEL(RML__string_5fappend);
-extern RML_FORWARD_LABEL(RML__string_5fint);
-extern RML_FORWARD_LABEL(RML__string_5flength);
-extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
-/* java named */
-#define RML__stringAppend RML__string_5fappend
-#define RML__stringInt    RML__string_5fint
-#define RML__stringLength RML__string_5flength
-#define RML__stringAppendList RML__string_5fappend_5flist
-#define RML__stringDelimitList RML__string_5fdelimit_5flist
-
-/* declarative vectors */
-extern RML_FORWARD_LABEL(RML__vector_5flength);
-extern RML_FORWARD_LABEL(RML__vector_5flist);
-extern RML_FORWARD_LABEL(RML__vector_5fnth);
-extern RML_FORWARD_LABEL(RML__vector_5fget);
-extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
-extern RML_FORWARD_LABEL(RML__vector_5fupdate);
-extern RML_FORWARD_LABEL(RML__vector_5fcreate);
-extern RML_FORWARD_LABEL(RML__vector_5fadd);
-extern RML_FORWARD_LABEL(RML__vector_5farray);
-extern RML_FORWARD_LABEL(RML__vector_5fcopy);
-/* java named */
-#define RML__vectorLength RML__vector_5flength
-#define RML__vectorList   RML__vector_5flist
-#define RML__vectorNth    RML__vector_5fnth
-#define RML__vectorGet    RML__vector_5fget
-#define RML__vectorSetNth RML__vector_5fsetnth
-#define RML__vectorUpdate RML__vector_5fupdate
-#define RML__vectorCreate RML__vector_5fcreate
-#define RML__vectorAdd    RML__vector_5fadd
-#define RML__vectorArray  RML__vector_5farray
-#define RML__vectorCopy   RML__vector_5fcopy
-
-/* mutable arrays */
-extern RML_FORWARD_LABEL(RML__array_5flength);
-extern RML_FORWARD_LABEL(RML__array_5flist);
-extern RML_FORWARD_LABEL(RML__array_5fnth);
-extern RML_FORWARD_LABEL(RML__array_5fget);
-extern RML_FORWARD_LABEL(RML__array_5fsetnth);
-extern RML_FORWARD_LABEL(RML__array_5fupdate);
-extern RML_FORWARD_LABEL(RML__array_5fcreate);
-extern RML_FORWARD_LABEL(RML__array_5fadd);
-extern RML_FORWARD_LABEL(RML__array_5fvector);
-extern RML_FORWARD_LABEL(RML__array_5fcopy);
-/* java named */
-#define RML__arrayLength RML__array_5flength
-#define RML__arrayList   RML__array_5flist
-#define RML__arrayNth    RML__array_5fnth
-#define RML__arrayGet    RML__array_5fget
-#define RML__arraySetNth RML__array_5fsetnth
-#define RML__arrayUpdate RML__array_5fupdate
-#define RML__arrayCreate RML__array_5fcreate
-#define RML__arrayAdd    RML__array_5fadd
-#define RML__arrayVector RML__array_5fvector
-#define RML__arrayCopy   RML__array_5fcopy
-
-/* if expressions */
-extern RML_FORWARD_LABEL(RML__if_5fexp);
-#define RML__ifExp   RML__if_5fexp
-
-/* misc */
-extern RML_FORWARD_LABEL(RML__clock);
-extern RML_FORWARD_LABEL(RML__print);
-extern RML_FORWARD_LABEL(RML__tick);
-extern RML_FORWARD_LABEL(RML__unique);
-extern RML_FORWARD_LABEL(RML__enable_5ftrace);
-extern RML_FORWARD_LABEL(RML__disable_5ftrace);
-extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
-/* java names */
-#define RML__enableTrace  RML__enable_5ftrace
-#define RML__disableTrace RML__disable_5ftrace
-
-
-/* debugging */
-/* let these relation be available in all rml libraries */
-/* however their code depends on _RMLDB_DEFINED_ */
-extern RML_FORWARD_LABEL(RML__debug_5fprint);
-extern RML_FORWARD_LABEL(RML__debug);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
-extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
-
-extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
-#ifndef _RMLDB_COMMAND_H_
-#define _RMLDB_COMMAND_H_
-
-/* the commands accepted by the debugger */
-#define RMLDB_CMD_NONE 							0000
-#define RMLDB_CMD_BREAKPOINT 					1000
-#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
-#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
-#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
-#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
-#define RMLDB_CMD_STRING_BREAKPOINT 			1005
-#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
-#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
-#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
-#define RMLDB_CMD_STACK							1009
-#define RMLDB_CMD_VARIABLE_VALUE				1010
-#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
-#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
-#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
-
-#define RMLDB_CMD_RESUME						2000
-#define RMLDB_CMD_STEP							2001
-#define RMLDB_CMD_STEP_OVER						2002
-#define RMLDB_CMD_STEP_RETURN					2003
-#define RMLDB_CMD_RUN							2004
-#define RMLDB_CMD_QUIT							2005
-
-/* the response of the debugger to commands */
-#define RMLDB_REPLY_OK							"$ok"
-#define RMLDB_REPLY_ERROR						"$err"
-
-/* the signals accepted by the debugger  */
-#define RMLDB_SIGNAL_SUSPEND					"$u"
-#define RMLDB_SIGNAL_QUIT						"$q"
-
-
-/* the events send by the debugger to the Eclipse UI */
-#define RMLDB_EVENT_START						"$t"
-#define RMLDB_EVENT_READY						"$rdy"
-#define RMLDB_EVENT_STEP						"$s"
-#define RMLDB_EVENT_STEP_OVER					"$o"
-#define RMLDB_EVENT_STEP_RETURN					"$n"
-#define RMLDB_EVENT_RUN							"$r"
-#define RMLDB_EVENT_QUIT						"$q"
-#define RMLDB_EVENT_SUSPEND						"$u"
-#define RMLDB_EVENT_BREAKPOINT					"$b"
-#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
-#define RMLDB_EVENT_ERROR						"$err"
-
-typedef struct rmldb_command_t
-{
-	int ty;   /* the command type */
-	union 
-	{
-		struct brkFile      	 { char *file; int   line;   		} brkFile;
-		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
-		struct brkString		 { char *filter;             		} brkString;
-        struct brkFailure        { char *filter;                    } brkFailure;        
-		struct varValue			 { char *name;       	    		} varValue;
-		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
-		struct frameVarValue     { int frame; int nr;				} frameVarValue;
-		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
-	} data;
-} rmldb_command_type;
-
-
-extern rmldb_command_type* rmldb_current_command;
-
-extern rmldb_command_type* rmldb_mk_cmd(int ty);
-extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
-extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
-extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
-extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
-extern int rmldb_freeCommand(rmldb_command_type* cmd);
-
-#endif /* _RMLDB_COMMAND_H_*/
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-
-/*
- * [ rml-socket.h ] 
- * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
- * - creation 2007-02-24
- *   + interface for Windows and Linux sockets
- *   + all things in this file start with rmldb_socket_*
- * - last modified 2007-02-24
- *****************************************************************************/
-
-#ifdef RML_DEBUG
-#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-/*********** MINGW32 && MSVC stuff **********/
-#include <winsock2.h>
-
-#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
-#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
-#define _rmldb_socket_close closesocket
-#define _rmldb_socket_errorno WSAGetLastError()
-
-#else /***************** unix stuff ***************/
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/unistd.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define _rmldb_socket_send(x,y,z) write(x,y,z)
-#define _rmldb_socket_recv(x,y,z) read(x,y,z)
-#define _rmldb_socket_close close
-#define _rmldb_socket_errorno errno
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-
-#endif
-
-/* 
- * set to 1 to have debugging or to 0 to 
- * disable debugging of the socket communication
- */
-extern int   rmldb_socket_debug;
-/* 
- * initialize the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_initialize_library(void);  
-/* 
- * cleanups the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_cleanup_library(void);  
-
-/* 
- * get a socket 
- * returns -1 or the socket
- */
-extern int   rmldb_socket_get(void);
-
-/* 
- * binds the given socket on localhost and given port
- * performs bind and listen
- * returns -1 on error and 0 on success
- */
-extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
-/* 
- * performs accept on the given socket 
- * returns the new socket or -1 on error
- */
-extern int   rmldb_socket_accept(int socket);
-
-/* 
- * close the socket 
- * returns -1 for error or 0 for no error 
- */
-extern int   rmldb_socket_close(int socket); 
-
-/* send to socket with error handling */
-extern int rmldb_socket_outln(int sock, char *msg);
-extern int rmldb_socket_out(int sock, char *msg);
-
-#endif
-/* handler.h */
-#ifndef HANDLER_H_
-#define HANDLER_H_
-
-extern int   aaerror(char*);
-extern int   aaparse(void);
-extern int   aadebug;
-
-#ifdef RML_DEBUG
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-
-#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
-#include <signal.h>
-#endif
-
-#else /***************** unix stuff ***************/
-#include <signal.h>
-#endif /* unix vs windows stuff */
-
-/* adrpo - debugger global variables */
-extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
-extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
-extern int   rmldb_event_port;  /* listen on this port and send event to the client */
-extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
-
-typedef struct rmldb_communication
-{
-	int   cmd_bind_sock;     /* bind and accept on this socket */
-	int   cmd_sock;          /* listen for commands on this socket */
-	int   reply_bind_sock;   /* bind and accept on this socket */
-	int   reply_sock;        /* send reply of commands to this socket */	
-	int   event_bind_sock;   /* bind and accept on this socket */
-	int   event_sock;        /* send output to this port */
-	int   signal_bind_sock;  /* bind and accept on this socket */
-	int   signal_sock;       /* listen to async events from client */
-} rmldb_communication_type;
-
-extern rmldb_communication_type rmldb_communicator;
-
-extern int rmldb_last_command;
-extern int rmldb_startSignalHandler(void* arg);
-extern int rmldb_endSignalHandler(void);
-extern int rmldb_interpretCommand(void);
-extern int rmldb_executeCommand(rmldb_command_type* cmd);
-extern int rmldb_sendEvent(char* event);
-extern int rmldb_sendReply(char* reply);
-
-#endif /* RML_DEBUG */
-
-#endif /*HANDLER_H_*/
+
+/*
+ * rml-predef.h
+ */
+
+extern void rml_prim_motor(rml_labptr_t);
+extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
+extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
+/* let the print relation be available for non-debug-version-rml-library also */
+extern void rmldb_var_print(void *p);
+
+/*
+ * Standard procedures
+ * adrpo added Java named RML buildin relations 2005-11-10
+ */
+
+/* roots */
+extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
+extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
+/* java named */
+#define RML__setGlobalRoot  RML__set_5fglobal_5froot
+#define RML__getGlobalRoot  RML__get_5fglobal_5froot
+
+/* references */
+extern RML_FORWARD_LABEL(RML__reference_5feq);
+extern RML_FORWARD_LABEL(RML__reference_5finteger);
+extern RML_FORWARD_LABEL(RML__reference_5fupdate);
+extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
+extern RML_FORWARD_LABEL(RML__reference_5fshare);
+/* java named */
+#define RML__referenceEq       RML__reference_5feq
+#define RML__referenceInteger  RML__reference_5finteger
+#define RML__referenceUpdate   RML__reference_5fupdate
+#define RML__referenceSetNth   RML__reference_5fsetnth
+#define RML__referenceShare    RML__reference_5fshare
+
+/* values */
+extern RML_FORWARD_LABEL(RML__value_5fconstructor);
+extern RML_FORWARD_LABEL(RML__value_5fslots);
+extern RML_FORWARD_LABEL(RML__value_5feq);
+extern RML_FORWARD_LABEL(RML__value_5fmatch);
+extern RML_FORWARD_LABEL(RML__value_5fhash);
+extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
+/* java named */
+#define RML__valueConstructor RML__value_5fconstructor
+#define RML__valueSlots       RML__value_5fslots
+#define RML__valueEq          RML__value_5feq
+#define RML__valueMatch       RML__value_5fmatch
+#define RML__valueHash        RML__value_5fhash
+#define RML__valueHashMod     RML__value_5fhash_5fmod
+
+/* booleans */
+extern RML_FORWARD_LABEL(RML__bool_5fand);
+extern RML_FORWARD_LABEL(RML__bool_5fnot);
+extern RML_FORWARD_LABEL(RML__bool_5for);
+extern RML_FORWARD_LABEL(RML__bool_5feq);
+extern RML_FORWARD_LABEL(RML__bool_5fstring);
+/* java named */
+#define RML__boolAnd    RML__bool_5fand
+#define RML__boolNot    RML__bool_5fnot
+#define RML__boolOr     RML__bool_5for
+#define RML__boolEq     RML__bool_5feq
+#define RML__boolString RML__bool_5fstring
+
+/* chars */
+extern RML_FORWARD_LABEL(RML__int_5fint);
+extern RML_FORWARD_LABEL(RML__list_5fstring);
+extern RML_FORWARD_LABEL(RML__string_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fnth);
+extern RML_FORWARD_LABEL(RML__string_5fget);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth);
+extern RML_FORWARD_LABEL(RML__string_5fupdate);
+extern RML_FORWARD_LABEL(RML__string_5fequal);
+extern RML_FORWARD_LABEL(RML__string_5fcompare);
+/* hash functions */
+extern RML_FORWARD_LABEL(RML__string_5fhash);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
+#define RML__char_5fint	RML__int_5fint
+#define RML__int_5fchar	RML__int_5fint
+/* java named */
+#define RML__intChar        RML__int_5fint
+#define RML__charInt        RML__int_5fint
+#define RML__listString     RML__list_5fstring
+#define RML__stringList     RML__string_5flist
+#define RML__stringNth      RML__string_5fnth
+#define RML__stringGet      RML__string_5fget
+#define RML__stringSetNth   RML__string_5fset_5fnth
+#define RML__stringUpdate   RML__string_5fupdate
+#define RML__stringEqual    RML__string_5fequal
+#define RML__stringCompare  RML__string_5fcompare
+#define RML__stringEq       RML__string_5fequal
+#define RML__string_5feq    RML__string_5fequal
+/* hash functions */
+#define RML__stringHash     RML__string_5fhash
+#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
+#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
+
+/* string chars */
+extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
+extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
+/* java named */
+#define RML__stringCharInt           RML__string_5fchar_5fint
+#define RML__intStringChar           RML__int_5fstring_5fchar
+#define RML__listStringChar          RML__list_5fstring_5fchar
+#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
+#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
+#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
+#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
+#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
+#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
+
+extern RML_FORWARD_LABEL(RML__int_5fabs);
+extern RML_FORWARD_LABEL(RML__int_5fadd);
+extern RML_FORWARD_LABEL(RML__int_5fdiv);
+extern RML_FORWARD_LABEL(RML__int_5feq);
+extern RML_FORWARD_LABEL(RML__int_5fge);
+extern RML_FORWARD_LABEL(RML__int_5fgt);
+extern RML_FORWARD_LABEL(RML__int_5fle);
+extern RML_FORWARD_LABEL(RML__int_5flt);
+extern RML_FORWARD_LABEL(RML__int_5fmax);
+extern RML_FORWARD_LABEL(RML__int_5fmin);
+extern RML_FORWARD_LABEL(RML__int_5fmod);
+extern RML_FORWARD_LABEL(RML__int_5fmul);
+extern RML_FORWARD_LABEL(RML__int_5fne);
+extern RML_FORWARD_LABEL(RML__int_5fneg);
+extern RML_FORWARD_LABEL(RML__int_5freal);
+extern RML_FORWARD_LABEL(RML__int_5fstring);
+extern RML_FORWARD_LABEL(RML__int_5fsub);
+/* bit operations */
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
+/* java named */
+#define RML__intAbs       RML__int_5fabs
+#define RML__intAdd       RML__int_5fadd
+#define RML__intDiv       RML__int_5fdiv
+#define RML__intEq        RML__int_5feq
+#define RML__intGe        RML__int_5fge
+#define RML__intGt        RML__int_5fgt
+#define RML__intLe        RML__int_5fle
+#define RML__intLt        RML__int_5flt
+#define RML__intMax       RML__int_5fmax
+#define RML__intMin       RML__int_5fmin
+#define RML__intMod       RML__int_5fmod
+#define RML__intMul       RML__int_5fmul
+#define RML__intNe        RML__int_5fne
+#define RML__intNeg       RML__int_5fneg
+#define RML__intReal      RML__int_5freal
+#define RML__intString    RML__int_5fstring
+#define RML__intSub       RML__int_5fsub
+/* bit operations */
+#define RML__intBitNot    RML__int_5fbit_5fnot
+#define RML__intBitAnd    RML__int_5fbit_5fand
+#define RML__intBitOr     RML__int_5fbit_5for
+#define RML__intBitXor    RML__int_5fbit_5fxor
+#define RML__intBitLShift RML__int_5fbit_5flshift
+#define RML__intBitRShift RML__int_5fbit_5frshift
+
+
+/* lists */
+extern RML_FORWARD_LABEL(RML__list_5fappend);
+extern RML_FORWARD_LABEL(RML__list_5fdelete);
+extern RML_FORWARD_LABEL(RML__list_5flength);
+extern RML_FORWARD_LABEL(RML__list_5fmember);
+extern RML_FORWARD_LABEL(RML__list_5fnth);
+extern RML_FORWARD_LABEL(RML__list_5fget);
+extern RML_FORWARD_LABEL(RML__list_5freverse);
+extern RML_FORWARD_LABEL(RML__list_5fvector);
+extern RML_FORWARD_LABEL(RML__list_5farray);
+extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
+/* java named */
+#define RML__listAppend       RML__list_5fappend
+#define RML__listDelete       RML__list_5fdelete
+#define RML__listLength       RML__list_5flength
+#define RML__listMember       RML__list_5fmember
+#define RML__listNth          RML__list_5fnth
+#define RML__listGet          RML__list_5fget
+#define RML__listReverse      RML__list_5freverse
+#define RML__listVector       RML__list_5fvector
+#define RML__listArray        RML__list_5farray
+#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
+
+/* logical variables */
+extern RML_FORWARD_LABEL(RML__lvar_5fget);
+extern RML_FORWARD_LABEL(RML__lvar_5fnew);
+extern RML_FORWARD_LABEL(RML__lvar_5fset);
+/* java named */
+#define RML__lvarGet RML__lvar_5fget
+#define RML__lvarNew RML__lvar_5fnew
+#define RML__lvarSet RML__lvar_5fset
+
+/* reals */
+extern RML_FORWARD_LABEL(RML__real_5fabs);
+extern RML_FORWARD_LABEL(RML__real_5fadd);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fcos);
+extern RML_FORWARD_LABEL(RML__real_5fdiv);
+extern RML_FORWARD_LABEL(RML__real_5feq);
+extern RML_FORWARD_LABEL(RML__real_5fexp);
+extern RML_FORWARD_LABEL(RML__real_5ffloor);
+extern RML_FORWARD_LABEL(RML__real_5fceil);
+extern RML_FORWARD_LABEL(RML__real_5fge);
+extern RML_FORWARD_LABEL(RML__real_5fgt);
+extern RML_FORWARD_LABEL(RML__real_5fint);
+extern RML_FORWARD_LABEL(RML__real_5fle);
+extern RML_FORWARD_LABEL(RML__real_5fln);
+extern RML_FORWARD_LABEL(RML__real_5flt);
+extern RML_FORWARD_LABEL(RML__real_5fmax);
+extern RML_FORWARD_LABEL(RML__real_5fmin);
+extern RML_FORWARD_LABEL(RML__real_5fmod);
+extern RML_FORWARD_LABEL(RML__real_5fmul);
+extern RML_FORWARD_LABEL(RML__real_5fne);
+extern RML_FORWARD_LABEL(RML__real_5fneg);
+extern RML_FORWARD_LABEL(RML__real_5fpow);
+extern RML_FORWARD_LABEL(RML__real_5fsin);
+extern RML_FORWARD_LABEL(RML__real_5fsqrt);
+extern RML_FORWARD_LABEL(RML__real_5fstring);
+extern RML_FORWARD_LABEL(RML__real_5fsub);
+extern RML_FORWARD_LABEL(RML__real_5fasin);
+extern RML_FORWARD_LABEL(RML__real_5facos);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fatan2);
+extern RML_FORWARD_LABEL(RML__real_5fcosh);
+extern RML_FORWARD_LABEL(RML__real_5flog);
+extern RML_FORWARD_LABEL(RML__real_5flog10);
+extern RML_FORWARD_LABEL(RML__real_5fsinh);
+extern RML_FORWARD_LABEL(RML__real_5ftanh);
+/* java named */
+#define RML__realAbs    RML__real_5fabs
+#define RML__realAdd    RML__real_5fadd
+#define RML__realAtan   RML__real_5fatan
+#define RML__realCos    RML__real_5fcos
+#define RML__realDiv    RML__real_5fdiv
+#define RML__realEq     RML__real_5feq
+#define RML__realExp    RML__real_5fexp
+#define RML__realFloor  RML__real_5ffloor
+#define RML__realCeil   RML__real_5fceil
+#define RML__realGe     RML__real_5fge
+#define RML__realGt     RML__real_5fgt
+#define RML__realInt    RML__real_5fint
+#define RML__realLe     RML__real_5fle
+#define RML__realLn     RML__real_5fln
+#define RML__realLt     RML__real_5flt
+#define RML__realMax    RML__real_5fmax
+#define RML__realMin    RML__real_5fmin
+#define RML__realMod    RML__real_5fmod
+#define RML__realMul    RML__real_5fmul
+#define RML__realNe     RML__real_5fne
+#define RML__realNeg    RML__real_5fneg
+#define RML__realPow    RML__real_5fpow
+#define RML__realSin    RML__real_5fsin
+#define RML__realSqrt   RML__real_5fsqrt
+#define RML__realString RML__real_5fstring
+#define RML__realSub    RML__real_5fsub
+#define RML__realAsin   RML__real_5fasin
+#define RML__realAcos   RML__real_5facos
+#define RML__realAtan2  RML__real_5fatan2
+#define RML__realCosh   RML__real_5fcosh
+#define RML__realLog    RML__real_5flog
+#define RML__realLog10  RML__real_5flog10
+#define RML__realSinh   RML__real_5fsinh
+#define RML__realTanh   RML__real_5ftanh
+
+/* strings */
+extern RML_FORWARD_LABEL(RML__string_5fappend);
+extern RML_FORWARD_LABEL(RML__string_5fint);
+extern RML_FORWARD_LABEL(RML__string_5flength);
+extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
+/* java named */
+#define RML__stringAppend RML__string_5fappend
+#define RML__stringInt    RML__string_5fint
+#define RML__stringLength RML__string_5flength
+#define RML__stringAppendList RML__string_5fappend_5flist
+#define RML__stringDelimitList RML__string_5fdelimit_5flist
+
+/* declarative vectors */
+extern RML_FORWARD_LABEL(RML__vector_5flength);
+extern RML_FORWARD_LABEL(RML__vector_5flist);
+extern RML_FORWARD_LABEL(RML__vector_5fnth);
+extern RML_FORWARD_LABEL(RML__vector_5fget);
+extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
+extern RML_FORWARD_LABEL(RML__vector_5fupdate);
+extern RML_FORWARD_LABEL(RML__vector_5fcreate);
+extern RML_FORWARD_LABEL(RML__vector_5fadd);
+extern RML_FORWARD_LABEL(RML__vector_5farray);
+extern RML_FORWARD_LABEL(RML__vector_5fcopy);
+/* java named */
+#define RML__vectorLength RML__vector_5flength
+#define RML__vectorList   RML__vector_5flist
+#define RML__vectorNth    RML__vector_5fnth
+#define RML__vectorGet    RML__vector_5fget
+#define RML__vectorSetNth RML__vector_5fsetnth
+#define RML__vectorUpdate RML__vector_5fupdate
+#define RML__vectorCreate RML__vector_5fcreate
+#define RML__vectorAdd    RML__vector_5fadd
+#define RML__vectorArray  RML__vector_5farray
+#define RML__vectorCopy   RML__vector_5fcopy
+
+/* mutable arrays */
+extern RML_FORWARD_LABEL(RML__array_5flength);
+extern RML_FORWARD_LABEL(RML__array_5flist);
+extern RML_FORWARD_LABEL(RML__array_5fnth);
+extern RML_FORWARD_LABEL(RML__array_5fget);
+extern RML_FORWARD_LABEL(RML__array_5fsetnth);
+extern RML_FORWARD_LABEL(RML__array_5fupdate);
+extern RML_FORWARD_LABEL(RML__array_5fcreate);
+extern RML_FORWARD_LABEL(RML__array_5fadd);
+extern RML_FORWARD_LABEL(RML__array_5fvector);
+extern RML_FORWARD_LABEL(RML__array_5fcopy);
+/* java named */
+#define RML__arrayLength RML__array_5flength
+#define RML__arrayList   RML__array_5flist
+#define RML__arrayNth    RML__array_5fnth
+#define RML__arrayGet    RML__array_5fget
+#define RML__arraySetNth RML__array_5fsetnth
+#define RML__arrayUpdate RML__array_5fupdate
+#define RML__arrayCreate RML__array_5fcreate
+#define RML__arrayAdd    RML__array_5fadd
+#define RML__arrayVector RML__array_5fvector
+#define RML__arrayCopy   RML__array_5fcopy
+
+/* if expressions */
+extern RML_FORWARD_LABEL(RML__if_5fexp);
+#define RML__ifExp   RML__if_5fexp
+
+/* misc */
+extern RML_FORWARD_LABEL(RML__clock);
+extern RML_FORWARD_LABEL(RML__print);
+extern RML_FORWARD_LABEL(RML__tick);
+extern RML_FORWARD_LABEL(RML__unique);
+extern RML_FORWARD_LABEL(RML__enable_5ftrace);
+extern RML_FORWARD_LABEL(RML__disable_5ftrace);
+extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
+/* java names */
+#define RML__enableTrace  RML__enable_5ftrace
+#define RML__disableTrace RML__disable_5ftrace
+
+
+/* debugging */
+/* let these relation be available in all rml libraries */
+/* however their code depends on _RMLDB_DEFINED_ */
+extern RML_FORWARD_LABEL(RML__debug_5fprint);
+extern RML_FORWARD_LABEL(RML__debug);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
+extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
+
+extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
+#ifndef _RMLDB_COMMAND_H_
+#define _RMLDB_COMMAND_H_
+
+/* the commands accepted by the debugger */
+#define RMLDB_CMD_NONE 							0000
+#define RMLDB_CMD_BREAKPOINT 					1000
+#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
+#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
+#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
+#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
+#define RMLDB_CMD_STRING_BREAKPOINT 			1005
+#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
+#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
+#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
+#define RMLDB_CMD_STACK							1009
+#define RMLDB_CMD_VARIABLE_VALUE				1010
+#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
+#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
+#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
+
+#define RMLDB_CMD_RESUME						2000
+#define RMLDB_CMD_STEP							2001
+#define RMLDB_CMD_STEP_OVER						2002
+#define RMLDB_CMD_STEP_RETURN					2003
+#define RMLDB_CMD_RUN							2004
+#define RMLDB_CMD_QUIT							2005
+
+/* the response of the debugger to commands */
+#define RMLDB_REPLY_OK							"$ok"
+#define RMLDB_REPLY_ERROR						"$err"
+
+/* the signals accepted by the debugger  */
+#define RMLDB_SIGNAL_SUSPEND					"$u"
+#define RMLDB_SIGNAL_QUIT						"$q"
+
+
+/* the events send by the debugger to the Eclipse UI */
+#define RMLDB_EVENT_START						"$t"
+#define RMLDB_EVENT_READY						"$rdy"
+#define RMLDB_EVENT_STEP						"$s"
+#define RMLDB_EVENT_STEP_OVER					"$o"
+#define RMLDB_EVENT_STEP_RETURN					"$n"
+#define RMLDB_EVENT_RUN							"$r"
+#define RMLDB_EVENT_QUIT						"$q"
+#define RMLDB_EVENT_SUSPEND						"$u"
+#define RMLDB_EVENT_BREAKPOINT					"$b"
+#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
+#define RMLDB_EVENT_ERROR						"$err"
+
+typedef struct rmldb_command_t
+{
+	int ty;   /* the command type */
+	union 
+	{
+		struct brkFile      	 { char *file; int   line;   		} brkFile;
+		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
+		struct brkString		 { char *filter;             		} brkString;
+        struct brkFailure        { char *filter;                    } brkFailure;        
+		struct varValue			 { char *name;       	    		} varValue;
+		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
+		struct frameVarValue     { int frame; int nr;				} frameVarValue;
+		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
+	} data;
+} rmldb_command_type;
+
+
+extern rmldb_command_type* rmldb_current_command;
+
+extern rmldb_command_type* rmldb_mk_cmd(int ty);
+extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
+extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
+extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
+extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
+extern int rmldb_freeCommand(rmldb_command_type* cmd);
+
+#endif /* _RMLDB_COMMAND_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+
+/*
+ * [ rml-socket.h ] 
+ * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+ * - creation 2007-02-24
+ *   + interface for Windows and Linux sockets
+ *   + all things in this file start with rmldb_socket_*
+ * - last modified 2007-02-24
+ *****************************************************************************/
+
+#ifdef RML_DEBUG
+#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+/*********** MINGW32 && MSVC stuff **********/
+#include <winsock2.h>
+
+#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
+#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
+#define _rmldb_socket_close closesocket
+#define _rmldb_socket_errorno WSAGetLastError()
+
+#else /***************** unix stuff ***************/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/unistd.h>
+#include <sys/stat.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define _rmldb_socket_send(x,y,z) write(x,y,z)
+#define _rmldb_socket_recv(x,y,z) read(x,y,z)
+#define _rmldb_socket_close close
+#define _rmldb_socket_errorno errno
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (-1)
+
+#endif
+
+/* 
+ * set to 1 to have debugging or to 0 to 
+ * disable debugging of the socket communication
+ */
+extern int   rmldb_socket_debug;
+/* 
+ * initialize the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_initialize_library(void);  
+/* 
+ * cleanups the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_cleanup_library(void);  
+
+/* 
+ * get a socket 
+ * returns -1 or the socket
+ */
+extern int   rmldb_socket_get(void);
+
+/* 
+ * binds the given socket on localhost and given port
+ * performs bind and listen
+ * returns -1 on error and 0 on success
+ */
+extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
+/* 
+ * performs accept on the given socket 
+ * returns the new socket or -1 on error
+ */
+extern int   rmldb_socket_accept(int socket);
+
+/* 
+ * close the socket 
+ * returns -1 for error or 0 for no error 
+ */
+extern int   rmldb_socket_close(int socket); 
+
+/* send to socket with error handling */
+extern int rmldb_socket_outln(int sock, char *msg);
+extern int rmldb_socket_out(int sock, char *msg);
+
+#endif
+/* handler.h */
+#ifndef HANDLER_H_
+#define HANDLER_H_
+
+extern int   aaerror(char*);
+extern int   aaparse(void);
+extern int   aadebug;
+
+#ifdef RML_DEBUG
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+
+#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
+#include <signal.h>
+#endif
+
+#else /***************** unix stuff ***************/
+#include <signal.h>
+#endif /* unix vs windows stuff */
+
+/* adrpo - debugger global variables */
+extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
+extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
+extern int   rmldb_event_port;  /* listen on this port and send event to the client */
+extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
+
+typedef struct rmldb_communication
+{
+	int   cmd_bind_sock;     /* bind and accept on this socket */
+	int   cmd_sock;          /* listen for commands on this socket */
+	int   reply_bind_sock;   /* bind and accept on this socket */
+	int   reply_sock;        /* send reply of commands to this socket */	
+	int   event_bind_sock;   /* bind and accept on this socket */
+	int   event_sock;        /* send output to this port */
+	int   signal_bind_sock;  /* bind and accept on this socket */
+	int   signal_sock;       /* listen to async events from client */
+} rmldb_communication_type;
+
+extern rmldb_communication_type rmldb_communicator;
+
+extern int rmldb_last_command;
+extern int rmldb_startSignalHandler(void* arg);
+extern int rmldb_endSignalHandler(void);
+extern int rmldb_interpretCommand(void);
+extern int rmldb_executeCommand(rmldb_command_type* cmd);
+extern int rmldb_sendEvent(char* event);
+extern int rmldb_sendReply(char* reply);
+
+#endif /* RML_DEBUG */
+
+#endif /*HANDLER_H_*/
 /***********************************************************
  [ load.h ] 
   - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
@@ -1736,110 +1736,110 @@ extern int   aarmldbdebug;
 extern int   aarmldb_lineno;
 
 #endif /* _RMLDB_LOAD_H_  */
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-/***********************************************************
- [ debug.h ] 
-  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
-  - creation 2002-10
-    + interface for rml debugging 
-    + this file contains all the functions for debugging 
-	+ all things in this file start with rmldb_
-  - last modified 2005-12-27
-************************************************************/
-#ifndef _RML_DEBUG_H_
-#define _RML_DEBUG_H_
-/* all these functions depends on RML_DEBUG macro */
-/************************************************************/
-
-#ifdef RML_DEBUG
-
-#include <stdio.h>
-#include <string.h>
-
-/* this file will be included in the generated rml.h */
-/* adrpo some useful defines. */
-#define RMLDB_SUCCESS  1
-#define RMLDB_FAILURE -1
-
-#define RMLDB_PROMPT "rml+mmc db@>"
-#define RMLDB_RUN         0
-#define RMLDB_STEP        1
-#define RMLDB_STEP_OVER   2
-#define RMLDB_STEP_RETURN	3
-#define RMLDB_BREAKPOINT  4
-#define RMLDB_TRACE_CALLS	5
-#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
-
-#define RMLDB_VAR_IN 0
-#define RMLDB_VAR_OUT 1
-
-extern int   rmldb_execution_type;
-extern int   rmldb_execution_startup_type;
-extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
-extern int   rmldb_depth_of_variable_print;
-extern int   rmldb_max_string_variable_print;
-/* location of current execution point */
-extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
-
-/* init/help/exit */
-extern int  rmldb_init(void);
-extern int  rmldb_end(void);
-extern void rmldb_exit(int status);
-extern int  rmldb_quit(char *line);
-
-/* breakpoints */
-extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
-
-/* variables */
-extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
-
-/* stack */
-extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
-extern int rmldb_push_stack_frame(
-			char* file, 
-			int charStart, int charEnd, 
-			int startLine, int startColumn, int endLine, int endColumn,					  
-			char* function,
-			char* call);
-extern int rmldb_pop_stack_frame(char gototype);
-
-#endif /* RML_DEBUG */
-
-#endif /* _RML_DEBUG_H_  */
-
-
-/* ending rml.h */
-#endif /*_RML_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+/***********************************************************
+ [ debug.h ] 
+  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+  - creation 2002-10
+    + interface for rml debugging 
+    + this file contains all the functions for debugging 
+	+ all things in this file start with rmldb_
+  - last modified 2005-12-27
+************************************************************/
+#ifndef _RML_DEBUG_H_
+#define _RML_DEBUG_H_
+/* all these functions depends on RML_DEBUG macro */
+/************************************************************/
+
+#ifdef RML_DEBUG
+
+#include <stdio.h>
+#include <string.h>
+
+/* this file will be included in the generated rml.h */
+/* adrpo some useful defines. */
+#define RMLDB_SUCCESS  1
+#define RMLDB_FAILURE -1
+
+#define RMLDB_PROMPT "rml+mmc db@>"
+#define RMLDB_RUN         0
+#define RMLDB_STEP        1
+#define RMLDB_STEP_OVER   2
+#define RMLDB_STEP_RETURN	3
+#define RMLDB_BREAKPOINT  4
+#define RMLDB_TRACE_CALLS	5
+#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
+
+#define RMLDB_VAR_IN 0
+#define RMLDB_VAR_OUT 1
+
+extern int   rmldb_execution_type;
+extern int   rmldb_execution_startup_type;
+extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
+extern int   rmldb_depth_of_variable_print;
+extern int   rmldb_max_string_variable_print;
+/* location of current execution point */
+extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
+
+/* init/help/exit */
+extern int  rmldb_init(void);
+extern int  rmldb_end(void);
+extern void rmldb_exit(int status);
+extern int  rmldb_quit(char *line);
+
+/* breakpoints */
+extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
+
+/* variables */
+extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
+
+/* stack */
+extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
+extern int rmldb_push_stack_frame(
+			char* file, 
+			int charStart, int charEnd, 
+			int startLine, int startColumn, int endLine, int endColumn,					  
+			char* function,
+			char* call);
+extern int rmldb_pop_stack_frame(char gototype);
+
+#endif /* RML_DEBUG */
+
+#endif /* _RML_DEBUG_H_  */
+
+
+/* ending rml.h */
+#endif /*_RML_H_*/
diff --git a/tools/rml/include/mask/rml.h b/tools/rml/include/mask/rml.h
index eebc5a3578f4201c47683d71db9a8fcb0685510c..969c7e306adf3e61dda86236298a794dc27e5c15 100644
--- a/tools/rml/include/mask/rml.h
+++ b/tools/rml/include/mask/rml.h
@@ -39,9 +39,9 @@ typedef unsigned int rml_uint_t;
 
 #define RML_GCCGOTO
 #define RML_GCCGOTO_NOSHIFT
-/* starting rml.h */
-#ifndef _RML_H_
-#define _RML_H_
+/* starting rml.h */
+#ifndef _RML_H_
+#define _RML_H_
 /* 
  * This file is part of OpenModelica.
  * 
@@ -803,645 +803,645 @@ extern void rml_prim_gc(rml_uint_t, rml_uint_t);
 
 
 
-
-/*
- * rml-predef.h
- */
-
-extern void rml_prim_motor(rml_labptr_t);
-extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
-extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
-/* let the print relation be available for non-debug-version-rml-library also */
-extern void rmldb_var_print(void *p);
-
-/*
- * Standard procedures
- * adrpo added Java named RML buildin relations 2005-11-10
- */
-
-/* roots */
-extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
-extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
-/* java named */
-#define RML__setGlobalRoot  RML__set_5fglobal_5froot
-#define RML__getGlobalRoot  RML__get_5fglobal_5froot
-
-/* references */
-extern RML_FORWARD_LABEL(RML__reference_5feq);
-extern RML_FORWARD_LABEL(RML__reference_5finteger);
-extern RML_FORWARD_LABEL(RML__reference_5fupdate);
-extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
-extern RML_FORWARD_LABEL(RML__reference_5fshare);
-/* java named */
-#define RML__referenceEq       RML__reference_5feq
-#define RML__referenceInteger  RML__reference_5finteger
-#define RML__referenceUpdate   RML__reference_5fupdate
-#define RML__referenceSetNth   RML__reference_5fsetnth
-#define RML__referenceShare    RML__reference_5fshare
-
-/* values */
-extern RML_FORWARD_LABEL(RML__value_5fconstructor);
-extern RML_FORWARD_LABEL(RML__value_5fslots);
-extern RML_FORWARD_LABEL(RML__value_5feq);
-extern RML_FORWARD_LABEL(RML__value_5fmatch);
-extern RML_FORWARD_LABEL(RML__value_5fhash);
-extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
-/* java named */
-#define RML__valueConstructor RML__value_5fconstructor
-#define RML__valueSlots       RML__value_5fslots
-#define RML__valueEq          RML__value_5feq
-#define RML__valueMatch       RML__value_5fmatch
-#define RML__valueHash        RML__value_5fhash
-#define RML__valueHashMod     RML__value_5fhash_5fmod
-
-/* booleans */
-extern RML_FORWARD_LABEL(RML__bool_5fand);
-extern RML_FORWARD_LABEL(RML__bool_5fnot);
-extern RML_FORWARD_LABEL(RML__bool_5for);
-extern RML_FORWARD_LABEL(RML__bool_5feq);
-extern RML_FORWARD_LABEL(RML__bool_5fstring);
-/* java named */
-#define RML__boolAnd    RML__bool_5fand
-#define RML__boolNot    RML__bool_5fnot
-#define RML__boolOr     RML__bool_5for
-#define RML__boolEq     RML__bool_5feq
-#define RML__boolString RML__bool_5fstring
-
-/* chars */
-extern RML_FORWARD_LABEL(RML__int_5fint);
-extern RML_FORWARD_LABEL(RML__list_5fstring);
-extern RML_FORWARD_LABEL(RML__string_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fnth);
-extern RML_FORWARD_LABEL(RML__string_5fget);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth);
-extern RML_FORWARD_LABEL(RML__string_5fupdate);
-extern RML_FORWARD_LABEL(RML__string_5fequal);
-extern RML_FORWARD_LABEL(RML__string_5fcompare);
-/* hash functions */
-extern RML_FORWARD_LABEL(RML__string_5fhash);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
-#define RML__char_5fint	RML__int_5fint
-#define RML__int_5fchar	RML__int_5fint
-/* java named */
-#define RML__intChar        RML__int_5fint
-#define RML__charInt        RML__int_5fint
-#define RML__listString     RML__list_5fstring
-#define RML__stringList     RML__string_5flist
-#define RML__stringNth      RML__string_5fnth
-#define RML__stringGet      RML__string_5fget
-#define RML__stringSetNth   RML__string_5fset_5fnth
-#define RML__stringUpdate   RML__string_5fupdate
-#define RML__stringEqual    RML__string_5fequal
-#define RML__stringCompare  RML__string_5fcompare
-#define RML__stringEq       RML__string_5fequal
-#define RML__string_5feq    RML__string_5fequal
-/* hash functions */
-#define RML__stringHash     RML__string_5fhash
-#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
-#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
-
-/* string chars */
-extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
-extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
-/* java named */
-#define RML__stringCharInt           RML__string_5fchar_5fint
-#define RML__intStringChar           RML__int_5fstring_5fchar
-#define RML__listStringChar          RML__list_5fstring_5fchar
-#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
-#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
-#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
-#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
-#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
-#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
-
-extern RML_FORWARD_LABEL(RML__int_5fabs);
-extern RML_FORWARD_LABEL(RML__int_5fadd);
-extern RML_FORWARD_LABEL(RML__int_5fdiv);
-extern RML_FORWARD_LABEL(RML__int_5feq);
-extern RML_FORWARD_LABEL(RML__int_5fge);
-extern RML_FORWARD_LABEL(RML__int_5fgt);
-extern RML_FORWARD_LABEL(RML__int_5fle);
-extern RML_FORWARD_LABEL(RML__int_5flt);
-extern RML_FORWARD_LABEL(RML__int_5fmax);
-extern RML_FORWARD_LABEL(RML__int_5fmin);
-extern RML_FORWARD_LABEL(RML__int_5fmod);
-extern RML_FORWARD_LABEL(RML__int_5fmul);
-extern RML_FORWARD_LABEL(RML__int_5fne);
-extern RML_FORWARD_LABEL(RML__int_5fneg);
-extern RML_FORWARD_LABEL(RML__int_5freal);
-extern RML_FORWARD_LABEL(RML__int_5fstring);
-extern RML_FORWARD_LABEL(RML__int_5fsub);
-/* bit operations */
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
-/* java named */
-#define RML__intAbs       RML__int_5fabs
-#define RML__intAdd       RML__int_5fadd
-#define RML__intDiv       RML__int_5fdiv
-#define RML__intEq        RML__int_5feq
-#define RML__intGe        RML__int_5fge
-#define RML__intGt        RML__int_5fgt
-#define RML__intLe        RML__int_5fle
-#define RML__intLt        RML__int_5flt
-#define RML__intMax       RML__int_5fmax
-#define RML__intMin       RML__int_5fmin
-#define RML__intMod       RML__int_5fmod
-#define RML__intMul       RML__int_5fmul
-#define RML__intNe        RML__int_5fne
-#define RML__intNeg       RML__int_5fneg
-#define RML__intReal      RML__int_5freal
-#define RML__intString    RML__int_5fstring
-#define RML__intSub       RML__int_5fsub
-/* bit operations */
-#define RML__intBitNot    RML__int_5fbit_5fnot
-#define RML__intBitAnd    RML__int_5fbit_5fand
-#define RML__intBitOr     RML__int_5fbit_5for
-#define RML__intBitXor    RML__int_5fbit_5fxor
-#define RML__intBitLShift RML__int_5fbit_5flshift
-#define RML__intBitRShift RML__int_5fbit_5frshift
-
-
-/* lists */
-extern RML_FORWARD_LABEL(RML__list_5fappend);
-extern RML_FORWARD_LABEL(RML__list_5fdelete);
-extern RML_FORWARD_LABEL(RML__list_5flength);
-extern RML_FORWARD_LABEL(RML__list_5fmember);
-extern RML_FORWARD_LABEL(RML__list_5fnth);
-extern RML_FORWARD_LABEL(RML__list_5fget);
-extern RML_FORWARD_LABEL(RML__list_5freverse);
-extern RML_FORWARD_LABEL(RML__list_5fvector);
-extern RML_FORWARD_LABEL(RML__list_5farray);
-extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
-/* java named */
-#define RML__listAppend       RML__list_5fappend
-#define RML__listDelete       RML__list_5fdelete
-#define RML__listLength       RML__list_5flength
-#define RML__listMember       RML__list_5fmember
-#define RML__listNth          RML__list_5fnth
-#define RML__listGet          RML__list_5fget
-#define RML__listReverse      RML__list_5freverse
-#define RML__listVector       RML__list_5fvector
-#define RML__listArray        RML__list_5farray
-#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
-
-/* logical variables */
-extern RML_FORWARD_LABEL(RML__lvar_5fget);
-extern RML_FORWARD_LABEL(RML__lvar_5fnew);
-extern RML_FORWARD_LABEL(RML__lvar_5fset);
-/* java named */
-#define RML__lvarGet RML__lvar_5fget
-#define RML__lvarNew RML__lvar_5fnew
-#define RML__lvarSet RML__lvar_5fset
-
-/* reals */
-extern RML_FORWARD_LABEL(RML__real_5fabs);
-extern RML_FORWARD_LABEL(RML__real_5fadd);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fcos);
-extern RML_FORWARD_LABEL(RML__real_5fdiv);
-extern RML_FORWARD_LABEL(RML__real_5feq);
-extern RML_FORWARD_LABEL(RML__real_5fexp);
-extern RML_FORWARD_LABEL(RML__real_5ffloor);
-extern RML_FORWARD_LABEL(RML__real_5fceil);
-extern RML_FORWARD_LABEL(RML__real_5fge);
-extern RML_FORWARD_LABEL(RML__real_5fgt);
-extern RML_FORWARD_LABEL(RML__real_5fint);
-extern RML_FORWARD_LABEL(RML__real_5fle);
-extern RML_FORWARD_LABEL(RML__real_5fln);
-extern RML_FORWARD_LABEL(RML__real_5flt);
-extern RML_FORWARD_LABEL(RML__real_5fmax);
-extern RML_FORWARD_LABEL(RML__real_5fmin);
-extern RML_FORWARD_LABEL(RML__real_5fmod);
-extern RML_FORWARD_LABEL(RML__real_5fmul);
-extern RML_FORWARD_LABEL(RML__real_5fne);
-extern RML_FORWARD_LABEL(RML__real_5fneg);
-extern RML_FORWARD_LABEL(RML__real_5fpow);
-extern RML_FORWARD_LABEL(RML__real_5fsin);
-extern RML_FORWARD_LABEL(RML__real_5fsqrt);
-extern RML_FORWARD_LABEL(RML__real_5fstring);
-extern RML_FORWARD_LABEL(RML__real_5fsub);
-extern RML_FORWARD_LABEL(RML__real_5fasin);
-extern RML_FORWARD_LABEL(RML__real_5facos);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fatan2);
-extern RML_FORWARD_LABEL(RML__real_5fcosh);
-extern RML_FORWARD_LABEL(RML__real_5flog);
-extern RML_FORWARD_LABEL(RML__real_5flog10);
-extern RML_FORWARD_LABEL(RML__real_5fsinh);
-extern RML_FORWARD_LABEL(RML__real_5ftanh);
-/* java named */
-#define RML__realAbs    RML__real_5fabs
-#define RML__realAdd    RML__real_5fadd
-#define RML__realAtan   RML__real_5fatan
-#define RML__realCos    RML__real_5fcos
-#define RML__realDiv    RML__real_5fdiv
-#define RML__realEq     RML__real_5feq
-#define RML__realExp    RML__real_5fexp
-#define RML__realFloor  RML__real_5ffloor
-#define RML__realCeil   RML__real_5fceil
-#define RML__realGe     RML__real_5fge
-#define RML__realGt     RML__real_5fgt
-#define RML__realInt    RML__real_5fint
-#define RML__realLe     RML__real_5fle
-#define RML__realLn     RML__real_5fln
-#define RML__realLt     RML__real_5flt
-#define RML__realMax    RML__real_5fmax
-#define RML__realMin    RML__real_5fmin
-#define RML__realMod    RML__real_5fmod
-#define RML__realMul    RML__real_5fmul
-#define RML__realNe     RML__real_5fne
-#define RML__realNeg    RML__real_5fneg
-#define RML__realPow    RML__real_5fpow
-#define RML__realSin    RML__real_5fsin
-#define RML__realSqrt   RML__real_5fsqrt
-#define RML__realString RML__real_5fstring
-#define RML__realSub    RML__real_5fsub
-#define RML__realAsin   RML__real_5fasin
-#define RML__realAcos   RML__real_5facos
-#define RML__realAtan2  RML__real_5fatan2
-#define RML__realCosh   RML__real_5fcosh
-#define RML__realLog    RML__real_5flog
-#define RML__realLog10  RML__real_5flog10
-#define RML__realSinh   RML__real_5fsinh
-#define RML__realTanh   RML__real_5ftanh
-
-/* strings */
-extern RML_FORWARD_LABEL(RML__string_5fappend);
-extern RML_FORWARD_LABEL(RML__string_5fint);
-extern RML_FORWARD_LABEL(RML__string_5flength);
-extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
-/* java named */
-#define RML__stringAppend RML__string_5fappend
-#define RML__stringInt    RML__string_5fint
-#define RML__stringLength RML__string_5flength
-#define RML__stringAppendList RML__string_5fappend_5flist
-#define RML__stringDelimitList RML__string_5fdelimit_5flist
-
-/* declarative vectors */
-extern RML_FORWARD_LABEL(RML__vector_5flength);
-extern RML_FORWARD_LABEL(RML__vector_5flist);
-extern RML_FORWARD_LABEL(RML__vector_5fnth);
-extern RML_FORWARD_LABEL(RML__vector_5fget);
-extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
-extern RML_FORWARD_LABEL(RML__vector_5fupdate);
-extern RML_FORWARD_LABEL(RML__vector_5fcreate);
-extern RML_FORWARD_LABEL(RML__vector_5fadd);
-extern RML_FORWARD_LABEL(RML__vector_5farray);
-extern RML_FORWARD_LABEL(RML__vector_5fcopy);
-/* java named */
-#define RML__vectorLength RML__vector_5flength
-#define RML__vectorList   RML__vector_5flist
-#define RML__vectorNth    RML__vector_5fnth
-#define RML__vectorGet    RML__vector_5fget
-#define RML__vectorSetNth RML__vector_5fsetnth
-#define RML__vectorUpdate RML__vector_5fupdate
-#define RML__vectorCreate RML__vector_5fcreate
-#define RML__vectorAdd    RML__vector_5fadd
-#define RML__vectorArray  RML__vector_5farray
-#define RML__vectorCopy   RML__vector_5fcopy
-
-/* mutable arrays */
-extern RML_FORWARD_LABEL(RML__array_5flength);
-extern RML_FORWARD_LABEL(RML__array_5flist);
-extern RML_FORWARD_LABEL(RML__array_5fnth);
-extern RML_FORWARD_LABEL(RML__array_5fget);
-extern RML_FORWARD_LABEL(RML__array_5fsetnth);
-extern RML_FORWARD_LABEL(RML__array_5fupdate);
-extern RML_FORWARD_LABEL(RML__array_5fcreate);
-extern RML_FORWARD_LABEL(RML__array_5fadd);
-extern RML_FORWARD_LABEL(RML__array_5fvector);
-extern RML_FORWARD_LABEL(RML__array_5fcopy);
-/* java named */
-#define RML__arrayLength RML__array_5flength
-#define RML__arrayList   RML__array_5flist
-#define RML__arrayNth    RML__array_5fnth
-#define RML__arrayGet    RML__array_5fget
-#define RML__arraySetNth RML__array_5fsetnth
-#define RML__arrayUpdate RML__array_5fupdate
-#define RML__arrayCreate RML__array_5fcreate
-#define RML__arrayAdd    RML__array_5fadd
-#define RML__arrayVector RML__array_5fvector
-#define RML__arrayCopy   RML__array_5fcopy
-
-/* if expressions */
-extern RML_FORWARD_LABEL(RML__if_5fexp);
-#define RML__ifExp   RML__if_5fexp
-
-/* misc */
-extern RML_FORWARD_LABEL(RML__clock);
-extern RML_FORWARD_LABEL(RML__print);
-extern RML_FORWARD_LABEL(RML__tick);
-extern RML_FORWARD_LABEL(RML__unique);
-extern RML_FORWARD_LABEL(RML__enable_5ftrace);
-extern RML_FORWARD_LABEL(RML__disable_5ftrace);
-extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
-/* java names */
-#define RML__enableTrace  RML__enable_5ftrace
-#define RML__disableTrace RML__disable_5ftrace
-
-
-/* debugging */
-/* let these relation be available in all rml libraries */
-/* however their code depends on _RMLDB_DEFINED_ */
-extern RML_FORWARD_LABEL(RML__debug_5fprint);
-extern RML_FORWARD_LABEL(RML__debug);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
-extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
-
-extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
-#ifndef _RMLDB_COMMAND_H_
-#define _RMLDB_COMMAND_H_
-
-/* the commands accepted by the debugger */
-#define RMLDB_CMD_NONE 							0000
-#define RMLDB_CMD_BREAKPOINT 					1000
-#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
-#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
-#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
-#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
-#define RMLDB_CMD_STRING_BREAKPOINT 			1005
-#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
-#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
-#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
-#define RMLDB_CMD_STACK							1009
-#define RMLDB_CMD_VARIABLE_VALUE				1010
-#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
-#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
-#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
-
-#define RMLDB_CMD_RESUME						2000
-#define RMLDB_CMD_STEP							2001
-#define RMLDB_CMD_STEP_OVER						2002
-#define RMLDB_CMD_STEP_RETURN					2003
-#define RMLDB_CMD_RUN							2004
-#define RMLDB_CMD_QUIT							2005
-
-/* the response of the debugger to commands */
-#define RMLDB_REPLY_OK							"$ok"
-#define RMLDB_REPLY_ERROR						"$err"
-
-/* the signals accepted by the debugger  */
-#define RMLDB_SIGNAL_SUSPEND					"$u"
-#define RMLDB_SIGNAL_QUIT						"$q"
-
-
-/* the events send by the debugger to the Eclipse UI */
-#define RMLDB_EVENT_START						"$t"
-#define RMLDB_EVENT_READY						"$rdy"
-#define RMLDB_EVENT_STEP						"$s"
-#define RMLDB_EVENT_STEP_OVER					"$o"
-#define RMLDB_EVENT_STEP_RETURN					"$n"
-#define RMLDB_EVENT_RUN							"$r"
-#define RMLDB_EVENT_QUIT						"$q"
-#define RMLDB_EVENT_SUSPEND						"$u"
-#define RMLDB_EVENT_BREAKPOINT					"$b"
-#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
-#define RMLDB_EVENT_ERROR						"$err"
-
-typedef struct rmldb_command_t
-{
-	int ty;   /* the command type */
-	union 
-	{
-		struct brkFile      	 { char *file; int   line;   		} brkFile;
-		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
-		struct brkString		 { char *filter;             		} brkString;
-        struct brkFailure        { char *filter;                    } brkFailure;        
-		struct varValue			 { char *name;       	    		} varValue;
-		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
-		struct frameVarValue     { int frame; int nr;				} frameVarValue;
-		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
-	} data;
-} rmldb_command_type;
-
-
-extern rmldb_command_type* rmldb_current_command;
-
-extern rmldb_command_type* rmldb_mk_cmd(int ty);
-extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
-extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
-extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
-extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
-extern int rmldb_freeCommand(rmldb_command_type* cmd);
-
-#endif /* _RMLDB_COMMAND_H_*/
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-
-/*
- * [ rml-socket.h ] 
- * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
- * - creation 2007-02-24
- *   + interface for Windows and Linux sockets
- *   + all things in this file start with rmldb_socket_*
- * - last modified 2007-02-24
- *****************************************************************************/
-
-#ifdef RML_DEBUG
-#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-/*********** MINGW32 && MSVC stuff **********/
-#include <winsock2.h>
-
-#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
-#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
-#define _rmldb_socket_close closesocket
-#define _rmldb_socket_errorno WSAGetLastError()
-
-#else /***************** unix stuff ***************/
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/unistd.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define _rmldb_socket_send(x,y,z) write(x,y,z)
-#define _rmldb_socket_recv(x,y,z) read(x,y,z)
-#define _rmldb_socket_close close
-#define _rmldb_socket_errorno errno
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-
-#endif
-
-/* 
- * set to 1 to have debugging or to 0 to 
- * disable debugging of the socket communication
- */
-extern int   rmldb_socket_debug;
-/* 
- * initialize the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_initialize_library(void);  
-/* 
- * cleanups the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_cleanup_library(void);  
-
-/* 
- * get a socket 
- * returns -1 or the socket
- */
-extern int   rmldb_socket_get(void);
-
-/* 
- * binds the given socket on localhost and given port
- * performs bind and listen
- * returns -1 on error and 0 on success
- */
-extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
-/* 
- * performs accept on the given socket 
- * returns the new socket or -1 on error
- */
-extern int   rmldb_socket_accept(int socket);
-
-/* 
- * close the socket 
- * returns -1 for error or 0 for no error 
- */
-extern int   rmldb_socket_close(int socket); 
-
-/* send to socket with error handling */
-extern int rmldb_socket_outln(int sock, char *msg);
-extern int rmldb_socket_out(int sock, char *msg);
-
-#endif
-/* handler.h */
-#ifndef HANDLER_H_
-#define HANDLER_H_
-
-extern int   aaerror(char*);
-extern int   aaparse(void);
-extern int   aadebug;
-
-#ifdef RML_DEBUG
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-
-#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
-#include <signal.h>
-#endif
-
-#else /***************** unix stuff ***************/
-#include <signal.h>
-#endif /* unix vs windows stuff */
-
-/* adrpo - debugger global variables */
-extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
-extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
-extern int   rmldb_event_port;  /* listen on this port and send event to the client */
-extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
-
-typedef struct rmldb_communication
-{
-	int   cmd_bind_sock;     /* bind and accept on this socket */
-	int   cmd_sock;          /* listen for commands on this socket */
-	int   reply_bind_sock;   /* bind and accept on this socket */
-	int   reply_sock;        /* send reply of commands to this socket */	
-	int   event_bind_sock;   /* bind and accept on this socket */
-	int   event_sock;        /* send output to this port */
-	int   signal_bind_sock;  /* bind and accept on this socket */
-	int   signal_sock;       /* listen to async events from client */
-} rmldb_communication_type;
-
-extern rmldb_communication_type rmldb_communicator;
-
-extern int rmldb_last_command;
-extern int rmldb_startSignalHandler(void* arg);
-extern int rmldb_endSignalHandler(void);
-extern int rmldb_interpretCommand(void);
-extern int rmldb_executeCommand(rmldb_command_type* cmd);
-extern int rmldb_sendEvent(char* event);
-extern int rmldb_sendReply(char* reply);
-
-#endif /* RML_DEBUG */
-
-#endif /*HANDLER_H_*/
+
+/*
+ * rml-predef.h
+ */
+
+extern void rml_prim_motor(rml_labptr_t);
+extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
+extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
+/* let the print relation be available for non-debug-version-rml-library also */
+extern void rmldb_var_print(void *p);
+
+/*
+ * Standard procedures
+ * adrpo added Java named RML buildin relations 2005-11-10
+ */
+
+/* roots */
+extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
+extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
+/* java named */
+#define RML__setGlobalRoot  RML__set_5fglobal_5froot
+#define RML__getGlobalRoot  RML__get_5fglobal_5froot
+
+/* references */
+extern RML_FORWARD_LABEL(RML__reference_5feq);
+extern RML_FORWARD_LABEL(RML__reference_5finteger);
+extern RML_FORWARD_LABEL(RML__reference_5fupdate);
+extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
+extern RML_FORWARD_LABEL(RML__reference_5fshare);
+/* java named */
+#define RML__referenceEq       RML__reference_5feq
+#define RML__referenceInteger  RML__reference_5finteger
+#define RML__referenceUpdate   RML__reference_5fupdate
+#define RML__referenceSetNth   RML__reference_5fsetnth
+#define RML__referenceShare    RML__reference_5fshare
+
+/* values */
+extern RML_FORWARD_LABEL(RML__value_5fconstructor);
+extern RML_FORWARD_LABEL(RML__value_5fslots);
+extern RML_FORWARD_LABEL(RML__value_5feq);
+extern RML_FORWARD_LABEL(RML__value_5fmatch);
+extern RML_FORWARD_LABEL(RML__value_5fhash);
+extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
+/* java named */
+#define RML__valueConstructor RML__value_5fconstructor
+#define RML__valueSlots       RML__value_5fslots
+#define RML__valueEq          RML__value_5feq
+#define RML__valueMatch       RML__value_5fmatch
+#define RML__valueHash        RML__value_5fhash
+#define RML__valueHashMod     RML__value_5fhash_5fmod
+
+/* booleans */
+extern RML_FORWARD_LABEL(RML__bool_5fand);
+extern RML_FORWARD_LABEL(RML__bool_5fnot);
+extern RML_FORWARD_LABEL(RML__bool_5for);
+extern RML_FORWARD_LABEL(RML__bool_5feq);
+extern RML_FORWARD_LABEL(RML__bool_5fstring);
+/* java named */
+#define RML__boolAnd    RML__bool_5fand
+#define RML__boolNot    RML__bool_5fnot
+#define RML__boolOr     RML__bool_5for
+#define RML__boolEq     RML__bool_5feq
+#define RML__boolString RML__bool_5fstring
+
+/* chars */
+extern RML_FORWARD_LABEL(RML__int_5fint);
+extern RML_FORWARD_LABEL(RML__list_5fstring);
+extern RML_FORWARD_LABEL(RML__string_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fnth);
+extern RML_FORWARD_LABEL(RML__string_5fget);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth);
+extern RML_FORWARD_LABEL(RML__string_5fupdate);
+extern RML_FORWARD_LABEL(RML__string_5fequal);
+extern RML_FORWARD_LABEL(RML__string_5fcompare);
+/* hash functions */
+extern RML_FORWARD_LABEL(RML__string_5fhash);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
+#define RML__char_5fint	RML__int_5fint
+#define RML__int_5fchar	RML__int_5fint
+/* java named */
+#define RML__intChar        RML__int_5fint
+#define RML__charInt        RML__int_5fint
+#define RML__listString     RML__list_5fstring
+#define RML__stringList     RML__string_5flist
+#define RML__stringNth      RML__string_5fnth
+#define RML__stringGet      RML__string_5fget
+#define RML__stringSetNth   RML__string_5fset_5fnth
+#define RML__stringUpdate   RML__string_5fupdate
+#define RML__stringEqual    RML__string_5fequal
+#define RML__stringCompare  RML__string_5fcompare
+#define RML__stringEq       RML__string_5fequal
+#define RML__string_5feq    RML__string_5fequal
+/* hash functions */
+#define RML__stringHash     RML__string_5fhash
+#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
+#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
+
+/* string chars */
+extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
+extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
+/* java named */
+#define RML__stringCharInt           RML__string_5fchar_5fint
+#define RML__intStringChar           RML__int_5fstring_5fchar
+#define RML__listStringChar          RML__list_5fstring_5fchar
+#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
+#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
+#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
+#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
+#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
+#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
+
+extern RML_FORWARD_LABEL(RML__int_5fabs);
+extern RML_FORWARD_LABEL(RML__int_5fadd);
+extern RML_FORWARD_LABEL(RML__int_5fdiv);
+extern RML_FORWARD_LABEL(RML__int_5feq);
+extern RML_FORWARD_LABEL(RML__int_5fge);
+extern RML_FORWARD_LABEL(RML__int_5fgt);
+extern RML_FORWARD_LABEL(RML__int_5fle);
+extern RML_FORWARD_LABEL(RML__int_5flt);
+extern RML_FORWARD_LABEL(RML__int_5fmax);
+extern RML_FORWARD_LABEL(RML__int_5fmin);
+extern RML_FORWARD_LABEL(RML__int_5fmod);
+extern RML_FORWARD_LABEL(RML__int_5fmul);
+extern RML_FORWARD_LABEL(RML__int_5fne);
+extern RML_FORWARD_LABEL(RML__int_5fneg);
+extern RML_FORWARD_LABEL(RML__int_5freal);
+extern RML_FORWARD_LABEL(RML__int_5fstring);
+extern RML_FORWARD_LABEL(RML__int_5fsub);
+/* bit operations */
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
+/* java named */
+#define RML__intAbs       RML__int_5fabs
+#define RML__intAdd       RML__int_5fadd
+#define RML__intDiv       RML__int_5fdiv
+#define RML__intEq        RML__int_5feq
+#define RML__intGe        RML__int_5fge
+#define RML__intGt        RML__int_5fgt
+#define RML__intLe        RML__int_5fle
+#define RML__intLt        RML__int_5flt
+#define RML__intMax       RML__int_5fmax
+#define RML__intMin       RML__int_5fmin
+#define RML__intMod       RML__int_5fmod
+#define RML__intMul       RML__int_5fmul
+#define RML__intNe        RML__int_5fne
+#define RML__intNeg       RML__int_5fneg
+#define RML__intReal      RML__int_5freal
+#define RML__intString    RML__int_5fstring
+#define RML__intSub       RML__int_5fsub
+/* bit operations */
+#define RML__intBitNot    RML__int_5fbit_5fnot
+#define RML__intBitAnd    RML__int_5fbit_5fand
+#define RML__intBitOr     RML__int_5fbit_5for
+#define RML__intBitXor    RML__int_5fbit_5fxor
+#define RML__intBitLShift RML__int_5fbit_5flshift
+#define RML__intBitRShift RML__int_5fbit_5frshift
+
+
+/* lists */
+extern RML_FORWARD_LABEL(RML__list_5fappend);
+extern RML_FORWARD_LABEL(RML__list_5fdelete);
+extern RML_FORWARD_LABEL(RML__list_5flength);
+extern RML_FORWARD_LABEL(RML__list_5fmember);
+extern RML_FORWARD_LABEL(RML__list_5fnth);
+extern RML_FORWARD_LABEL(RML__list_5fget);
+extern RML_FORWARD_LABEL(RML__list_5freverse);
+extern RML_FORWARD_LABEL(RML__list_5fvector);
+extern RML_FORWARD_LABEL(RML__list_5farray);
+extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
+/* java named */
+#define RML__listAppend       RML__list_5fappend
+#define RML__listDelete       RML__list_5fdelete
+#define RML__listLength       RML__list_5flength
+#define RML__listMember       RML__list_5fmember
+#define RML__listNth          RML__list_5fnth
+#define RML__listGet          RML__list_5fget
+#define RML__listReverse      RML__list_5freverse
+#define RML__listVector       RML__list_5fvector
+#define RML__listArray        RML__list_5farray
+#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
+
+/* logical variables */
+extern RML_FORWARD_LABEL(RML__lvar_5fget);
+extern RML_FORWARD_LABEL(RML__lvar_5fnew);
+extern RML_FORWARD_LABEL(RML__lvar_5fset);
+/* java named */
+#define RML__lvarGet RML__lvar_5fget
+#define RML__lvarNew RML__lvar_5fnew
+#define RML__lvarSet RML__lvar_5fset
+
+/* reals */
+extern RML_FORWARD_LABEL(RML__real_5fabs);
+extern RML_FORWARD_LABEL(RML__real_5fadd);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fcos);
+extern RML_FORWARD_LABEL(RML__real_5fdiv);
+extern RML_FORWARD_LABEL(RML__real_5feq);
+extern RML_FORWARD_LABEL(RML__real_5fexp);
+extern RML_FORWARD_LABEL(RML__real_5ffloor);
+extern RML_FORWARD_LABEL(RML__real_5fceil);
+extern RML_FORWARD_LABEL(RML__real_5fge);
+extern RML_FORWARD_LABEL(RML__real_5fgt);
+extern RML_FORWARD_LABEL(RML__real_5fint);
+extern RML_FORWARD_LABEL(RML__real_5fle);
+extern RML_FORWARD_LABEL(RML__real_5fln);
+extern RML_FORWARD_LABEL(RML__real_5flt);
+extern RML_FORWARD_LABEL(RML__real_5fmax);
+extern RML_FORWARD_LABEL(RML__real_5fmin);
+extern RML_FORWARD_LABEL(RML__real_5fmod);
+extern RML_FORWARD_LABEL(RML__real_5fmul);
+extern RML_FORWARD_LABEL(RML__real_5fne);
+extern RML_FORWARD_LABEL(RML__real_5fneg);
+extern RML_FORWARD_LABEL(RML__real_5fpow);
+extern RML_FORWARD_LABEL(RML__real_5fsin);
+extern RML_FORWARD_LABEL(RML__real_5fsqrt);
+extern RML_FORWARD_LABEL(RML__real_5fstring);
+extern RML_FORWARD_LABEL(RML__real_5fsub);
+extern RML_FORWARD_LABEL(RML__real_5fasin);
+extern RML_FORWARD_LABEL(RML__real_5facos);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fatan2);
+extern RML_FORWARD_LABEL(RML__real_5fcosh);
+extern RML_FORWARD_LABEL(RML__real_5flog);
+extern RML_FORWARD_LABEL(RML__real_5flog10);
+extern RML_FORWARD_LABEL(RML__real_5fsinh);
+extern RML_FORWARD_LABEL(RML__real_5ftanh);
+/* java named */
+#define RML__realAbs    RML__real_5fabs
+#define RML__realAdd    RML__real_5fadd
+#define RML__realAtan   RML__real_5fatan
+#define RML__realCos    RML__real_5fcos
+#define RML__realDiv    RML__real_5fdiv
+#define RML__realEq     RML__real_5feq
+#define RML__realExp    RML__real_5fexp
+#define RML__realFloor  RML__real_5ffloor
+#define RML__realCeil   RML__real_5fceil
+#define RML__realGe     RML__real_5fge
+#define RML__realGt     RML__real_5fgt
+#define RML__realInt    RML__real_5fint
+#define RML__realLe     RML__real_5fle
+#define RML__realLn     RML__real_5fln
+#define RML__realLt     RML__real_5flt
+#define RML__realMax    RML__real_5fmax
+#define RML__realMin    RML__real_5fmin
+#define RML__realMod    RML__real_5fmod
+#define RML__realMul    RML__real_5fmul
+#define RML__realNe     RML__real_5fne
+#define RML__realNeg    RML__real_5fneg
+#define RML__realPow    RML__real_5fpow
+#define RML__realSin    RML__real_5fsin
+#define RML__realSqrt   RML__real_5fsqrt
+#define RML__realString RML__real_5fstring
+#define RML__realSub    RML__real_5fsub
+#define RML__realAsin   RML__real_5fasin
+#define RML__realAcos   RML__real_5facos
+#define RML__realAtan2  RML__real_5fatan2
+#define RML__realCosh   RML__real_5fcosh
+#define RML__realLog    RML__real_5flog
+#define RML__realLog10  RML__real_5flog10
+#define RML__realSinh   RML__real_5fsinh
+#define RML__realTanh   RML__real_5ftanh
+
+/* strings */
+extern RML_FORWARD_LABEL(RML__string_5fappend);
+extern RML_FORWARD_LABEL(RML__string_5fint);
+extern RML_FORWARD_LABEL(RML__string_5flength);
+extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
+/* java named */
+#define RML__stringAppend RML__string_5fappend
+#define RML__stringInt    RML__string_5fint
+#define RML__stringLength RML__string_5flength
+#define RML__stringAppendList RML__string_5fappend_5flist
+#define RML__stringDelimitList RML__string_5fdelimit_5flist
+
+/* declarative vectors */
+extern RML_FORWARD_LABEL(RML__vector_5flength);
+extern RML_FORWARD_LABEL(RML__vector_5flist);
+extern RML_FORWARD_LABEL(RML__vector_5fnth);
+extern RML_FORWARD_LABEL(RML__vector_5fget);
+extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
+extern RML_FORWARD_LABEL(RML__vector_5fupdate);
+extern RML_FORWARD_LABEL(RML__vector_5fcreate);
+extern RML_FORWARD_LABEL(RML__vector_5fadd);
+extern RML_FORWARD_LABEL(RML__vector_5farray);
+extern RML_FORWARD_LABEL(RML__vector_5fcopy);
+/* java named */
+#define RML__vectorLength RML__vector_5flength
+#define RML__vectorList   RML__vector_5flist
+#define RML__vectorNth    RML__vector_5fnth
+#define RML__vectorGet    RML__vector_5fget
+#define RML__vectorSetNth RML__vector_5fsetnth
+#define RML__vectorUpdate RML__vector_5fupdate
+#define RML__vectorCreate RML__vector_5fcreate
+#define RML__vectorAdd    RML__vector_5fadd
+#define RML__vectorArray  RML__vector_5farray
+#define RML__vectorCopy   RML__vector_5fcopy
+
+/* mutable arrays */
+extern RML_FORWARD_LABEL(RML__array_5flength);
+extern RML_FORWARD_LABEL(RML__array_5flist);
+extern RML_FORWARD_LABEL(RML__array_5fnth);
+extern RML_FORWARD_LABEL(RML__array_5fget);
+extern RML_FORWARD_LABEL(RML__array_5fsetnth);
+extern RML_FORWARD_LABEL(RML__array_5fupdate);
+extern RML_FORWARD_LABEL(RML__array_5fcreate);
+extern RML_FORWARD_LABEL(RML__array_5fadd);
+extern RML_FORWARD_LABEL(RML__array_5fvector);
+extern RML_FORWARD_LABEL(RML__array_5fcopy);
+/* java named */
+#define RML__arrayLength RML__array_5flength
+#define RML__arrayList   RML__array_5flist
+#define RML__arrayNth    RML__array_5fnth
+#define RML__arrayGet    RML__array_5fget
+#define RML__arraySetNth RML__array_5fsetnth
+#define RML__arrayUpdate RML__array_5fupdate
+#define RML__arrayCreate RML__array_5fcreate
+#define RML__arrayAdd    RML__array_5fadd
+#define RML__arrayVector RML__array_5fvector
+#define RML__arrayCopy   RML__array_5fcopy
+
+/* if expressions */
+extern RML_FORWARD_LABEL(RML__if_5fexp);
+#define RML__ifExp   RML__if_5fexp
+
+/* misc */
+extern RML_FORWARD_LABEL(RML__clock);
+extern RML_FORWARD_LABEL(RML__print);
+extern RML_FORWARD_LABEL(RML__tick);
+extern RML_FORWARD_LABEL(RML__unique);
+extern RML_FORWARD_LABEL(RML__enable_5ftrace);
+extern RML_FORWARD_LABEL(RML__disable_5ftrace);
+extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
+/* java names */
+#define RML__enableTrace  RML__enable_5ftrace
+#define RML__disableTrace RML__disable_5ftrace
+
+
+/* debugging */
+/* let these relation be available in all rml libraries */
+/* however their code depends on _RMLDB_DEFINED_ */
+extern RML_FORWARD_LABEL(RML__debug_5fprint);
+extern RML_FORWARD_LABEL(RML__debug);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
+extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
+
+extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
+#ifndef _RMLDB_COMMAND_H_
+#define _RMLDB_COMMAND_H_
+
+/* the commands accepted by the debugger */
+#define RMLDB_CMD_NONE 							0000
+#define RMLDB_CMD_BREAKPOINT 					1000
+#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
+#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
+#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
+#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
+#define RMLDB_CMD_STRING_BREAKPOINT 			1005
+#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
+#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
+#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
+#define RMLDB_CMD_STACK							1009
+#define RMLDB_CMD_VARIABLE_VALUE				1010
+#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
+#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
+#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
+
+#define RMLDB_CMD_RESUME						2000
+#define RMLDB_CMD_STEP							2001
+#define RMLDB_CMD_STEP_OVER						2002
+#define RMLDB_CMD_STEP_RETURN					2003
+#define RMLDB_CMD_RUN							2004
+#define RMLDB_CMD_QUIT							2005
+
+/* the response of the debugger to commands */
+#define RMLDB_REPLY_OK							"$ok"
+#define RMLDB_REPLY_ERROR						"$err"
+
+/* the signals accepted by the debugger  */
+#define RMLDB_SIGNAL_SUSPEND					"$u"
+#define RMLDB_SIGNAL_QUIT						"$q"
+
+
+/* the events send by the debugger to the Eclipse UI */
+#define RMLDB_EVENT_START						"$t"
+#define RMLDB_EVENT_READY						"$rdy"
+#define RMLDB_EVENT_STEP						"$s"
+#define RMLDB_EVENT_STEP_OVER					"$o"
+#define RMLDB_EVENT_STEP_RETURN					"$n"
+#define RMLDB_EVENT_RUN							"$r"
+#define RMLDB_EVENT_QUIT						"$q"
+#define RMLDB_EVENT_SUSPEND						"$u"
+#define RMLDB_EVENT_BREAKPOINT					"$b"
+#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
+#define RMLDB_EVENT_ERROR						"$err"
+
+typedef struct rmldb_command_t
+{
+	int ty;   /* the command type */
+	union 
+	{
+		struct brkFile      	 { char *file; int   line;   		} brkFile;
+		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
+		struct brkString		 { char *filter;             		} brkString;
+        struct brkFailure        { char *filter;                    } brkFailure;        
+		struct varValue			 { char *name;       	    		} varValue;
+		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
+		struct frameVarValue     { int frame; int nr;				} frameVarValue;
+		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
+	} data;
+} rmldb_command_type;
+
+
+extern rmldb_command_type* rmldb_current_command;
+
+extern rmldb_command_type* rmldb_mk_cmd(int ty);
+extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
+extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
+extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
+extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
+extern int rmldb_freeCommand(rmldb_command_type* cmd);
+
+#endif /* _RMLDB_COMMAND_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+
+/*
+ * [ rml-socket.h ] 
+ * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+ * - creation 2007-02-24
+ *   + interface for Windows and Linux sockets
+ *   + all things in this file start with rmldb_socket_*
+ * - last modified 2007-02-24
+ *****************************************************************************/
+
+#ifdef RML_DEBUG
+#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+/*********** MINGW32 && MSVC stuff **********/
+#include <winsock2.h>
+
+#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
+#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
+#define _rmldb_socket_close closesocket
+#define _rmldb_socket_errorno WSAGetLastError()
+
+#else /***************** unix stuff ***************/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/unistd.h>
+#include <sys/stat.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define _rmldb_socket_send(x,y,z) write(x,y,z)
+#define _rmldb_socket_recv(x,y,z) read(x,y,z)
+#define _rmldb_socket_close close
+#define _rmldb_socket_errorno errno
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (-1)
+
+#endif
+
+/* 
+ * set to 1 to have debugging or to 0 to 
+ * disable debugging of the socket communication
+ */
+extern int   rmldb_socket_debug;
+/* 
+ * initialize the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_initialize_library(void);  
+/* 
+ * cleanups the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_cleanup_library(void);  
+
+/* 
+ * get a socket 
+ * returns -1 or the socket
+ */
+extern int   rmldb_socket_get(void);
+
+/* 
+ * binds the given socket on localhost and given port
+ * performs bind and listen
+ * returns -1 on error and 0 on success
+ */
+extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
+/* 
+ * performs accept on the given socket 
+ * returns the new socket or -1 on error
+ */
+extern int   rmldb_socket_accept(int socket);
+
+/* 
+ * close the socket 
+ * returns -1 for error or 0 for no error 
+ */
+extern int   rmldb_socket_close(int socket); 
+
+/* send to socket with error handling */
+extern int rmldb_socket_outln(int sock, char *msg);
+extern int rmldb_socket_out(int sock, char *msg);
+
+#endif
+/* handler.h */
+#ifndef HANDLER_H_
+#define HANDLER_H_
+
+extern int   aaerror(char*);
+extern int   aaparse(void);
+extern int   aadebug;
+
+#ifdef RML_DEBUG
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+
+#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
+#include <signal.h>
+#endif
+
+#else /***************** unix stuff ***************/
+#include <signal.h>
+#endif /* unix vs windows stuff */
+
+/* adrpo - debugger global variables */
+extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
+extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
+extern int   rmldb_event_port;  /* listen on this port and send event to the client */
+extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
+
+typedef struct rmldb_communication
+{
+	int   cmd_bind_sock;     /* bind and accept on this socket */
+	int   cmd_sock;          /* listen for commands on this socket */
+	int   reply_bind_sock;   /* bind and accept on this socket */
+	int   reply_sock;        /* send reply of commands to this socket */	
+	int   event_bind_sock;   /* bind and accept on this socket */
+	int   event_sock;        /* send output to this port */
+	int   signal_bind_sock;  /* bind and accept on this socket */
+	int   signal_sock;       /* listen to async events from client */
+} rmldb_communication_type;
+
+extern rmldb_communication_type rmldb_communicator;
+
+extern int rmldb_last_command;
+extern int rmldb_startSignalHandler(void* arg);
+extern int rmldb_endSignalHandler(void);
+extern int rmldb_interpretCommand(void);
+extern int rmldb_executeCommand(rmldb_command_type* cmd);
+extern int rmldb_sendEvent(char* event);
+extern int rmldb_sendReply(char* reply);
+
+#endif /* RML_DEBUG */
+
+#endif /*HANDLER_H_*/
 /***********************************************************
  [ load.h ] 
   - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
@@ -1735,110 +1735,110 @@ extern int   aarmldbdebug;
 extern int   aarmldb_lineno;
 
 #endif /* _RMLDB_LOAD_H_  */
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-/***********************************************************
- [ debug.h ] 
-  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
-  - creation 2002-10
-    + interface for rml debugging 
-    + this file contains all the functions for debugging 
-	+ all things in this file start with rmldb_
-  - last modified 2005-12-27
-************************************************************/
-#ifndef _RML_DEBUG_H_
-#define _RML_DEBUG_H_
-/* all these functions depends on RML_DEBUG macro */
-/************************************************************/
-
-#ifdef RML_DEBUG
-
-#include <stdio.h>
-#include <string.h>
-
-/* this file will be included in the generated rml.h */
-/* adrpo some useful defines. */
-#define RMLDB_SUCCESS  1
-#define RMLDB_FAILURE -1
-
-#define RMLDB_PROMPT "rml+mmc db@>"
-#define RMLDB_RUN         0
-#define RMLDB_STEP        1
-#define RMLDB_STEP_OVER   2
-#define RMLDB_STEP_RETURN	3
-#define RMLDB_BREAKPOINT  4
-#define RMLDB_TRACE_CALLS	5
-#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
-
-#define RMLDB_VAR_IN 0
-#define RMLDB_VAR_OUT 1
-
-extern int   rmldb_execution_type;
-extern int   rmldb_execution_startup_type;
-extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
-extern int   rmldb_depth_of_variable_print;
-extern int   rmldb_max_string_variable_print;
-/* location of current execution point */
-extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
-
-/* init/help/exit */
-extern int  rmldb_init(void);
-extern int  rmldb_end(void);
-extern void rmldb_exit(int status);
-extern int  rmldb_quit(char *line);
-
-/* breakpoints */
-extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
-
-/* variables */
-extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
-
-/* stack */
-extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
-extern int rmldb_push_stack_frame(
-			char* file, 
-			int charStart, int charEnd, 
-			int startLine, int startColumn, int endLine, int endColumn,					  
-			char* function,
-			char* call);
-extern int rmldb_pop_stack_frame(char gototype);
-
-#endif /* RML_DEBUG */
-
-#endif /* _RML_DEBUG_H_  */
-
-
-/* ending rml.h */
-#endif /*_RML_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+/***********************************************************
+ [ debug.h ] 
+  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+  - creation 2002-10
+    + interface for rml debugging 
+    + this file contains all the functions for debugging 
+	+ all things in this file start with rmldb_
+  - last modified 2005-12-27
+************************************************************/
+#ifndef _RML_DEBUG_H_
+#define _RML_DEBUG_H_
+/* all these functions depends on RML_DEBUG macro */
+/************************************************************/
+
+#ifdef RML_DEBUG
+
+#include <stdio.h>
+#include <string.h>
+
+/* this file will be included in the generated rml.h */
+/* adrpo some useful defines. */
+#define RMLDB_SUCCESS  1
+#define RMLDB_FAILURE -1
+
+#define RMLDB_PROMPT "rml+mmc db@>"
+#define RMLDB_RUN         0
+#define RMLDB_STEP        1
+#define RMLDB_STEP_OVER   2
+#define RMLDB_STEP_RETURN	3
+#define RMLDB_BREAKPOINT  4
+#define RMLDB_TRACE_CALLS	5
+#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
+
+#define RMLDB_VAR_IN 0
+#define RMLDB_VAR_OUT 1
+
+extern int   rmldb_execution_type;
+extern int   rmldb_execution_startup_type;
+extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
+extern int   rmldb_depth_of_variable_print;
+extern int   rmldb_max_string_variable_print;
+/* location of current execution point */
+extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
+
+/* init/help/exit */
+extern int  rmldb_init(void);
+extern int  rmldb_end(void);
+extern void rmldb_exit(int status);
+extern int  rmldb_quit(char *line);
+
+/* breakpoints */
+extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
+
+/* variables */
+extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
+
+/* stack */
+extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
+extern int rmldb_push_stack_frame(
+			char* file, 
+			int charStart, int charEnd, 
+			int startLine, int startColumn, int endLine, int endColumn,					  
+			char* function,
+			char* call);
+extern int rmldb_pop_stack_frame(char gototype);
+
+#endif /* RML_DEBUG */
+
+#endif /* _RML_DEBUG_H_  */
+
+
+/* ending rml.h */
+#endif /*_RML_H_*/
diff --git a/tools/rml/include/plain/rml.h b/tools/rml/include/plain/rml.h
index 985a611904924771cf10ffc234e1f3ed04fa791d..1387a0325365652936bf904564f7c9143f9a8ee4 100644
--- a/tools/rml/include/plain/rml.h
+++ b/tools/rml/include/plain/rml.h
@@ -40,9 +40,9 @@ typedef unsigned int rml_uint_t;
 
 #define RML_GCCGOTO
 #define RML_GCCGOTO_NOSHIFT
-/* starting rml.h */
-#ifndef _RML_H_
-#define _RML_H_
+/* starting rml.h */
+#ifndef _RML_H_
+#define _RML_H_
 /* 
  * This file is part of OpenModelica.
  * 
@@ -828,645 +828,645 @@ extern void *rml_prim_gcalloc(rml_uint_t, rml_uint_t);
 
 
 
-
-/*
- * rml-predef.h
- */
-
-extern void rml_prim_motor(rml_labptr_t);
-extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
-extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
-/* let the print relation be available for non-debug-version-rml-library also */
-extern void rmldb_var_print(void *p);
-
-/*
- * Standard procedures
- * adrpo added Java named RML buildin relations 2005-11-10
- */
-
-/* roots */
-extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
-extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
-/* java named */
-#define RML__setGlobalRoot  RML__set_5fglobal_5froot
-#define RML__getGlobalRoot  RML__get_5fglobal_5froot
-
-/* references */
-extern RML_FORWARD_LABEL(RML__reference_5feq);
-extern RML_FORWARD_LABEL(RML__reference_5finteger);
-extern RML_FORWARD_LABEL(RML__reference_5fupdate);
-extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
-extern RML_FORWARD_LABEL(RML__reference_5fshare);
-/* java named */
-#define RML__referenceEq       RML__reference_5feq
-#define RML__referenceInteger  RML__reference_5finteger
-#define RML__referenceUpdate   RML__reference_5fupdate
-#define RML__referenceSetNth   RML__reference_5fsetnth
-#define RML__referenceShare    RML__reference_5fshare
-
-/* values */
-extern RML_FORWARD_LABEL(RML__value_5fconstructor);
-extern RML_FORWARD_LABEL(RML__value_5fslots);
-extern RML_FORWARD_LABEL(RML__value_5feq);
-extern RML_FORWARD_LABEL(RML__value_5fmatch);
-extern RML_FORWARD_LABEL(RML__value_5fhash);
-extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
-/* java named */
-#define RML__valueConstructor RML__value_5fconstructor
-#define RML__valueSlots       RML__value_5fslots
-#define RML__valueEq          RML__value_5feq
-#define RML__valueMatch       RML__value_5fmatch
-#define RML__valueHash        RML__value_5fhash
-#define RML__valueHashMod     RML__value_5fhash_5fmod
-
-/* booleans */
-extern RML_FORWARD_LABEL(RML__bool_5fand);
-extern RML_FORWARD_LABEL(RML__bool_5fnot);
-extern RML_FORWARD_LABEL(RML__bool_5for);
-extern RML_FORWARD_LABEL(RML__bool_5feq);
-extern RML_FORWARD_LABEL(RML__bool_5fstring);
-/* java named */
-#define RML__boolAnd    RML__bool_5fand
-#define RML__boolNot    RML__bool_5fnot
-#define RML__boolOr     RML__bool_5for
-#define RML__boolEq     RML__bool_5feq
-#define RML__boolString RML__bool_5fstring
-
-/* chars */
-extern RML_FORWARD_LABEL(RML__int_5fint);
-extern RML_FORWARD_LABEL(RML__list_5fstring);
-extern RML_FORWARD_LABEL(RML__string_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fnth);
-extern RML_FORWARD_LABEL(RML__string_5fget);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth);
-extern RML_FORWARD_LABEL(RML__string_5fupdate);
-extern RML_FORWARD_LABEL(RML__string_5fequal);
-extern RML_FORWARD_LABEL(RML__string_5fcompare);
-/* hash functions */
-extern RML_FORWARD_LABEL(RML__string_5fhash);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
-#define RML__char_5fint	RML__int_5fint
-#define RML__int_5fchar	RML__int_5fint
-/* java named */
-#define RML__intChar        RML__int_5fint
-#define RML__charInt        RML__int_5fint
-#define RML__listString     RML__list_5fstring
-#define RML__stringList     RML__string_5flist
-#define RML__stringNth      RML__string_5fnth
-#define RML__stringGet      RML__string_5fget
-#define RML__stringSetNth   RML__string_5fset_5fnth
-#define RML__stringUpdate   RML__string_5fupdate
-#define RML__stringEqual    RML__string_5fequal
-#define RML__stringCompare  RML__string_5fcompare
-#define RML__stringEq       RML__string_5fequal
-#define RML__string_5feq    RML__string_5fequal
-/* hash functions */
-#define RML__stringHash     RML__string_5fhash
-#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
-#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
-
-/* string chars */
-extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
-extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
-/* java named */
-#define RML__stringCharInt           RML__string_5fchar_5fint
-#define RML__intStringChar           RML__int_5fstring_5fchar
-#define RML__listStringChar          RML__list_5fstring_5fchar
-#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
-#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
-#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
-#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
-#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
-#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
-
-extern RML_FORWARD_LABEL(RML__int_5fabs);
-extern RML_FORWARD_LABEL(RML__int_5fadd);
-extern RML_FORWARD_LABEL(RML__int_5fdiv);
-extern RML_FORWARD_LABEL(RML__int_5feq);
-extern RML_FORWARD_LABEL(RML__int_5fge);
-extern RML_FORWARD_LABEL(RML__int_5fgt);
-extern RML_FORWARD_LABEL(RML__int_5fle);
-extern RML_FORWARD_LABEL(RML__int_5flt);
-extern RML_FORWARD_LABEL(RML__int_5fmax);
-extern RML_FORWARD_LABEL(RML__int_5fmin);
-extern RML_FORWARD_LABEL(RML__int_5fmod);
-extern RML_FORWARD_LABEL(RML__int_5fmul);
-extern RML_FORWARD_LABEL(RML__int_5fne);
-extern RML_FORWARD_LABEL(RML__int_5fneg);
-extern RML_FORWARD_LABEL(RML__int_5freal);
-extern RML_FORWARD_LABEL(RML__int_5fstring);
-extern RML_FORWARD_LABEL(RML__int_5fsub);
-/* bit operations */
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
-/* java named */
-#define RML__intAbs       RML__int_5fabs
-#define RML__intAdd       RML__int_5fadd
-#define RML__intDiv       RML__int_5fdiv
-#define RML__intEq        RML__int_5feq
-#define RML__intGe        RML__int_5fge
-#define RML__intGt        RML__int_5fgt
-#define RML__intLe        RML__int_5fle
-#define RML__intLt        RML__int_5flt
-#define RML__intMax       RML__int_5fmax
-#define RML__intMin       RML__int_5fmin
-#define RML__intMod       RML__int_5fmod
-#define RML__intMul       RML__int_5fmul
-#define RML__intNe        RML__int_5fne
-#define RML__intNeg       RML__int_5fneg
-#define RML__intReal      RML__int_5freal
-#define RML__intString    RML__int_5fstring
-#define RML__intSub       RML__int_5fsub
-/* bit operations */
-#define RML__intBitNot    RML__int_5fbit_5fnot
-#define RML__intBitAnd    RML__int_5fbit_5fand
-#define RML__intBitOr     RML__int_5fbit_5for
-#define RML__intBitXor    RML__int_5fbit_5fxor
-#define RML__intBitLShift RML__int_5fbit_5flshift
-#define RML__intBitRShift RML__int_5fbit_5frshift
-
-
-/* lists */
-extern RML_FORWARD_LABEL(RML__list_5fappend);
-extern RML_FORWARD_LABEL(RML__list_5fdelete);
-extern RML_FORWARD_LABEL(RML__list_5flength);
-extern RML_FORWARD_LABEL(RML__list_5fmember);
-extern RML_FORWARD_LABEL(RML__list_5fnth);
-extern RML_FORWARD_LABEL(RML__list_5fget);
-extern RML_FORWARD_LABEL(RML__list_5freverse);
-extern RML_FORWARD_LABEL(RML__list_5fvector);
-extern RML_FORWARD_LABEL(RML__list_5farray);
-extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
-/* java named */
-#define RML__listAppend       RML__list_5fappend
-#define RML__listDelete       RML__list_5fdelete
-#define RML__listLength       RML__list_5flength
-#define RML__listMember       RML__list_5fmember
-#define RML__listNth          RML__list_5fnth
-#define RML__listGet          RML__list_5fget
-#define RML__listReverse      RML__list_5freverse
-#define RML__listVector       RML__list_5fvector
-#define RML__listArray        RML__list_5farray
-#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
-
-/* logical variables */
-extern RML_FORWARD_LABEL(RML__lvar_5fget);
-extern RML_FORWARD_LABEL(RML__lvar_5fnew);
-extern RML_FORWARD_LABEL(RML__lvar_5fset);
-/* java named */
-#define RML__lvarGet RML__lvar_5fget
-#define RML__lvarNew RML__lvar_5fnew
-#define RML__lvarSet RML__lvar_5fset
-
-/* reals */
-extern RML_FORWARD_LABEL(RML__real_5fabs);
-extern RML_FORWARD_LABEL(RML__real_5fadd);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fcos);
-extern RML_FORWARD_LABEL(RML__real_5fdiv);
-extern RML_FORWARD_LABEL(RML__real_5feq);
-extern RML_FORWARD_LABEL(RML__real_5fexp);
-extern RML_FORWARD_LABEL(RML__real_5ffloor);
-extern RML_FORWARD_LABEL(RML__real_5fceil);
-extern RML_FORWARD_LABEL(RML__real_5fge);
-extern RML_FORWARD_LABEL(RML__real_5fgt);
-extern RML_FORWARD_LABEL(RML__real_5fint);
-extern RML_FORWARD_LABEL(RML__real_5fle);
-extern RML_FORWARD_LABEL(RML__real_5fln);
-extern RML_FORWARD_LABEL(RML__real_5flt);
-extern RML_FORWARD_LABEL(RML__real_5fmax);
-extern RML_FORWARD_LABEL(RML__real_5fmin);
-extern RML_FORWARD_LABEL(RML__real_5fmod);
-extern RML_FORWARD_LABEL(RML__real_5fmul);
-extern RML_FORWARD_LABEL(RML__real_5fne);
-extern RML_FORWARD_LABEL(RML__real_5fneg);
-extern RML_FORWARD_LABEL(RML__real_5fpow);
-extern RML_FORWARD_LABEL(RML__real_5fsin);
-extern RML_FORWARD_LABEL(RML__real_5fsqrt);
-extern RML_FORWARD_LABEL(RML__real_5fstring);
-extern RML_FORWARD_LABEL(RML__real_5fsub);
-extern RML_FORWARD_LABEL(RML__real_5fasin);
-extern RML_FORWARD_LABEL(RML__real_5facos);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fatan2);
-extern RML_FORWARD_LABEL(RML__real_5fcosh);
-extern RML_FORWARD_LABEL(RML__real_5flog);
-extern RML_FORWARD_LABEL(RML__real_5flog10);
-extern RML_FORWARD_LABEL(RML__real_5fsinh);
-extern RML_FORWARD_LABEL(RML__real_5ftanh);
-/* java named */
-#define RML__realAbs    RML__real_5fabs
-#define RML__realAdd    RML__real_5fadd
-#define RML__realAtan   RML__real_5fatan
-#define RML__realCos    RML__real_5fcos
-#define RML__realDiv    RML__real_5fdiv
-#define RML__realEq     RML__real_5feq
-#define RML__realExp    RML__real_5fexp
-#define RML__realFloor  RML__real_5ffloor
-#define RML__realCeil   RML__real_5fceil
-#define RML__realGe     RML__real_5fge
-#define RML__realGt     RML__real_5fgt
-#define RML__realInt    RML__real_5fint
-#define RML__realLe     RML__real_5fle
-#define RML__realLn     RML__real_5fln
-#define RML__realLt     RML__real_5flt
-#define RML__realMax    RML__real_5fmax
-#define RML__realMin    RML__real_5fmin
-#define RML__realMod    RML__real_5fmod
-#define RML__realMul    RML__real_5fmul
-#define RML__realNe     RML__real_5fne
-#define RML__realNeg    RML__real_5fneg
-#define RML__realPow    RML__real_5fpow
-#define RML__realSin    RML__real_5fsin
-#define RML__realSqrt   RML__real_5fsqrt
-#define RML__realString RML__real_5fstring
-#define RML__realSub    RML__real_5fsub
-#define RML__realAsin   RML__real_5fasin
-#define RML__realAcos   RML__real_5facos
-#define RML__realAtan2  RML__real_5fatan2
-#define RML__realCosh   RML__real_5fcosh
-#define RML__realLog    RML__real_5flog
-#define RML__realLog10  RML__real_5flog10
-#define RML__realSinh   RML__real_5fsinh
-#define RML__realTanh   RML__real_5ftanh
-
-/* strings */
-extern RML_FORWARD_LABEL(RML__string_5fappend);
-extern RML_FORWARD_LABEL(RML__string_5fint);
-extern RML_FORWARD_LABEL(RML__string_5flength);
-extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
-/* java named */
-#define RML__stringAppend RML__string_5fappend
-#define RML__stringInt    RML__string_5fint
-#define RML__stringLength RML__string_5flength
-#define RML__stringAppendList RML__string_5fappend_5flist
-#define RML__stringDelimitList RML__string_5fdelimit_5flist
-
-/* declarative vectors */
-extern RML_FORWARD_LABEL(RML__vector_5flength);
-extern RML_FORWARD_LABEL(RML__vector_5flist);
-extern RML_FORWARD_LABEL(RML__vector_5fnth);
-extern RML_FORWARD_LABEL(RML__vector_5fget);
-extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
-extern RML_FORWARD_LABEL(RML__vector_5fupdate);
-extern RML_FORWARD_LABEL(RML__vector_5fcreate);
-extern RML_FORWARD_LABEL(RML__vector_5fadd);
-extern RML_FORWARD_LABEL(RML__vector_5farray);
-extern RML_FORWARD_LABEL(RML__vector_5fcopy);
-/* java named */
-#define RML__vectorLength RML__vector_5flength
-#define RML__vectorList   RML__vector_5flist
-#define RML__vectorNth    RML__vector_5fnth
-#define RML__vectorGet    RML__vector_5fget
-#define RML__vectorSetNth RML__vector_5fsetnth
-#define RML__vectorUpdate RML__vector_5fupdate
-#define RML__vectorCreate RML__vector_5fcreate
-#define RML__vectorAdd    RML__vector_5fadd
-#define RML__vectorArray  RML__vector_5farray
-#define RML__vectorCopy   RML__vector_5fcopy
-
-/* mutable arrays */
-extern RML_FORWARD_LABEL(RML__array_5flength);
-extern RML_FORWARD_LABEL(RML__array_5flist);
-extern RML_FORWARD_LABEL(RML__array_5fnth);
-extern RML_FORWARD_LABEL(RML__array_5fget);
-extern RML_FORWARD_LABEL(RML__array_5fsetnth);
-extern RML_FORWARD_LABEL(RML__array_5fupdate);
-extern RML_FORWARD_LABEL(RML__array_5fcreate);
-extern RML_FORWARD_LABEL(RML__array_5fadd);
-extern RML_FORWARD_LABEL(RML__array_5fvector);
-extern RML_FORWARD_LABEL(RML__array_5fcopy);
-/* java named */
-#define RML__arrayLength RML__array_5flength
-#define RML__arrayList   RML__array_5flist
-#define RML__arrayNth    RML__array_5fnth
-#define RML__arrayGet    RML__array_5fget
-#define RML__arraySetNth RML__array_5fsetnth
-#define RML__arrayUpdate RML__array_5fupdate
-#define RML__arrayCreate RML__array_5fcreate
-#define RML__arrayAdd    RML__array_5fadd
-#define RML__arrayVector RML__array_5fvector
-#define RML__arrayCopy   RML__array_5fcopy
-
-/* if expressions */
-extern RML_FORWARD_LABEL(RML__if_5fexp);
-#define RML__ifExp   RML__if_5fexp
-
-/* misc */
-extern RML_FORWARD_LABEL(RML__clock);
-extern RML_FORWARD_LABEL(RML__print);
-extern RML_FORWARD_LABEL(RML__tick);
-extern RML_FORWARD_LABEL(RML__unique);
-extern RML_FORWARD_LABEL(RML__enable_5ftrace);
-extern RML_FORWARD_LABEL(RML__disable_5ftrace);
-extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
-/* java names */
-#define RML__enableTrace  RML__enable_5ftrace
-#define RML__disableTrace RML__disable_5ftrace
-
-
-/* debugging */
-/* let these relation be available in all rml libraries */
-/* however their code depends on _RMLDB_DEFINED_ */
-extern RML_FORWARD_LABEL(RML__debug_5fprint);
-extern RML_FORWARD_LABEL(RML__debug);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
-extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
-
-extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
-#ifndef _RMLDB_COMMAND_H_
-#define _RMLDB_COMMAND_H_
-
-/* the commands accepted by the debugger */
-#define RMLDB_CMD_NONE 							0000
-#define RMLDB_CMD_BREAKPOINT 					1000
-#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
-#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
-#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
-#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
-#define RMLDB_CMD_STRING_BREAKPOINT 			1005
-#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
-#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
-#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
-#define RMLDB_CMD_STACK							1009
-#define RMLDB_CMD_VARIABLE_VALUE				1010
-#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
-#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
-#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
-
-#define RMLDB_CMD_RESUME						2000
-#define RMLDB_CMD_STEP							2001
-#define RMLDB_CMD_STEP_OVER						2002
-#define RMLDB_CMD_STEP_RETURN					2003
-#define RMLDB_CMD_RUN							2004
-#define RMLDB_CMD_QUIT							2005
-
-/* the response of the debugger to commands */
-#define RMLDB_REPLY_OK							"$ok"
-#define RMLDB_REPLY_ERROR						"$err"
-
-/* the signals accepted by the debugger  */
-#define RMLDB_SIGNAL_SUSPEND					"$u"
-#define RMLDB_SIGNAL_QUIT						"$q"
-
-
-/* the events send by the debugger to the Eclipse UI */
-#define RMLDB_EVENT_START						"$t"
-#define RMLDB_EVENT_READY						"$rdy"
-#define RMLDB_EVENT_STEP						"$s"
-#define RMLDB_EVENT_STEP_OVER					"$o"
-#define RMLDB_EVENT_STEP_RETURN					"$n"
-#define RMLDB_EVENT_RUN							"$r"
-#define RMLDB_EVENT_QUIT						"$q"
-#define RMLDB_EVENT_SUSPEND						"$u"
-#define RMLDB_EVENT_BREAKPOINT					"$b"
-#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
-#define RMLDB_EVENT_ERROR						"$err"
-
-typedef struct rmldb_command_t
-{
-	int ty;   /* the command type */
-	union 
-	{
-		struct brkFile      	 { char *file; int   line;   		} brkFile;
-		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
-		struct brkString		 { char *filter;             		} brkString;
-        struct brkFailure        { char *filter;                    } brkFailure;        
-		struct varValue			 { char *name;       	    		} varValue;
-		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
-		struct frameVarValue     { int frame; int nr;				} frameVarValue;
-		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
-	} data;
-} rmldb_command_type;
-
-
-extern rmldb_command_type* rmldb_current_command;
-
-extern rmldb_command_type* rmldb_mk_cmd(int ty);
-extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
-extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
-extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
-extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
-extern int rmldb_freeCommand(rmldb_command_type* cmd);
-
-#endif /* _RMLDB_COMMAND_H_*/
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-
-/*
- * [ rml-socket.h ] 
- * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
- * - creation 2007-02-24
- *   + interface for Windows and Linux sockets
- *   + all things in this file start with rmldb_socket_*
- * - last modified 2007-02-24
- *****************************************************************************/
-
-#ifdef RML_DEBUG
-#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-/*********** MINGW32 && MSVC stuff **********/
-#include <winsock2.h>
-
-#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
-#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
-#define _rmldb_socket_close closesocket
-#define _rmldb_socket_errorno WSAGetLastError()
-
-#else /***************** unix stuff ***************/
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/unistd.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define _rmldb_socket_send(x,y,z) write(x,y,z)
-#define _rmldb_socket_recv(x,y,z) read(x,y,z)
-#define _rmldb_socket_close close
-#define _rmldb_socket_errorno errno
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-
-#endif
-
-/* 
- * set to 1 to have debugging or to 0 to 
- * disable debugging of the socket communication
- */
-extern int   rmldb_socket_debug;
-/* 
- * initialize the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_initialize_library(void);  
-/* 
- * cleanups the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_cleanup_library(void);  
-
-/* 
- * get a socket 
- * returns -1 or the socket
- */
-extern int   rmldb_socket_get(void);
-
-/* 
- * binds the given socket on localhost and given port
- * performs bind and listen
- * returns -1 on error and 0 on success
- */
-extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
-/* 
- * performs accept on the given socket 
- * returns the new socket or -1 on error
- */
-extern int   rmldb_socket_accept(int socket);
-
-/* 
- * close the socket 
- * returns -1 for error or 0 for no error 
- */
-extern int   rmldb_socket_close(int socket); 
-
-/* send to socket with error handling */
-extern int rmldb_socket_outln(int sock, char *msg);
-extern int rmldb_socket_out(int sock, char *msg);
-
-#endif
-/* handler.h */
-#ifndef HANDLER_H_
-#define HANDLER_H_
-
-extern int   aaerror(char*);
-extern int   aaparse(void);
-extern int   aadebug;
-
-#ifdef RML_DEBUG
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-
-#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
-#include <signal.h>
-#endif
-
-#else /***************** unix stuff ***************/
-#include <signal.h>
-#endif /* unix vs windows stuff */
-
-/* adrpo - debugger global variables */
-extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
-extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
-extern int   rmldb_event_port;  /* listen on this port and send event to the client */
-extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
-
-typedef struct rmldb_communication
-{
-	int   cmd_bind_sock;     /* bind and accept on this socket */
-	int   cmd_sock;          /* listen for commands on this socket */
-	int   reply_bind_sock;   /* bind and accept on this socket */
-	int   reply_sock;        /* send reply of commands to this socket */	
-	int   event_bind_sock;   /* bind and accept on this socket */
-	int   event_sock;        /* send output to this port */
-	int   signal_bind_sock;  /* bind and accept on this socket */
-	int   signal_sock;       /* listen to async events from client */
-} rmldb_communication_type;
-
-extern rmldb_communication_type rmldb_communicator;
-
-extern int rmldb_last_command;
-extern int rmldb_startSignalHandler(void* arg);
-extern int rmldb_endSignalHandler(void);
-extern int rmldb_interpretCommand(void);
-extern int rmldb_executeCommand(rmldb_command_type* cmd);
-extern int rmldb_sendEvent(char* event);
-extern int rmldb_sendReply(char* reply);
-
-#endif /* RML_DEBUG */
-
-#endif /*HANDLER_H_*/
+
+/*
+ * rml-predef.h
+ */
+
+extern void rml_prim_motor(rml_labptr_t);
+extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
+extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
+/* let the print relation be available for non-debug-version-rml-library also */
+extern void rmldb_var_print(void *p);
+
+/*
+ * Standard procedures
+ * adrpo added Java named RML buildin relations 2005-11-10
+ */
+
+/* roots */
+extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
+extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
+/* java named */
+#define RML__setGlobalRoot  RML__set_5fglobal_5froot
+#define RML__getGlobalRoot  RML__get_5fglobal_5froot
+
+/* references */
+extern RML_FORWARD_LABEL(RML__reference_5feq);
+extern RML_FORWARD_LABEL(RML__reference_5finteger);
+extern RML_FORWARD_LABEL(RML__reference_5fupdate);
+extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
+extern RML_FORWARD_LABEL(RML__reference_5fshare);
+/* java named */
+#define RML__referenceEq       RML__reference_5feq
+#define RML__referenceInteger  RML__reference_5finteger
+#define RML__referenceUpdate   RML__reference_5fupdate
+#define RML__referenceSetNth   RML__reference_5fsetnth
+#define RML__referenceShare    RML__reference_5fshare
+
+/* values */
+extern RML_FORWARD_LABEL(RML__value_5fconstructor);
+extern RML_FORWARD_LABEL(RML__value_5fslots);
+extern RML_FORWARD_LABEL(RML__value_5feq);
+extern RML_FORWARD_LABEL(RML__value_5fmatch);
+extern RML_FORWARD_LABEL(RML__value_5fhash);
+extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
+/* java named */
+#define RML__valueConstructor RML__value_5fconstructor
+#define RML__valueSlots       RML__value_5fslots
+#define RML__valueEq          RML__value_5feq
+#define RML__valueMatch       RML__value_5fmatch
+#define RML__valueHash        RML__value_5fhash
+#define RML__valueHashMod     RML__value_5fhash_5fmod
+
+/* booleans */
+extern RML_FORWARD_LABEL(RML__bool_5fand);
+extern RML_FORWARD_LABEL(RML__bool_5fnot);
+extern RML_FORWARD_LABEL(RML__bool_5for);
+extern RML_FORWARD_LABEL(RML__bool_5feq);
+extern RML_FORWARD_LABEL(RML__bool_5fstring);
+/* java named */
+#define RML__boolAnd    RML__bool_5fand
+#define RML__boolNot    RML__bool_5fnot
+#define RML__boolOr     RML__bool_5for
+#define RML__boolEq     RML__bool_5feq
+#define RML__boolString RML__bool_5fstring
+
+/* chars */
+extern RML_FORWARD_LABEL(RML__int_5fint);
+extern RML_FORWARD_LABEL(RML__list_5fstring);
+extern RML_FORWARD_LABEL(RML__string_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fnth);
+extern RML_FORWARD_LABEL(RML__string_5fget);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth);
+extern RML_FORWARD_LABEL(RML__string_5fupdate);
+extern RML_FORWARD_LABEL(RML__string_5fequal);
+extern RML_FORWARD_LABEL(RML__string_5fcompare);
+/* hash functions */
+extern RML_FORWARD_LABEL(RML__string_5fhash);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
+#define RML__char_5fint	RML__int_5fint
+#define RML__int_5fchar	RML__int_5fint
+/* java named */
+#define RML__intChar        RML__int_5fint
+#define RML__charInt        RML__int_5fint
+#define RML__listString     RML__list_5fstring
+#define RML__stringList     RML__string_5flist
+#define RML__stringNth      RML__string_5fnth
+#define RML__stringGet      RML__string_5fget
+#define RML__stringSetNth   RML__string_5fset_5fnth
+#define RML__stringUpdate   RML__string_5fupdate
+#define RML__stringEqual    RML__string_5fequal
+#define RML__stringCompare  RML__string_5fcompare
+#define RML__stringEq       RML__string_5fequal
+#define RML__string_5feq    RML__string_5fequal
+/* hash functions */
+#define RML__stringHash     RML__string_5fhash
+#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
+#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
+
+/* string chars */
+extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
+extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
+/* java named */
+#define RML__stringCharInt           RML__string_5fchar_5fint
+#define RML__intStringChar           RML__int_5fstring_5fchar
+#define RML__listStringChar          RML__list_5fstring_5fchar
+#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
+#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
+#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
+#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
+#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
+#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
+
+extern RML_FORWARD_LABEL(RML__int_5fabs);
+extern RML_FORWARD_LABEL(RML__int_5fadd);
+extern RML_FORWARD_LABEL(RML__int_5fdiv);
+extern RML_FORWARD_LABEL(RML__int_5feq);
+extern RML_FORWARD_LABEL(RML__int_5fge);
+extern RML_FORWARD_LABEL(RML__int_5fgt);
+extern RML_FORWARD_LABEL(RML__int_5fle);
+extern RML_FORWARD_LABEL(RML__int_5flt);
+extern RML_FORWARD_LABEL(RML__int_5fmax);
+extern RML_FORWARD_LABEL(RML__int_5fmin);
+extern RML_FORWARD_LABEL(RML__int_5fmod);
+extern RML_FORWARD_LABEL(RML__int_5fmul);
+extern RML_FORWARD_LABEL(RML__int_5fne);
+extern RML_FORWARD_LABEL(RML__int_5fneg);
+extern RML_FORWARD_LABEL(RML__int_5freal);
+extern RML_FORWARD_LABEL(RML__int_5fstring);
+extern RML_FORWARD_LABEL(RML__int_5fsub);
+/* bit operations */
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
+/* java named */
+#define RML__intAbs       RML__int_5fabs
+#define RML__intAdd       RML__int_5fadd
+#define RML__intDiv       RML__int_5fdiv
+#define RML__intEq        RML__int_5feq
+#define RML__intGe        RML__int_5fge
+#define RML__intGt        RML__int_5fgt
+#define RML__intLe        RML__int_5fle
+#define RML__intLt        RML__int_5flt
+#define RML__intMax       RML__int_5fmax
+#define RML__intMin       RML__int_5fmin
+#define RML__intMod       RML__int_5fmod
+#define RML__intMul       RML__int_5fmul
+#define RML__intNe        RML__int_5fne
+#define RML__intNeg       RML__int_5fneg
+#define RML__intReal      RML__int_5freal
+#define RML__intString    RML__int_5fstring
+#define RML__intSub       RML__int_5fsub
+/* bit operations */
+#define RML__intBitNot    RML__int_5fbit_5fnot
+#define RML__intBitAnd    RML__int_5fbit_5fand
+#define RML__intBitOr     RML__int_5fbit_5for
+#define RML__intBitXor    RML__int_5fbit_5fxor
+#define RML__intBitLShift RML__int_5fbit_5flshift
+#define RML__intBitRShift RML__int_5fbit_5frshift
+
+
+/* lists */
+extern RML_FORWARD_LABEL(RML__list_5fappend);
+extern RML_FORWARD_LABEL(RML__list_5fdelete);
+extern RML_FORWARD_LABEL(RML__list_5flength);
+extern RML_FORWARD_LABEL(RML__list_5fmember);
+extern RML_FORWARD_LABEL(RML__list_5fnth);
+extern RML_FORWARD_LABEL(RML__list_5fget);
+extern RML_FORWARD_LABEL(RML__list_5freverse);
+extern RML_FORWARD_LABEL(RML__list_5fvector);
+extern RML_FORWARD_LABEL(RML__list_5farray);
+extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
+/* java named */
+#define RML__listAppend       RML__list_5fappend
+#define RML__listDelete       RML__list_5fdelete
+#define RML__listLength       RML__list_5flength
+#define RML__listMember       RML__list_5fmember
+#define RML__listNth          RML__list_5fnth
+#define RML__listGet          RML__list_5fget
+#define RML__listReverse      RML__list_5freverse
+#define RML__listVector       RML__list_5fvector
+#define RML__listArray        RML__list_5farray
+#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
+
+/* logical variables */
+extern RML_FORWARD_LABEL(RML__lvar_5fget);
+extern RML_FORWARD_LABEL(RML__lvar_5fnew);
+extern RML_FORWARD_LABEL(RML__lvar_5fset);
+/* java named */
+#define RML__lvarGet RML__lvar_5fget
+#define RML__lvarNew RML__lvar_5fnew
+#define RML__lvarSet RML__lvar_5fset
+
+/* reals */
+extern RML_FORWARD_LABEL(RML__real_5fabs);
+extern RML_FORWARD_LABEL(RML__real_5fadd);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fcos);
+extern RML_FORWARD_LABEL(RML__real_5fdiv);
+extern RML_FORWARD_LABEL(RML__real_5feq);
+extern RML_FORWARD_LABEL(RML__real_5fexp);
+extern RML_FORWARD_LABEL(RML__real_5ffloor);
+extern RML_FORWARD_LABEL(RML__real_5fceil);
+extern RML_FORWARD_LABEL(RML__real_5fge);
+extern RML_FORWARD_LABEL(RML__real_5fgt);
+extern RML_FORWARD_LABEL(RML__real_5fint);
+extern RML_FORWARD_LABEL(RML__real_5fle);
+extern RML_FORWARD_LABEL(RML__real_5fln);
+extern RML_FORWARD_LABEL(RML__real_5flt);
+extern RML_FORWARD_LABEL(RML__real_5fmax);
+extern RML_FORWARD_LABEL(RML__real_5fmin);
+extern RML_FORWARD_LABEL(RML__real_5fmod);
+extern RML_FORWARD_LABEL(RML__real_5fmul);
+extern RML_FORWARD_LABEL(RML__real_5fne);
+extern RML_FORWARD_LABEL(RML__real_5fneg);
+extern RML_FORWARD_LABEL(RML__real_5fpow);
+extern RML_FORWARD_LABEL(RML__real_5fsin);
+extern RML_FORWARD_LABEL(RML__real_5fsqrt);
+extern RML_FORWARD_LABEL(RML__real_5fstring);
+extern RML_FORWARD_LABEL(RML__real_5fsub);
+extern RML_FORWARD_LABEL(RML__real_5fasin);
+extern RML_FORWARD_LABEL(RML__real_5facos);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fatan2);
+extern RML_FORWARD_LABEL(RML__real_5fcosh);
+extern RML_FORWARD_LABEL(RML__real_5flog);
+extern RML_FORWARD_LABEL(RML__real_5flog10);
+extern RML_FORWARD_LABEL(RML__real_5fsinh);
+extern RML_FORWARD_LABEL(RML__real_5ftanh);
+/* java named */
+#define RML__realAbs    RML__real_5fabs
+#define RML__realAdd    RML__real_5fadd
+#define RML__realAtan   RML__real_5fatan
+#define RML__realCos    RML__real_5fcos
+#define RML__realDiv    RML__real_5fdiv
+#define RML__realEq     RML__real_5feq
+#define RML__realExp    RML__real_5fexp
+#define RML__realFloor  RML__real_5ffloor
+#define RML__realCeil   RML__real_5fceil
+#define RML__realGe     RML__real_5fge
+#define RML__realGt     RML__real_5fgt
+#define RML__realInt    RML__real_5fint
+#define RML__realLe     RML__real_5fle
+#define RML__realLn     RML__real_5fln
+#define RML__realLt     RML__real_5flt
+#define RML__realMax    RML__real_5fmax
+#define RML__realMin    RML__real_5fmin
+#define RML__realMod    RML__real_5fmod
+#define RML__realMul    RML__real_5fmul
+#define RML__realNe     RML__real_5fne
+#define RML__realNeg    RML__real_5fneg
+#define RML__realPow    RML__real_5fpow
+#define RML__realSin    RML__real_5fsin
+#define RML__realSqrt   RML__real_5fsqrt
+#define RML__realString RML__real_5fstring
+#define RML__realSub    RML__real_5fsub
+#define RML__realAsin   RML__real_5fasin
+#define RML__realAcos   RML__real_5facos
+#define RML__realAtan2  RML__real_5fatan2
+#define RML__realCosh   RML__real_5fcosh
+#define RML__realLog    RML__real_5flog
+#define RML__realLog10  RML__real_5flog10
+#define RML__realSinh   RML__real_5fsinh
+#define RML__realTanh   RML__real_5ftanh
+
+/* strings */
+extern RML_FORWARD_LABEL(RML__string_5fappend);
+extern RML_FORWARD_LABEL(RML__string_5fint);
+extern RML_FORWARD_LABEL(RML__string_5flength);
+extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
+/* java named */
+#define RML__stringAppend RML__string_5fappend
+#define RML__stringInt    RML__string_5fint
+#define RML__stringLength RML__string_5flength
+#define RML__stringAppendList RML__string_5fappend_5flist
+#define RML__stringDelimitList RML__string_5fdelimit_5flist
+
+/* declarative vectors */
+extern RML_FORWARD_LABEL(RML__vector_5flength);
+extern RML_FORWARD_LABEL(RML__vector_5flist);
+extern RML_FORWARD_LABEL(RML__vector_5fnth);
+extern RML_FORWARD_LABEL(RML__vector_5fget);
+extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
+extern RML_FORWARD_LABEL(RML__vector_5fupdate);
+extern RML_FORWARD_LABEL(RML__vector_5fcreate);
+extern RML_FORWARD_LABEL(RML__vector_5fadd);
+extern RML_FORWARD_LABEL(RML__vector_5farray);
+extern RML_FORWARD_LABEL(RML__vector_5fcopy);
+/* java named */
+#define RML__vectorLength RML__vector_5flength
+#define RML__vectorList   RML__vector_5flist
+#define RML__vectorNth    RML__vector_5fnth
+#define RML__vectorGet    RML__vector_5fget
+#define RML__vectorSetNth RML__vector_5fsetnth
+#define RML__vectorUpdate RML__vector_5fupdate
+#define RML__vectorCreate RML__vector_5fcreate
+#define RML__vectorAdd    RML__vector_5fadd
+#define RML__vectorArray  RML__vector_5farray
+#define RML__vectorCopy   RML__vector_5fcopy
+
+/* mutable arrays */
+extern RML_FORWARD_LABEL(RML__array_5flength);
+extern RML_FORWARD_LABEL(RML__array_5flist);
+extern RML_FORWARD_LABEL(RML__array_5fnth);
+extern RML_FORWARD_LABEL(RML__array_5fget);
+extern RML_FORWARD_LABEL(RML__array_5fsetnth);
+extern RML_FORWARD_LABEL(RML__array_5fupdate);
+extern RML_FORWARD_LABEL(RML__array_5fcreate);
+extern RML_FORWARD_LABEL(RML__array_5fadd);
+extern RML_FORWARD_LABEL(RML__array_5fvector);
+extern RML_FORWARD_LABEL(RML__array_5fcopy);
+/* java named */
+#define RML__arrayLength RML__array_5flength
+#define RML__arrayList   RML__array_5flist
+#define RML__arrayNth    RML__array_5fnth
+#define RML__arrayGet    RML__array_5fget
+#define RML__arraySetNth RML__array_5fsetnth
+#define RML__arrayUpdate RML__array_5fupdate
+#define RML__arrayCreate RML__array_5fcreate
+#define RML__arrayAdd    RML__array_5fadd
+#define RML__arrayVector RML__array_5fvector
+#define RML__arrayCopy   RML__array_5fcopy
+
+/* if expressions */
+extern RML_FORWARD_LABEL(RML__if_5fexp);
+#define RML__ifExp   RML__if_5fexp
+
+/* misc */
+extern RML_FORWARD_LABEL(RML__clock);
+extern RML_FORWARD_LABEL(RML__print);
+extern RML_FORWARD_LABEL(RML__tick);
+extern RML_FORWARD_LABEL(RML__unique);
+extern RML_FORWARD_LABEL(RML__enable_5ftrace);
+extern RML_FORWARD_LABEL(RML__disable_5ftrace);
+extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
+/* java names */
+#define RML__enableTrace  RML__enable_5ftrace
+#define RML__disableTrace RML__disable_5ftrace
+
+
+/* debugging */
+/* let these relation be available in all rml libraries */
+/* however their code depends on _RMLDB_DEFINED_ */
+extern RML_FORWARD_LABEL(RML__debug_5fprint);
+extern RML_FORWARD_LABEL(RML__debug);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
+extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
+
+extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
+#ifndef _RMLDB_COMMAND_H_
+#define _RMLDB_COMMAND_H_
+
+/* the commands accepted by the debugger */
+#define RMLDB_CMD_NONE 							0000
+#define RMLDB_CMD_BREAKPOINT 					1000
+#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
+#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
+#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
+#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
+#define RMLDB_CMD_STRING_BREAKPOINT 			1005
+#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
+#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
+#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
+#define RMLDB_CMD_STACK							1009
+#define RMLDB_CMD_VARIABLE_VALUE				1010
+#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
+#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
+#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
+
+#define RMLDB_CMD_RESUME						2000
+#define RMLDB_CMD_STEP							2001
+#define RMLDB_CMD_STEP_OVER						2002
+#define RMLDB_CMD_STEP_RETURN					2003
+#define RMLDB_CMD_RUN							2004
+#define RMLDB_CMD_QUIT							2005
+
+/* the response of the debugger to commands */
+#define RMLDB_REPLY_OK							"$ok"
+#define RMLDB_REPLY_ERROR						"$err"
+
+/* the signals accepted by the debugger  */
+#define RMLDB_SIGNAL_SUSPEND					"$u"
+#define RMLDB_SIGNAL_QUIT						"$q"
+
+
+/* the events send by the debugger to the Eclipse UI */
+#define RMLDB_EVENT_START						"$t"
+#define RMLDB_EVENT_READY						"$rdy"
+#define RMLDB_EVENT_STEP						"$s"
+#define RMLDB_EVENT_STEP_OVER					"$o"
+#define RMLDB_EVENT_STEP_RETURN					"$n"
+#define RMLDB_EVENT_RUN							"$r"
+#define RMLDB_EVENT_QUIT						"$q"
+#define RMLDB_EVENT_SUSPEND						"$u"
+#define RMLDB_EVENT_BREAKPOINT					"$b"
+#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
+#define RMLDB_EVENT_ERROR						"$err"
+
+typedef struct rmldb_command_t
+{
+	int ty;   /* the command type */
+	union 
+	{
+		struct brkFile      	 { char *file; int   line;   		} brkFile;
+		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
+		struct brkString		 { char *filter;             		} brkString;
+        struct brkFailure        { char *filter;                    } brkFailure;        
+		struct varValue			 { char *name;       	    		} varValue;
+		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
+		struct frameVarValue     { int frame; int nr;				} frameVarValue;
+		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
+	} data;
+} rmldb_command_type;
+
+
+extern rmldb_command_type* rmldb_current_command;
+
+extern rmldb_command_type* rmldb_mk_cmd(int ty);
+extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
+extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
+extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
+extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
+extern int rmldb_freeCommand(rmldb_command_type* cmd);
+
+#endif /* _RMLDB_COMMAND_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+
+/*
+ * [ rml-socket.h ] 
+ * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+ * - creation 2007-02-24
+ *   + interface for Windows and Linux sockets
+ *   + all things in this file start with rmldb_socket_*
+ * - last modified 2007-02-24
+ *****************************************************************************/
+
+#ifdef RML_DEBUG
+#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+/*********** MINGW32 && MSVC stuff **********/
+#include <winsock2.h>
+
+#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
+#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
+#define _rmldb_socket_close closesocket
+#define _rmldb_socket_errorno WSAGetLastError()
+
+#else /***************** unix stuff ***************/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/unistd.h>
+#include <sys/stat.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define _rmldb_socket_send(x,y,z) write(x,y,z)
+#define _rmldb_socket_recv(x,y,z) read(x,y,z)
+#define _rmldb_socket_close close
+#define _rmldb_socket_errorno errno
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (-1)
+
+#endif
+
+/* 
+ * set to 1 to have debugging or to 0 to 
+ * disable debugging of the socket communication
+ */
+extern int   rmldb_socket_debug;
+/* 
+ * initialize the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_initialize_library(void);  
+/* 
+ * cleanups the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_cleanup_library(void);  
+
+/* 
+ * get a socket 
+ * returns -1 or the socket
+ */
+extern int   rmldb_socket_get(void);
+
+/* 
+ * binds the given socket on localhost and given port
+ * performs bind and listen
+ * returns -1 on error and 0 on success
+ */
+extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
+/* 
+ * performs accept on the given socket 
+ * returns the new socket or -1 on error
+ */
+extern int   rmldb_socket_accept(int socket);
+
+/* 
+ * close the socket 
+ * returns -1 for error or 0 for no error 
+ */
+extern int   rmldb_socket_close(int socket); 
+
+/* send to socket with error handling */
+extern int rmldb_socket_outln(int sock, char *msg);
+extern int rmldb_socket_out(int sock, char *msg);
+
+#endif
+/* handler.h */
+#ifndef HANDLER_H_
+#define HANDLER_H_
+
+extern int   aaerror(char*);
+extern int   aaparse(void);
+extern int   aadebug;
+
+#ifdef RML_DEBUG
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+
+#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
+#include <signal.h>
+#endif
+
+#else /***************** unix stuff ***************/
+#include <signal.h>
+#endif /* unix vs windows stuff */
+
+/* adrpo - debugger global variables */
+extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
+extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
+extern int   rmldb_event_port;  /* listen on this port and send event to the client */
+extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
+
+typedef struct rmldb_communication
+{
+	int   cmd_bind_sock;     /* bind and accept on this socket */
+	int   cmd_sock;          /* listen for commands on this socket */
+	int   reply_bind_sock;   /* bind and accept on this socket */
+	int   reply_sock;        /* send reply of commands to this socket */	
+	int   event_bind_sock;   /* bind and accept on this socket */
+	int   event_sock;        /* send output to this port */
+	int   signal_bind_sock;  /* bind and accept on this socket */
+	int   signal_sock;       /* listen to async events from client */
+} rmldb_communication_type;
+
+extern rmldb_communication_type rmldb_communicator;
+
+extern int rmldb_last_command;
+extern int rmldb_startSignalHandler(void* arg);
+extern int rmldb_endSignalHandler(void);
+extern int rmldb_interpretCommand(void);
+extern int rmldb_executeCommand(rmldb_command_type* cmd);
+extern int rmldb_sendEvent(char* event);
+extern int rmldb_sendReply(char* reply);
+
+#endif /* RML_DEBUG */
+
+#endif /*HANDLER_H_*/
 /***********************************************************
  [ load.h ] 
   - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
@@ -1760,110 +1760,110 @@ extern int   aarmldbdebug;
 extern int   aarmldb_lineno;
 
 #endif /* _RMLDB_LOAD_H_  */
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-/***********************************************************
- [ debug.h ] 
-  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
-  - creation 2002-10
-    + interface for rml debugging 
-    + this file contains all the functions for debugging 
-	+ all things in this file start with rmldb_
-  - last modified 2005-12-27
-************************************************************/
-#ifndef _RML_DEBUG_H_
-#define _RML_DEBUG_H_
-/* all these functions depends on RML_DEBUG macro */
-/************************************************************/
-
-#ifdef RML_DEBUG
-
-#include <stdio.h>
-#include <string.h>
-
-/* this file will be included in the generated rml.h */
-/* adrpo some useful defines. */
-#define RMLDB_SUCCESS  1
-#define RMLDB_FAILURE -1
-
-#define RMLDB_PROMPT "rml+mmc db@>"
-#define RMLDB_RUN         0
-#define RMLDB_STEP        1
-#define RMLDB_STEP_OVER   2
-#define RMLDB_STEP_RETURN	3
-#define RMLDB_BREAKPOINT  4
-#define RMLDB_TRACE_CALLS	5
-#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
-
-#define RMLDB_VAR_IN 0
-#define RMLDB_VAR_OUT 1
-
-extern int   rmldb_execution_type;
-extern int   rmldb_execution_startup_type;
-extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
-extern int   rmldb_depth_of_variable_print;
-extern int   rmldb_max_string_variable_print;
-/* location of current execution point */
-extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
-
-/* init/help/exit */
-extern int  rmldb_init(void);
-extern int  rmldb_end(void);
-extern void rmldb_exit(int status);
-extern int  rmldb_quit(char *line);
-
-/* breakpoints */
-extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
-
-/* variables */
-extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
-
-/* stack */
-extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
-extern int rmldb_push_stack_frame(
-			char* file, 
-			int charStart, int charEnd, 
-			int startLine, int startColumn, int endLine, int endColumn,					  
-			char* function,
-			char* call);
-extern int rmldb_pop_stack_frame(char gototype);
-
-#endif /* RML_DEBUG */
-
-#endif /* _RML_DEBUG_H_  */
-
-
-/* ending rml.h */
-#endif /*_RML_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+/***********************************************************
+ [ debug.h ] 
+  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+  - creation 2002-10
+    + interface for rml debugging 
+    + this file contains all the functions for debugging 
+	+ all things in this file start with rmldb_
+  - last modified 2005-12-27
+************************************************************/
+#ifndef _RML_DEBUG_H_
+#define _RML_DEBUG_H_
+/* all these functions depends on RML_DEBUG macro */
+/************************************************************/
+
+#ifdef RML_DEBUG
+
+#include <stdio.h>
+#include <string.h>
+
+/* this file will be included in the generated rml.h */
+/* adrpo some useful defines. */
+#define RMLDB_SUCCESS  1
+#define RMLDB_FAILURE -1
+
+#define RMLDB_PROMPT "rml+mmc db@>"
+#define RMLDB_RUN         0
+#define RMLDB_STEP        1
+#define RMLDB_STEP_OVER   2
+#define RMLDB_STEP_RETURN	3
+#define RMLDB_BREAKPOINT  4
+#define RMLDB_TRACE_CALLS	5
+#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
+
+#define RMLDB_VAR_IN 0
+#define RMLDB_VAR_OUT 1
+
+extern int   rmldb_execution_type;
+extern int   rmldb_execution_startup_type;
+extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
+extern int   rmldb_depth_of_variable_print;
+extern int   rmldb_max_string_variable_print;
+/* location of current execution point */
+extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
+
+/* init/help/exit */
+extern int  rmldb_init(void);
+extern int  rmldb_end(void);
+extern void rmldb_exit(int status);
+extern int  rmldb_quit(char *line);
+
+/* breakpoints */
+extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
+
+/* variables */
+extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
+
+/* stack */
+extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
+extern int rmldb_push_stack_frame(
+			char* file, 
+			int charStart, int charEnd, 
+			int startLine, int startColumn, int endLine, int endColumn,					  
+			char* function,
+			char* call);
+extern int rmldb_pop_stack_frame(char gototype);
+
+#endif /* RML_DEBUG */
+
+#endif /* _RML_DEBUG_H_  */
+
+
+/* ending rml.h */
+#endif /*_RML_H_*/
diff --git a/tools/rml64/include/diff/rml.h b/tools/rml64/include/diff/rml.h
index 66703d640ab3d67f3679dbe390f2bc5ed51f7091..f00c11504b0ea18d1ddd7a14d48da8f0460aed6f 100644
--- a/tools/rml64/include/diff/rml.h
+++ b/tools/rml64/include/diff/rml.h
@@ -6,11 +6,11 @@
 /* config.h for Intel x86_64 / Mingw64/32 / gcc */
 
 /* the following section was generated by repchk */
-typedef long long rml_sint_t;
-typedef unsigned long long rml_uint_t;
-#define RML_LOG2_SIZE_INT 3
-#define RML_SIZE_INT 8
-#define RML_SIZE_DBL 8
+typedef long long rml_sint_t;
+typedef unsigned long long rml_uint_t;
+#define RML_LOG2_SIZE_INT 3
+#define RML_SIZE_INT 8
+#define RML_SIZE_DBL 8
 /* #define RML_DBL_PAD */
 #define RML_DBL_STRICT /* conservative assumption */
 /* end of repchk-generated section */
@@ -40,9 +40,9 @@ typedef unsigned long long rml_uint_t;
 
 #define RML_GCCGOTO
 #define RML_GCCGOTO_NOSHIFT
-/* starting rml.h */
-#ifndef _RML_H_
-#define _RML_H_
+/* starting rml.h */
+#ifndef _RML_H_
+#define _RML_H_
 /* 
  * This file is part of OpenModelica.
  * 
@@ -800,645 +800,645 @@ extern void rml_prim_gc(rml_uint_t, rml_uint_t);
 
 
 
-
-/*
- * rml-predef.h
- */
-
-extern void rml_prim_motor(rml_labptr_t);
-extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
-extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
-/* let the print relation be available for non-debug-version-rml-library also */
-extern void rmldb_var_print(void *p);
-
-/*
- * Standard procedures
- * adrpo added Java named RML buildin relations 2005-11-10
- */
-
-/* roots */
-extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
-extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
-/* java named */
-#define RML__setGlobalRoot  RML__set_5fglobal_5froot
-#define RML__getGlobalRoot  RML__get_5fglobal_5froot
-
-/* references */
-extern RML_FORWARD_LABEL(RML__reference_5feq);
-extern RML_FORWARD_LABEL(RML__reference_5finteger);
-extern RML_FORWARD_LABEL(RML__reference_5fupdate);
-extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
-extern RML_FORWARD_LABEL(RML__reference_5fshare);
-/* java named */
-#define RML__referenceEq       RML__reference_5feq
-#define RML__referenceInteger  RML__reference_5finteger
-#define RML__referenceUpdate   RML__reference_5fupdate
-#define RML__referenceSetNth   RML__reference_5fsetnth
-#define RML__referenceShare    RML__reference_5fshare
-
-/* values */
-extern RML_FORWARD_LABEL(RML__value_5fconstructor);
-extern RML_FORWARD_LABEL(RML__value_5fslots);
-extern RML_FORWARD_LABEL(RML__value_5feq);
-extern RML_FORWARD_LABEL(RML__value_5fmatch);
-extern RML_FORWARD_LABEL(RML__value_5fhash);
-extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
-/* java named */
-#define RML__valueConstructor RML__value_5fconstructor
-#define RML__valueSlots       RML__value_5fslots
-#define RML__valueEq          RML__value_5feq
-#define RML__valueMatch       RML__value_5fmatch
-#define RML__valueHash        RML__value_5fhash
-#define RML__valueHashMod     RML__value_5fhash_5fmod
-
-/* booleans */
-extern RML_FORWARD_LABEL(RML__bool_5fand);
-extern RML_FORWARD_LABEL(RML__bool_5fnot);
-extern RML_FORWARD_LABEL(RML__bool_5for);
-extern RML_FORWARD_LABEL(RML__bool_5feq);
-extern RML_FORWARD_LABEL(RML__bool_5fstring);
-/* java named */
-#define RML__boolAnd    RML__bool_5fand
-#define RML__boolNot    RML__bool_5fnot
-#define RML__boolOr     RML__bool_5for
-#define RML__boolEq     RML__bool_5feq
-#define RML__boolString RML__bool_5fstring
-
-/* chars */
-extern RML_FORWARD_LABEL(RML__int_5fint);
-extern RML_FORWARD_LABEL(RML__list_5fstring);
-extern RML_FORWARD_LABEL(RML__string_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fnth);
-extern RML_FORWARD_LABEL(RML__string_5fget);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth);
-extern RML_FORWARD_LABEL(RML__string_5fupdate);
-extern RML_FORWARD_LABEL(RML__string_5fequal);
-extern RML_FORWARD_LABEL(RML__string_5fcompare);
-/* hash functions */
-extern RML_FORWARD_LABEL(RML__string_5fhash);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
-#define RML__char_5fint	RML__int_5fint
-#define RML__int_5fchar	RML__int_5fint
-/* java named */
-#define RML__intChar        RML__int_5fint
-#define RML__charInt        RML__int_5fint
-#define RML__listString     RML__list_5fstring
-#define RML__stringList     RML__string_5flist
-#define RML__stringNth      RML__string_5fnth
-#define RML__stringGet      RML__string_5fget
-#define RML__stringSetNth   RML__string_5fset_5fnth
-#define RML__stringUpdate   RML__string_5fupdate
-#define RML__stringEqual    RML__string_5fequal
-#define RML__stringCompare  RML__string_5fcompare
-#define RML__stringEq       RML__string_5fequal
-#define RML__string_5feq    RML__string_5fequal
-/* hash functions */
-#define RML__stringHash     RML__string_5fhash
-#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
-#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
-
-/* string chars */
-extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
-extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
-/* java named */
-#define RML__stringCharInt           RML__string_5fchar_5fint
-#define RML__intStringChar           RML__int_5fstring_5fchar
-#define RML__listStringChar          RML__list_5fstring_5fchar
-#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
-#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
-#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
-#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
-#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
-#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
-
-extern RML_FORWARD_LABEL(RML__int_5fabs);
-extern RML_FORWARD_LABEL(RML__int_5fadd);
-extern RML_FORWARD_LABEL(RML__int_5fdiv);
-extern RML_FORWARD_LABEL(RML__int_5feq);
-extern RML_FORWARD_LABEL(RML__int_5fge);
-extern RML_FORWARD_LABEL(RML__int_5fgt);
-extern RML_FORWARD_LABEL(RML__int_5fle);
-extern RML_FORWARD_LABEL(RML__int_5flt);
-extern RML_FORWARD_LABEL(RML__int_5fmax);
-extern RML_FORWARD_LABEL(RML__int_5fmin);
-extern RML_FORWARD_LABEL(RML__int_5fmod);
-extern RML_FORWARD_LABEL(RML__int_5fmul);
-extern RML_FORWARD_LABEL(RML__int_5fne);
-extern RML_FORWARD_LABEL(RML__int_5fneg);
-extern RML_FORWARD_LABEL(RML__int_5freal);
-extern RML_FORWARD_LABEL(RML__int_5fstring);
-extern RML_FORWARD_LABEL(RML__int_5fsub);
-/* bit operations */
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
-/* java named */
-#define RML__intAbs       RML__int_5fabs
-#define RML__intAdd       RML__int_5fadd
-#define RML__intDiv       RML__int_5fdiv
-#define RML__intEq        RML__int_5feq
-#define RML__intGe        RML__int_5fge
-#define RML__intGt        RML__int_5fgt
-#define RML__intLe        RML__int_5fle
-#define RML__intLt        RML__int_5flt
-#define RML__intMax       RML__int_5fmax
-#define RML__intMin       RML__int_5fmin
-#define RML__intMod       RML__int_5fmod
-#define RML__intMul       RML__int_5fmul
-#define RML__intNe        RML__int_5fne
-#define RML__intNeg       RML__int_5fneg
-#define RML__intReal      RML__int_5freal
-#define RML__intString    RML__int_5fstring
-#define RML__intSub       RML__int_5fsub
-/* bit operations */
-#define RML__intBitNot    RML__int_5fbit_5fnot
-#define RML__intBitAnd    RML__int_5fbit_5fand
-#define RML__intBitOr     RML__int_5fbit_5for
-#define RML__intBitXor    RML__int_5fbit_5fxor
-#define RML__intBitLShift RML__int_5fbit_5flshift
-#define RML__intBitRShift RML__int_5fbit_5frshift
-
-
-/* lists */
-extern RML_FORWARD_LABEL(RML__list_5fappend);
-extern RML_FORWARD_LABEL(RML__list_5fdelete);
-extern RML_FORWARD_LABEL(RML__list_5flength);
-extern RML_FORWARD_LABEL(RML__list_5fmember);
-extern RML_FORWARD_LABEL(RML__list_5fnth);
-extern RML_FORWARD_LABEL(RML__list_5fget);
-extern RML_FORWARD_LABEL(RML__list_5freverse);
-extern RML_FORWARD_LABEL(RML__list_5fvector);
-extern RML_FORWARD_LABEL(RML__list_5farray);
-extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
-/* java named */
-#define RML__listAppend       RML__list_5fappend
-#define RML__listDelete       RML__list_5fdelete
-#define RML__listLength       RML__list_5flength
-#define RML__listMember       RML__list_5fmember
-#define RML__listNth          RML__list_5fnth
-#define RML__listGet          RML__list_5fget
-#define RML__listReverse      RML__list_5freverse
-#define RML__listVector       RML__list_5fvector
-#define RML__listArray        RML__list_5farray
-#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
-
-/* logical variables */
-extern RML_FORWARD_LABEL(RML__lvar_5fget);
-extern RML_FORWARD_LABEL(RML__lvar_5fnew);
-extern RML_FORWARD_LABEL(RML__lvar_5fset);
-/* java named */
-#define RML__lvarGet RML__lvar_5fget
-#define RML__lvarNew RML__lvar_5fnew
-#define RML__lvarSet RML__lvar_5fset
-
-/* reals */
-extern RML_FORWARD_LABEL(RML__real_5fabs);
-extern RML_FORWARD_LABEL(RML__real_5fadd);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fcos);
-extern RML_FORWARD_LABEL(RML__real_5fdiv);
-extern RML_FORWARD_LABEL(RML__real_5feq);
-extern RML_FORWARD_LABEL(RML__real_5fexp);
-extern RML_FORWARD_LABEL(RML__real_5ffloor);
-extern RML_FORWARD_LABEL(RML__real_5fceil);
-extern RML_FORWARD_LABEL(RML__real_5fge);
-extern RML_FORWARD_LABEL(RML__real_5fgt);
-extern RML_FORWARD_LABEL(RML__real_5fint);
-extern RML_FORWARD_LABEL(RML__real_5fle);
-extern RML_FORWARD_LABEL(RML__real_5fln);
-extern RML_FORWARD_LABEL(RML__real_5flt);
-extern RML_FORWARD_LABEL(RML__real_5fmax);
-extern RML_FORWARD_LABEL(RML__real_5fmin);
-extern RML_FORWARD_LABEL(RML__real_5fmod);
-extern RML_FORWARD_LABEL(RML__real_5fmul);
-extern RML_FORWARD_LABEL(RML__real_5fne);
-extern RML_FORWARD_LABEL(RML__real_5fneg);
-extern RML_FORWARD_LABEL(RML__real_5fpow);
-extern RML_FORWARD_LABEL(RML__real_5fsin);
-extern RML_FORWARD_LABEL(RML__real_5fsqrt);
-extern RML_FORWARD_LABEL(RML__real_5fstring);
-extern RML_FORWARD_LABEL(RML__real_5fsub);
-extern RML_FORWARD_LABEL(RML__real_5fasin);
-extern RML_FORWARD_LABEL(RML__real_5facos);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fatan2);
-extern RML_FORWARD_LABEL(RML__real_5fcosh);
-extern RML_FORWARD_LABEL(RML__real_5flog);
-extern RML_FORWARD_LABEL(RML__real_5flog10);
-extern RML_FORWARD_LABEL(RML__real_5fsinh);
-extern RML_FORWARD_LABEL(RML__real_5ftanh);
-/* java named */
-#define RML__realAbs    RML__real_5fabs
-#define RML__realAdd    RML__real_5fadd
-#define RML__realAtan   RML__real_5fatan
-#define RML__realCos    RML__real_5fcos
-#define RML__realDiv    RML__real_5fdiv
-#define RML__realEq     RML__real_5feq
-#define RML__realExp    RML__real_5fexp
-#define RML__realFloor  RML__real_5ffloor
-#define RML__realCeil   RML__real_5fceil
-#define RML__realGe     RML__real_5fge
-#define RML__realGt     RML__real_5fgt
-#define RML__realInt    RML__real_5fint
-#define RML__realLe     RML__real_5fle
-#define RML__realLn     RML__real_5fln
-#define RML__realLt     RML__real_5flt
-#define RML__realMax    RML__real_5fmax
-#define RML__realMin    RML__real_5fmin
-#define RML__realMod    RML__real_5fmod
-#define RML__realMul    RML__real_5fmul
-#define RML__realNe     RML__real_5fne
-#define RML__realNeg    RML__real_5fneg
-#define RML__realPow    RML__real_5fpow
-#define RML__realSin    RML__real_5fsin
-#define RML__realSqrt   RML__real_5fsqrt
-#define RML__realString RML__real_5fstring
-#define RML__realSub    RML__real_5fsub
-#define RML__realAsin   RML__real_5fasin
-#define RML__realAcos   RML__real_5facos
-#define RML__realAtan2  RML__real_5fatan2
-#define RML__realCosh   RML__real_5fcosh
-#define RML__realLog    RML__real_5flog
-#define RML__realLog10  RML__real_5flog10
-#define RML__realSinh   RML__real_5fsinh
-#define RML__realTanh   RML__real_5ftanh
-
-/* strings */
-extern RML_FORWARD_LABEL(RML__string_5fappend);
-extern RML_FORWARD_LABEL(RML__string_5fint);
-extern RML_FORWARD_LABEL(RML__string_5flength);
-extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
-/* java named */
-#define RML__stringAppend RML__string_5fappend
-#define RML__stringInt    RML__string_5fint
-#define RML__stringLength RML__string_5flength
-#define RML__stringAppendList RML__string_5fappend_5flist
-#define RML__stringDelimitList RML__string_5fdelimit_5flist
-
-/* declarative vectors */
-extern RML_FORWARD_LABEL(RML__vector_5flength);
-extern RML_FORWARD_LABEL(RML__vector_5flist);
-extern RML_FORWARD_LABEL(RML__vector_5fnth);
-extern RML_FORWARD_LABEL(RML__vector_5fget);
-extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
-extern RML_FORWARD_LABEL(RML__vector_5fupdate);
-extern RML_FORWARD_LABEL(RML__vector_5fcreate);
-extern RML_FORWARD_LABEL(RML__vector_5fadd);
-extern RML_FORWARD_LABEL(RML__vector_5farray);
-extern RML_FORWARD_LABEL(RML__vector_5fcopy);
-/* java named */
-#define RML__vectorLength RML__vector_5flength
-#define RML__vectorList   RML__vector_5flist
-#define RML__vectorNth    RML__vector_5fnth
-#define RML__vectorGet    RML__vector_5fget
-#define RML__vectorSetNth RML__vector_5fsetnth
-#define RML__vectorUpdate RML__vector_5fupdate
-#define RML__vectorCreate RML__vector_5fcreate
-#define RML__vectorAdd    RML__vector_5fadd
-#define RML__vectorArray  RML__vector_5farray
-#define RML__vectorCopy   RML__vector_5fcopy
-
-/* mutable arrays */
-extern RML_FORWARD_LABEL(RML__array_5flength);
-extern RML_FORWARD_LABEL(RML__array_5flist);
-extern RML_FORWARD_LABEL(RML__array_5fnth);
-extern RML_FORWARD_LABEL(RML__array_5fget);
-extern RML_FORWARD_LABEL(RML__array_5fsetnth);
-extern RML_FORWARD_LABEL(RML__array_5fupdate);
-extern RML_FORWARD_LABEL(RML__array_5fcreate);
-extern RML_FORWARD_LABEL(RML__array_5fadd);
-extern RML_FORWARD_LABEL(RML__array_5fvector);
-extern RML_FORWARD_LABEL(RML__array_5fcopy);
-/* java named */
-#define RML__arrayLength RML__array_5flength
-#define RML__arrayList   RML__array_5flist
-#define RML__arrayNth    RML__array_5fnth
-#define RML__arrayGet    RML__array_5fget
-#define RML__arraySetNth RML__array_5fsetnth
-#define RML__arrayUpdate RML__array_5fupdate
-#define RML__arrayCreate RML__array_5fcreate
-#define RML__arrayAdd    RML__array_5fadd
-#define RML__arrayVector RML__array_5fvector
-#define RML__arrayCopy   RML__array_5fcopy
-
-/* if expressions */
-extern RML_FORWARD_LABEL(RML__if_5fexp);
-#define RML__ifExp   RML__if_5fexp
-
-/* misc */
-extern RML_FORWARD_LABEL(RML__clock);
-extern RML_FORWARD_LABEL(RML__print);
-extern RML_FORWARD_LABEL(RML__tick);
-extern RML_FORWARD_LABEL(RML__unique);
-extern RML_FORWARD_LABEL(RML__enable_5ftrace);
-extern RML_FORWARD_LABEL(RML__disable_5ftrace);
-extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
-/* java names */
-#define RML__enableTrace  RML__enable_5ftrace
-#define RML__disableTrace RML__disable_5ftrace
-
-
-/* debugging */
-/* let these relation be available in all rml libraries */
-/* however their code depends on _RMLDB_DEFINED_ */
-extern RML_FORWARD_LABEL(RML__debug_5fprint);
-extern RML_FORWARD_LABEL(RML__debug);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
-extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
-
-extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
-#ifndef _RMLDB_COMMAND_H_
-#define _RMLDB_COMMAND_H_
-
-/* the commands accepted by the debugger */
-#define RMLDB_CMD_NONE 							0000
-#define RMLDB_CMD_BREAKPOINT 					1000
-#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
-#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
-#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
-#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
-#define RMLDB_CMD_STRING_BREAKPOINT 			1005
-#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
-#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
-#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
-#define RMLDB_CMD_STACK							1009
-#define RMLDB_CMD_VARIABLE_VALUE				1010
-#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
-#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
-#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
-
-#define RMLDB_CMD_RESUME						2000
-#define RMLDB_CMD_STEP							2001
-#define RMLDB_CMD_STEP_OVER						2002
-#define RMLDB_CMD_STEP_RETURN					2003
-#define RMLDB_CMD_RUN							2004
-#define RMLDB_CMD_QUIT							2005
-
-/* the response of the debugger to commands */
-#define RMLDB_REPLY_OK							"$ok"
-#define RMLDB_REPLY_ERROR						"$err"
-
-/* the signals accepted by the debugger  */
-#define RMLDB_SIGNAL_SUSPEND					"$u"
-#define RMLDB_SIGNAL_QUIT						"$q"
-
-
-/* the events send by the debugger to the Eclipse UI */
-#define RMLDB_EVENT_START						"$t"
-#define RMLDB_EVENT_READY						"$rdy"
-#define RMLDB_EVENT_STEP						"$s"
-#define RMLDB_EVENT_STEP_OVER					"$o"
-#define RMLDB_EVENT_STEP_RETURN					"$n"
-#define RMLDB_EVENT_RUN							"$r"
-#define RMLDB_EVENT_QUIT						"$q"
-#define RMLDB_EVENT_SUSPEND						"$u"
-#define RMLDB_EVENT_BREAKPOINT					"$b"
-#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
-#define RMLDB_EVENT_ERROR						"$err"
-
-typedef struct rmldb_command_t
-{
-	int ty;   /* the command type */
-	union 
-	{
-		struct brkFile      	 { char *file; int   line;   		} brkFile;
-		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
-		struct brkString		 { char *filter;             		} brkString;
-        struct brkFailure        { char *filter;                    } brkFailure;        
-		struct varValue			 { char *name;       	    		} varValue;
-		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
-		struct frameVarValue     { int frame; int nr;				} frameVarValue;
-		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
-	} data;
-} rmldb_command_type;
-
-
-extern rmldb_command_type* rmldb_current_command;
-
-extern rmldb_command_type* rmldb_mk_cmd(int ty);
-extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
-extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
-extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
-extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
-extern int rmldb_freeCommand(rmldb_command_type* cmd);
-
-#endif /* _RMLDB_COMMAND_H_*/
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-
-/*
- * [ rml-socket.h ] 
- * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
- * - creation 2007-02-24
- *   + interface for Windows and Linux sockets
- *   + all things in this file start with rmldb_socket_*
- * - last modified 2007-02-24
- *****************************************************************************/
-
-#ifdef RML_DEBUG
-#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-/*********** MINGW32 && MSVC stuff **********/
-#include <winsock2.h>
-
-#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
-#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
-#define _rmldb_socket_close closesocket
-#define _rmldb_socket_errorno WSAGetLastError()
-
-#else /***************** unix stuff ***************/
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/unistd.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define _rmldb_socket_send(x,y,z) write(x,y,z)
-#define _rmldb_socket_recv(x,y,z) read(x,y,z)
-#define _rmldb_socket_close close
-#define _rmldb_socket_errorno errno
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-
-#endif
-
-/* 
- * set to 1 to have debugging or to 0 to 
- * disable debugging of the socket communication
- */
-extern int   rmldb_socket_debug;
-/* 
- * initialize the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_initialize_library(void);  
-/* 
- * cleanups the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_cleanup_library(void);  
-
-/* 
- * get a socket 
- * returns -1 or the socket
- */
-extern int   rmldb_socket_get(void);
-
-/* 
- * binds the given socket on localhost and given port
- * performs bind and listen
- * returns -1 on error and 0 on success
- */
-extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
-/* 
- * performs accept on the given socket 
- * returns the new socket or -1 on error
- */
-extern int   rmldb_socket_accept(int socket);
-
-/* 
- * close the socket 
- * returns -1 for error or 0 for no error 
- */
-extern int   rmldb_socket_close(int socket); 
-
-/* send to socket with error handling */
-extern int rmldb_socket_outln(int sock, char *msg);
-extern int rmldb_socket_out(int sock, char *msg);
-
-#endif
-/* handler.h */
-#ifndef HANDLER_H_
-#define HANDLER_H_
-
-extern int   aaerror(char*);
-extern int   aaparse(void);
-extern int   aadebug;
-
-#ifdef RML_DEBUG
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-
-#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
-#include <signal.h>
-#endif
-
-#else /***************** unix stuff ***************/
-#include <signal.h>
-#endif /* unix vs windows stuff */
-
-/* adrpo - debugger global variables */
-extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
-extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
-extern int   rmldb_event_port;  /* listen on this port and send event to the client */
-extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
-
-typedef struct rmldb_communication
-{
-	int   cmd_bind_sock;     /* bind and accept on this socket */
-	int   cmd_sock;          /* listen for commands on this socket */
-	int   reply_bind_sock;   /* bind and accept on this socket */
-	int   reply_sock;        /* send reply of commands to this socket */	
-	int   event_bind_sock;   /* bind and accept on this socket */
-	int   event_sock;        /* send output to this port */
-	int   signal_bind_sock;  /* bind and accept on this socket */
-	int   signal_sock;       /* listen to async events from client */
-} rmldb_communication_type;
-
-extern rmldb_communication_type rmldb_communicator;
-
-extern int rmldb_last_command;
-extern int rmldb_startSignalHandler(void* arg);
-extern int rmldb_endSignalHandler(void);
-extern int rmldb_interpretCommand(void);
-extern int rmldb_executeCommand(rmldb_command_type* cmd);
-extern int rmldb_sendEvent(char* event);
-extern int rmldb_sendReply(char* reply);
-
-#endif /* RML_DEBUG */
-
-#endif /*HANDLER_H_*/
+
+/*
+ * rml-predef.h
+ */
+
+extern void rml_prim_motor(rml_labptr_t);
+extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
+extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
+/* let the print relation be available for non-debug-version-rml-library also */
+extern void rmldb_var_print(void *p);
+
+/*
+ * Standard procedures
+ * adrpo added Java named RML buildin relations 2005-11-10
+ */
+
+/* roots */
+extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
+extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
+/* java named */
+#define RML__setGlobalRoot  RML__set_5fglobal_5froot
+#define RML__getGlobalRoot  RML__get_5fglobal_5froot
+
+/* references */
+extern RML_FORWARD_LABEL(RML__reference_5feq);
+extern RML_FORWARD_LABEL(RML__reference_5finteger);
+extern RML_FORWARD_LABEL(RML__reference_5fupdate);
+extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
+extern RML_FORWARD_LABEL(RML__reference_5fshare);
+/* java named */
+#define RML__referenceEq       RML__reference_5feq
+#define RML__referenceInteger  RML__reference_5finteger
+#define RML__referenceUpdate   RML__reference_5fupdate
+#define RML__referenceSetNth   RML__reference_5fsetnth
+#define RML__referenceShare    RML__reference_5fshare
+
+/* values */
+extern RML_FORWARD_LABEL(RML__value_5fconstructor);
+extern RML_FORWARD_LABEL(RML__value_5fslots);
+extern RML_FORWARD_LABEL(RML__value_5feq);
+extern RML_FORWARD_LABEL(RML__value_5fmatch);
+extern RML_FORWARD_LABEL(RML__value_5fhash);
+extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
+/* java named */
+#define RML__valueConstructor RML__value_5fconstructor
+#define RML__valueSlots       RML__value_5fslots
+#define RML__valueEq          RML__value_5feq
+#define RML__valueMatch       RML__value_5fmatch
+#define RML__valueHash        RML__value_5fhash
+#define RML__valueHashMod     RML__value_5fhash_5fmod
+
+/* booleans */
+extern RML_FORWARD_LABEL(RML__bool_5fand);
+extern RML_FORWARD_LABEL(RML__bool_5fnot);
+extern RML_FORWARD_LABEL(RML__bool_5for);
+extern RML_FORWARD_LABEL(RML__bool_5feq);
+extern RML_FORWARD_LABEL(RML__bool_5fstring);
+/* java named */
+#define RML__boolAnd    RML__bool_5fand
+#define RML__boolNot    RML__bool_5fnot
+#define RML__boolOr     RML__bool_5for
+#define RML__boolEq     RML__bool_5feq
+#define RML__boolString RML__bool_5fstring
+
+/* chars */
+extern RML_FORWARD_LABEL(RML__int_5fint);
+extern RML_FORWARD_LABEL(RML__list_5fstring);
+extern RML_FORWARD_LABEL(RML__string_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fnth);
+extern RML_FORWARD_LABEL(RML__string_5fget);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth);
+extern RML_FORWARD_LABEL(RML__string_5fupdate);
+extern RML_FORWARD_LABEL(RML__string_5fequal);
+extern RML_FORWARD_LABEL(RML__string_5fcompare);
+/* hash functions */
+extern RML_FORWARD_LABEL(RML__string_5fhash);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
+#define RML__char_5fint	RML__int_5fint
+#define RML__int_5fchar	RML__int_5fint
+/* java named */
+#define RML__intChar        RML__int_5fint
+#define RML__charInt        RML__int_5fint
+#define RML__listString     RML__list_5fstring
+#define RML__stringList     RML__string_5flist
+#define RML__stringNth      RML__string_5fnth
+#define RML__stringGet      RML__string_5fget
+#define RML__stringSetNth   RML__string_5fset_5fnth
+#define RML__stringUpdate   RML__string_5fupdate
+#define RML__stringEqual    RML__string_5fequal
+#define RML__stringCompare  RML__string_5fcompare
+#define RML__stringEq       RML__string_5fequal
+#define RML__string_5feq    RML__string_5fequal
+/* hash functions */
+#define RML__stringHash     RML__string_5fhash
+#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
+#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
+
+/* string chars */
+extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
+extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
+/* java named */
+#define RML__stringCharInt           RML__string_5fchar_5fint
+#define RML__intStringChar           RML__int_5fstring_5fchar
+#define RML__listStringChar          RML__list_5fstring_5fchar
+#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
+#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
+#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
+#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
+#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
+#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
+
+extern RML_FORWARD_LABEL(RML__int_5fabs);
+extern RML_FORWARD_LABEL(RML__int_5fadd);
+extern RML_FORWARD_LABEL(RML__int_5fdiv);
+extern RML_FORWARD_LABEL(RML__int_5feq);
+extern RML_FORWARD_LABEL(RML__int_5fge);
+extern RML_FORWARD_LABEL(RML__int_5fgt);
+extern RML_FORWARD_LABEL(RML__int_5fle);
+extern RML_FORWARD_LABEL(RML__int_5flt);
+extern RML_FORWARD_LABEL(RML__int_5fmax);
+extern RML_FORWARD_LABEL(RML__int_5fmin);
+extern RML_FORWARD_LABEL(RML__int_5fmod);
+extern RML_FORWARD_LABEL(RML__int_5fmul);
+extern RML_FORWARD_LABEL(RML__int_5fne);
+extern RML_FORWARD_LABEL(RML__int_5fneg);
+extern RML_FORWARD_LABEL(RML__int_5freal);
+extern RML_FORWARD_LABEL(RML__int_5fstring);
+extern RML_FORWARD_LABEL(RML__int_5fsub);
+/* bit operations */
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
+/* java named */
+#define RML__intAbs       RML__int_5fabs
+#define RML__intAdd       RML__int_5fadd
+#define RML__intDiv       RML__int_5fdiv
+#define RML__intEq        RML__int_5feq
+#define RML__intGe        RML__int_5fge
+#define RML__intGt        RML__int_5fgt
+#define RML__intLe        RML__int_5fle
+#define RML__intLt        RML__int_5flt
+#define RML__intMax       RML__int_5fmax
+#define RML__intMin       RML__int_5fmin
+#define RML__intMod       RML__int_5fmod
+#define RML__intMul       RML__int_5fmul
+#define RML__intNe        RML__int_5fne
+#define RML__intNeg       RML__int_5fneg
+#define RML__intReal      RML__int_5freal
+#define RML__intString    RML__int_5fstring
+#define RML__intSub       RML__int_5fsub
+/* bit operations */
+#define RML__intBitNot    RML__int_5fbit_5fnot
+#define RML__intBitAnd    RML__int_5fbit_5fand
+#define RML__intBitOr     RML__int_5fbit_5for
+#define RML__intBitXor    RML__int_5fbit_5fxor
+#define RML__intBitLShift RML__int_5fbit_5flshift
+#define RML__intBitRShift RML__int_5fbit_5frshift
+
+
+/* lists */
+extern RML_FORWARD_LABEL(RML__list_5fappend);
+extern RML_FORWARD_LABEL(RML__list_5fdelete);
+extern RML_FORWARD_LABEL(RML__list_5flength);
+extern RML_FORWARD_LABEL(RML__list_5fmember);
+extern RML_FORWARD_LABEL(RML__list_5fnth);
+extern RML_FORWARD_LABEL(RML__list_5fget);
+extern RML_FORWARD_LABEL(RML__list_5freverse);
+extern RML_FORWARD_LABEL(RML__list_5fvector);
+extern RML_FORWARD_LABEL(RML__list_5farray);
+extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
+/* java named */
+#define RML__listAppend       RML__list_5fappend
+#define RML__listDelete       RML__list_5fdelete
+#define RML__listLength       RML__list_5flength
+#define RML__listMember       RML__list_5fmember
+#define RML__listNth          RML__list_5fnth
+#define RML__listGet          RML__list_5fget
+#define RML__listReverse      RML__list_5freverse
+#define RML__listVector       RML__list_5fvector
+#define RML__listArray        RML__list_5farray
+#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
+
+/* logical variables */
+extern RML_FORWARD_LABEL(RML__lvar_5fget);
+extern RML_FORWARD_LABEL(RML__lvar_5fnew);
+extern RML_FORWARD_LABEL(RML__lvar_5fset);
+/* java named */
+#define RML__lvarGet RML__lvar_5fget
+#define RML__lvarNew RML__lvar_5fnew
+#define RML__lvarSet RML__lvar_5fset
+
+/* reals */
+extern RML_FORWARD_LABEL(RML__real_5fabs);
+extern RML_FORWARD_LABEL(RML__real_5fadd);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fcos);
+extern RML_FORWARD_LABEL(RML__real_5fdiv);
+extern RML_FORWARD_LABEL(RML__real_5feq);
+extern RML_FORWARD_LABEL(RML__real_5fexp);
+extern RML_FORWARD_LABEL(RML__real_5ffloor);
+extern RML_FORWARD_LABEL(RML__real_5fceil);
+extern RML_FORWARD_LABEL(RML__real_5fge);
+extern RML_FORWARD_LABEL(RML__real_5fgt);
+extern RML_FORWARD_LABEL(RML__real_5fint);
+extern RML_FORWARD_LABEL(RML__real_5fle);
+extern RML_FORWARD_LABEL(RML__real_5fln);
+extern RML_FORWARD_LABEL(RML__real_5flt);
+extern RML_FORWARD_LABEL(RML__real_5fmax);
+extern RML_FORWARD_LABEL(RML__real_5fmin);
+extern RML_FORWARD_LABEL(RML__real_5fmod);
+extern RML_FORWARD_LABEL(RML__real_5fmul);
+extern RML_FORWARD_LABEL(RML__real_5fne);
+extern RML_FORWARD_LABEL(RML__real_5fneg);
+extern RML_FORWARD_LABEL(RML__real_5fpow);
+extern RML_FORWARD_LABEL(RML__real_5fsin);
+extern RML_FORWARD_LABEL(RML__real_5fsqrt);
+extern RML_FORWARD_LABEL(RML__real_5fstring);
+extern RML_FORWARD_LABEL(RML__real_5fsub);
+extern RML_FORWARD_LABEL(RML__real_5fasin);
+extern RML_FORWARD_LABEL(RML__real_5facos);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fatan2);
+extern RML_FORWARD_LABEL(RML__real_5fcosh);
+extern RML_FORWARD_LABEL(RML__real_5flog);
+extern RML_FORWARD_LABEL(RML__real_5flog10);
+extern RML_FORWARD_LABEL(RML__real_5fsinh);
+extern RML_FORWARD_LABEL(RML__real_5ftanh);
+/* java named */
+#define RML__realAbs    RML__real_5fabs
+#define RML__realAdd    RML__real_5fadd
+#define RML__realAtan   RML__real_5fatan
+#define RML__realCos    RML__real_5fcos
+#define RML__realDiv    RML__real_5fdiv
+#define RML__realEq     RML__real_5feq
+#define RML__realExp    RML__real_5fexp
+#define RML__realFloor  RML__real_5ffloor
+#define RML__realCeil   RML__real_5fceil
+#define RML__realGe     RML__real_5fge
+#define RML__realGt     RML__real_5fgt
+#define RML__realInt    RML__real_5fint
+#define RML__realLe     RML__real_5fle
+#define RML__realLn     RML__real_5fln
+#define RML__realLt     RML__real_5flt
+#define RML__realMax    RML__real_5fmax
+#define RML__realMin    RML__real_5fmin
+#define RML__realMod    RML__real_5fmod
+#define RML__realMul    RML__real_5fmul
+#define RML__realNe     RML__real_5fne
+#define RML__realNeg    RML__real_5fneg
+#define RML__realPow    RML__real_5fpow
+#define RML__realSin    RML__real_5fsin
+#define RML__realSqrt   RML__real_5fsqrt
+#define RML__realString RML__real_5fstring
+#define RML__realSub    RML__real_5fsub
+#define RML__realAsin   RML__real_5fasin
+#define RML__realAcos   RML__real_5facos
+#define RML__realAtan2  RML__real_5fatan2
+#define RML__realCosh   RML__real_5fcosh
+#define RML__realLog    RML__real_5flog
+#define RML__realLog10  RML__real_5flog10
+#define RML__realSinh   RML__real_5fsinh
+#define RML__realTanh   RML__real_5ftanh
+
+/* strings */
+extern RML_FORWARD_LABEL(RML__string_5fappend);
+extern RML_FORWARD_LABEL(RML__string_5fint);
+extern RML_FORWARD_LABEL(RML__string_5flength);
+extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
+/* java named */
+#define RML__stringAppend RML__string_5fappend
+#define RML__stringInt    RML__string_5fint
+#define RML__stringLength RML__string_5flength
+#define RML__stringAppendList RML__string_5fappend_5flist
+#define RML__stringDelimitList RML__string_5fdelimit_5flist
+
+/* declarative vectors */
+extern RML_FORWARD_LABEL(RML__vector_5flength);
+extern RML_FORWARD_LABEL(RML__vector_5flist);
+extern RML_FORWARD_LABEL(RML__vector_5fnth);
+extern RML_FORWARD_LABEL(RML__vector_5fget);
+extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
+extern RML_FORWARD_LABEL(RML__vector_5fupdate);
+extern RML_FORWARD_LABEL(RML__vector_5fcreate);
+extern RML_FORWARD_LABEL(RML__vector_5fadd);
+extern RML_FORWARD_LABEL(RML__vector_5farray);
+extern RML_FORWARD_LABEL(RML__vector_5fcopy);
+/* java named */
+#define RML__vectorLength RML__vector_5flength
+#define RML__vectorList   RML__vector_5flist
+#define RML__vectorNth    RML__vector_5fnth
+#define RML__vectorGet    RML__vector_5fget
+#define RML__vectorSetNth RML__vector_5fsetnth
+#define RML__vectorUpdate RML__vector_5fupdate
+#define RML__vectorCreate RML__vector_5fcreate
+#define RML__vectorAdd    RML__vector_5fadd
+#define RML__vectorArray  RML__vector_5farray
+#define RML__vectorCopy   RML__vector_5fcopy
+
+/* mutable arrays */
+extern RML_FORWARD_LABEL(RML__array_5flength);
+extern RML_FORWARD_LABEL(RML__array_5flist);
+extern RML_FORWARD_LABEL(RML__array_5fnth);
+extern RML_FORWARD_LABEL(RML__array_5fget);
+extern RML_FORWARD_LABEL(RML__array_5fsetnth);
+extern RML_FORWARD_LABEL(RML__array_5fupdate);
+extern RML_FORWARD_LABEL(RML__array_5fcreate);
+extern RML_FORWARD_LABEL(RML__array_5fadd);
+extern RML_FORWARD_LABEL(RML__array_5fvector);
+extern RML_FORWARD_LABEL(RML__array_5fcopy);
+/* java named */
+#define RML__arrayLength RML__array_5flength
+#define RML__arrayList   RML__array_5flist
+#define RML__arrayNth    RML__array_5fnth
+#define RML__arrayGet    RML__array_5fget
+#define RML__arraySetNth RML__array_5fsetnth
+#define RML__arrayUpdate RML__array_5fupdate
+#define RML__arrayCreate RML__array_5fcreate
+#define RML__arrayAdd    RML__array_5fadd
+#define RML__arrayVector RML__array_5fvector
+#define RML__arrayCopy   RML__array_5fcopy
+
+/* if expressions */
+extern RML_FORWARD_LABEL(RML__if_5fexp);
+#define RML__ifExp   RML__if_5fexp
+
+/* misc */
+extern RML_FORWARD_LABEL(RML__clock);
+extern RML_FORWARD_LABEL(RML__print);
+extern RML_FORWARD_LABEL(RML__tick);
+extern RML_FORWARD_LABEL(RML__unique);
+extern RML_FORWARD_LABEL(RML__enable_5ftrace);
+extern RML_FORWARD_LABEL(RML__disable_5ftrace);
+extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
+/* java names */
+#define RML__enableTrace  RML__enable_5ftrace
+#define RML__disableTrace RML__disable_5ftrace
+
+
+/* debugging */
+/* let these relation be available in all rml libraries */
+/* however their code depends on _RMLDB_DEFINED_ */
+extern RML_FORWARD_LABEL(RML__debug_5fprint);
+extern RML_FORWARD_LABEL(RML__debug);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
+extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
+
+extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
+#ifndef _RMLDB_COMMAND_H_
+#define _RMLDB_COMMAND_H_
+
+/* the commands accepted by the debugger */
+#define RMLDB_CMD_NONE 							0000
+#define RMLDB_CMD_BREAKPOINT 					1000
+#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
+#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
+#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
+#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
+#define RMLDB_CMD_STRING_BREAKPOINT 			1005
+#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
+#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
+#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
+#define RMLDB_CMD_STACK							1009
+#define RMLDB_CMD_VARIABLE_VALUE				1010
+#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
+#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
+#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
+
+#define RMLDB_CMD_RESUME						2000
+#define RMLDB_CMD_STEP							2001
+#define RMLDB_CMD_STEP_OVER						2002
+#define RMLDB_CMD_STEP_RETURN					2003
+#define RMLDB_CMD_RUN							2004
+#define RMLDB_CMD_QUIT							2005
+
+/* the response of the debugger to commands */
+#define RMLDB_REPLY_OK							"$ok"
+#define RMLDB_REPLY_ERROR						"$err"
+
+/* the signals accepted by the debugger  */
+#define RMLDB_SIGNAL_SUSPEND					"$u"
+#define RMLDB_SIGNAL_QUIT						"$q"
+
+
+/* the events send by the debugger to the Eclipse UI */
+#define RMLDB_EVENT_START						"$t"
+#define RMLDB_EVENT_READY						"$rdy"
+#define RMLDB_EVENT_STEP						"$s"
+#define RMLDB_EVENT_STEP_OVER					"$o"
+#define RMLDB_EVENT_STEP_RETURN					"$n"
+#define RMLDB_EVENT_RUN							"$r"
+#define RMLDB_EVENT_QUIT						"$q"
+#define RMLDB_EVENT_SUSPEND						"$u"
+#define RMLDB_EVENT_BREAKPOINT					"$b"
+#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
+#define RMLDB_EVENT_ERROR						"$err"
+
+typedef struct rmldb_command_t
+{
+	int ty;   /* the command type */
+	union 
+	{
+		struct brkFile      	 { char *file; int   line;   		} brkFile;
+		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
+		struct brkString		 { char *filter;             		} brkString;
+        struct brkFailure        { char *filter;                    } brkFailure;        
+		struct varValue			 { char *name;       	    		} varValue;
+		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
+		struct frameVarValue     { int frame; int nr;				} frameVarValue;
+		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
+	} data;
+} rmldb_command_type;
+
+
+extern rmldb_command_type* rmldb_current_command;
+
+extern rmldb_command_type* rmldb_mk_cmd(int ty);
+extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
+extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
+extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
+extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
+extern int rmldb_freeCommand(rmldb_command_type* cmd);
+
+#endif /* _RMLDB_COMMAND_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+
+/*
+ * [ rml-socket.h ] 
+ * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+ * - creation 2007-02-24
+ *   + interface for Windows and Linux sockets
+ *   + all things in this file start with rmldb_socket_*
+ * - last modified 2007-02-24
+ *****************************************************************************/
+
+#ifdef RML_DEBUG
+#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+/*********** MINGW32 && MSVC stuff **********/
+#include <winsock2.h>
+
+#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
+#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
+#define _rmldb_socket_close closesocket
+#define _rmldb_socket_errorno WSAGetLastError()
+
+#else /***************** unix stuff ***************/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/unistd.h>
+#include <sys/stat.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define _rmldb_socket_send(x,y,z) write(x,y,z)
+#define _rmldb_socket_recv(x,y,z) read(x,y,z)
+#define _rmldb_socket_close close
+#define _rmldb_socket_errorno errno
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (-1)
+
+#endif
+
+/* 
+ * set to 1 to have debugging or to 0 to 
+ * disable debugging of the socket communication
+ */
+extern int   rmldb_socket_debug;
+/* 
+ * initialize the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_initialize_library(void);  
+/* 
+ * cleanups the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_cleanup_library(void);  
+
+/* 
+ * get a socket 
+ * returns -1 or the socket
+ */
+extern int   rmldb_socket_get(void);
+
+/* 
+ * binds the given socket on localhost and given port
+ * performs bind and listen
+ * returns -1 on error and 0 on success
+ */
+extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
+/* 
+ * performs accept on the given socket 
+ * returns the new socket or -1 on error
+ */
+extern int   rmldb_socket_accept(int socket);
+
+/* 
+ * close the socket 
+ * returns -1 for error or 0 for no error 
+ */
+extern int   rmldb_socket_close(int socket); 
+
+/* send to socket with error handling */
+extern int rmldb_socket_outln(int sock, char *msg);
+extern int rmldb_socket_out(int sock, char *msg);
+
+#endif
+/* handler.h */
+#ifndef HANDLER_H_
+#define HANDLER_H_
+
+extern int   aaerror(char*);
+extern int   aaparse(void);
+extern int   aadebug;
+
+#ifdef RML_DEBUG
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+
+#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
+#include <signal.h>
+#endif
+
+#else /***************** unix stuff ***************/
+#include <signal.h>
+#endif /* unix vs windows stuff */
+
+/* adrpo - debugger global variables */
+extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
+extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
+extern int   rmldb_event_port;  /* listen on this port and send event to the client */
+extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
+
+typedef struct rmldb_communication
+{
+	int   cmd_bind_sock;     /* bind and accept on this socket */
+	int   cmd_sock;          /* listen for commands on this socket */
+	int   reply_bind_sock;   /* bind and accept on this socket */
+	int   reply_sock;        /* send reply of commands to this socket */	
+	int   event_bind_sock;   /* bind and accept on this socket */
+	int   event_sock;        /* send output to this port */
+	int   signal_bind_sock;  /* bind and accept on this socket */
+	int   signal_sock;       /* listen to async events from client */
+} rmldb_communication_type;
+
+extern rmldb_communication_type rmldb_communicator;
+
+extern int rmldb_last_command;
+extern int rmldb_startSignalHandler(void* arg);
+extern int rmldb_endSignalHandler(void);
+extern int rmldb_interpretCommand(void);
+extern int rmldb_executeCommand(rmldb_command_type* cmd);
+extern int rmldb_sendEvent(char* event);
+extern int rmldb_sendReply(char* reply);
+
+#endif /* RML_DEBUG */
+
+#endif /*HANDLER_H_*/
 /***********************************************************
  [ load.h ] 
   - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
@@ -1732,110 +1732,110 @@ extern int   aarmldbdebug;
 extern int   aarmldb_lineno;
 
 #endif /* _RMLDB_LOAD_H_  */
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-/***********************************************************
- [ debug.h ] 
-  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
-  - creation 2002-10
-    + interface for rml debugging 
-    + this file contains all the functions for debugging 
-	+ all things in this file start with rmldb_
-  - last modified 2005-12-27
-************************************************************/
-#ifndef _RML_DEBUG_H_
-#define _RML_DEBUG_H_
-/* all these functions depends on RML_DEBUG macro */
-/************************************************************/
-
-#ifdef RML_DEBUG
-
-#include <stdio.h>
-#include <string.h>
-
-/* this file will be included in the generated rml.h */
-/* adrpo some useful defines. */
-#define RMLDB_SUCCESS  1
-#define RMLDB_FAILURE -1
-
-#define RMLDB_PROMPT "rml+mmc db@>"
-#define RMLDB_RUN         0
-#define RMLDB_STEP        1
-#define RMLDB_STEP_OVER   2
-#define RMLDB_STEP_RETURN	3
-#define RMLDB_BREAKPOINT  4
-#define RMLDB_TRACE_CALLS	5
-#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
-
-#define RMLDB_VAR_IN 0
-#define RMLDB_VAR_OUT 1
-
-extern int   rmldb_execution_type;
-extern int   rmldb_execution_startup_type;
-extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
-extern int   rmldb_depth_of_variable_print;
-extern int   rmldb_max_string_variable_print;
-/* location of current execution point */
-extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
-
-/* init/help/exit */
-extern int  rmldb_init(void);
-extern int  rmldb_end(void);
-extern void rmldb_exit(int status);
-extern int  rmldb_quit(char *line);
-
-/* breakpoints */
-extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
-
-/* variables */
-extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
-
-/* stack */
-extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
-extern int rmldb_push_stack_frame(
-			char* file, 
-			int charStart, int charEnd, 
-			int startLine, int startColumn, int endLine, int endColumn,					  
-			char* function,
-			char* call);
-extern int rmldb_pop_stack_frame(char gototype);
-
-#endif /* RML_DEBUG */
-
-#endif /* _RML_DEBUG_H_  */
-
-
-/* ending rml.h */
-#endif /*_RML_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+/***********************************************************
+ [ debug.h ] 
+  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+  - creation 2002-10
+    + interface for rml debugging 
+    + this file contains all the functions for debugging 
+	+ all things in this file start with rmldb_
+  - last modified 2005-12-27
+************************************************************/
+#ifndef _RML_DEBUG_H_
+#define _RML_DEBUG_H_
+/* all these functions depends on RML_DEBUG macro */
+/************************************************************/
+
+#ifdef RML_DEBUG
+
+#include <stdio.h>
+#include <string.h>
+
+/* this file will be included in the generated rml.h */
+/* adrpo some useful defines. */
+#define RMLDB_SUCCESS  1
+#define RMLDB_FAILURE -1
+
+#define RMLDB_PROMPT "rml+mmc db@>"
+#define RMLDB_RUN         0
+#define RMLDB_STEP        1
+#define RMLDB_STEP_OVER   2
+#define RMLDB_STEP_RETURN	3
+#define RMLDB_BREAKPOINT  4
+#define RMLDB_TRACE_CALLS	5
+#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
+
+#define RMLDB_VAR_IN 0
+#define RMLDB_VAR_OUT 1
+
+extern int   rmldb_execution_type;
+extern int   rmldb_execution_startup_type;
+extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
+extern int   rmldb_depth_of_variable_print;
+extern int   rmldb_max_string_variable_print;
+/* location of current execution point */
+extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
+
+/* init/help/exit */
+extern int  rmldb_init(void);
+extern int  rmldb_end(void);
+extern void rmldb_exit(int status);
+extern int  rmldb_quit(char *line);
+
+/* breakpoints */
+extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
+
+/* variables */
+extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
+
+/* stack */
+extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
+extern int rmldb_push_stack_frame(
+			char* file, 
+			int charStart, int charEnd, 
+			int startLine, int startColumn, int endLine, int endColumn,					  
+			char* function,
+			char* call);
+extern int rmldb_pop_stack_frame(char gototype);
+
+#endif /* RML_DEBUG */
+
+#endif /* _RML_DEBUG_H_  */
+
+
+/* ending rml.h */
+#endif /*_RML_H_*/
diff --git a/tools/rml64/include/mask/rml.h b/tools/rml64/include/mask/rml.h
index c61ca4d935a614c7b2e1bb94609d418f53b869e5..d99d0c798c7800b93eb0513fd520c6792e4ac7ff 100644
--- a/tools/rml64/include/mask/rml.h
+++ b/tools/rml64/include/mask/rml.h
@@ -5,11 +5,11 @@
 /* config.h for Intel x86_64 / Mingw64/32 / gcc */
 
 /* the following section was generated by repchk */
-typedef long long rml_sint_t;
-typedef unsigned long long rml_uint_t;
-#define RML_LOG2_SIZE_INT 3
-#define RML_SIZE_INT 8
-#define RML_SIZE_DBL 8
+typedef long long rml_sint_t;
+typedef unsigned long long rml_uint_t;
+#define RML_LOG2_SIZE_INT 3
+#define RML_SIZE_INT 8
+#define RML_SIZE_DBL 8
 /* #define RML_DBL_PAD */
 #define RML_DBL_STRICT /* conservative assumption */
 /* end of repchk-generated section */
@@ -39,9 +39,9 @@ typedef unsigned long long rml_uint_t;
 
 #define RML_GCCGOTO
 #define RML_GCCGOTO_NOSHIFT
-/* starting rml.h */
-#ifndef _RML_H_
-#define _RML_H_
+/* starting rml.h */
+#ifndef _RML_H_
+#define _RML_H_
 /* 
  * This file is part of OpenModelica.
  * 
@@ -799,645 +799,645 @@ extern void rml_prim_gc(rml_uint_t, rml_uint_t);
 
 
 
-
-/*
- * rml-predef.h
- */
-
-extern void rml_prim_motor(rml_labptr_t);
-extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
-extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
-/* let the print relation be available for non-debug-version-rml-library also */
-extern void rmldb_var_print(void *p);
-
-/*
- * Standard procedures
- * adrpo added Java named RML buildin relations 2005-11-10
- */
-
-/* roots */
-extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
-extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
-/* java named */
-#define RML__setGlobalRoot  RML__set_5fglobal_5froot
-#define RML__getGlobalRoot  RML__get_5fglobal_5froot
-
-/* references */
-extern RML_FORWARD_LABEL(RML__reference_5feq);
-extern RML_FORWARD_LABEL(RML__reference_5finteger);
-extern RML_FORWARD_LABEL(RML__reference_5fupdate);
-extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
-extern RML_FORWARD_LABEL(RML__reference_5fshare);
-/* java named */
-#define RML__referenceEq       RML__reference_5feq
-#define RML__referenceInteger  RML__reference_5finteger
-#define RML__referenceUpdate   RML__reference_5fupdate
-#define RML__referenceSetNth   RML__reference_5fsetnth
-#define RML__referenceShare    RML__reference_5fshare
-
-/* values */
-extern RML_FORWARD_LABEL(RML__value_5fconstructor);
-extern RML_FORWARD_LABEL(RML__value_5fslots);
-extern RML_FORWARD_LABEL(RML__value_5feq);
-extern RML_FORWARD_LABEL(RML__value_5fmatch);
-extern RML_FORWARD_LABEL(RML__value_5fhash);
-extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
-/* java named */
-#define RML__valueConstructor RML__value_5fconstructor
-#define RML__valueSlots       RML__value_5fslots
-#define RML__valueEq          RML__value_5feq
-#define RML__valueMatch       RML__value_5fmatch
-#define RML__valueHash        RML__value_5fhash
-#define RML__valueHashMod     RML__value_5fhash_5fmod
-
-/* booleans */
-extern RML_FORWARD_LABEL(RML__bool_5fand);
-extern RML_FORWARD_LABEL(RML__bool_5fnot);
-extern RML_FORWARD_LABEL(RML__bool_5for);
-extern RML_FORWARD_LABEL(RML__bool_5feq);
-extern RML_FORWARD_LABEL(RML__bool_5fstring);
-/* java named */
-#define RML__boolAnd    RML__bool_5fand
-#define RML__boolNot    RML__bool_5fnot
-#define RML__boolOr     RML__bool_5for
-#define RML__boolEq     RML__bool_5feq
-#define RML__boolString RML__bool_5fstring
-
-/* chars */
-extern RML_FORWARD_LABEL(RML__int_5fint);
-extern RML_FORWARD_LABEL(RML__list_5fstring);
-extern RML_FORWARD_LABEL(RML__string_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fnth);
-extern RML_FORWARD_LABEL(RML__string_5fget);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth);
-extern RML_FORWARD_LABEL(RML__string_5fupdate);
-extern RML_FORWARD_LABEL(RML__string_5fequal);
-extern RML_FORWARD_LABEL(RML__string_5fcompare);
-/* hash functions */
-extern RML_FORWARD_LABEL(RML__string_5fhash);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
-#define RML__char_5fint	RML__int_5fint
-#define RML__int_5fchar	RML__int_5fint
-/* java named */
-#define RML__intChar        RML__int_5fint
-#define RML__charInt        RML__int_5fint
-#define RML__listString     RML__list_5fstring
-#define RML__stringList     RML__string_5flist
-#define RML__stringNth      RML__string_5fnth
-#define RML__stringGet      RML__string_5fget
-#define RML__stringSetNth   RML__string_5fset_5fnth
-#define RML__stringUpdate   RML__string_5fupdate
-#define RML__stringEqual    RML__string_5fequal
-#define RML__stringCompare  RML__string_5fcompare
-#define RML__stringEq       RML__string_5fequal
-#define RML__string_5feq    RML__string_5fequal
-/* hash functions */
-#define RML__stringHash     RML__string_5fhash
-#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
-#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
-
-/* string chars */
-extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
-extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
-/* java named */
-#define RML__stringCharInt           RML__string_5fchar_5fint
-#define RML__intStringChar           RML__int_5fstring_5fchar
-#define RML__listStringChar          RML__list_5fstring_5fchar
-#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
-#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
-#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
-#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
-#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
-#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
-
-extern RML_FORWARD_LABEL(RML__int_5fabs);
-extern RML_FORWARD_LABEL(RML__int_5fadd);
-extern RML_FORWARD_LABEL(RML__int_5fdiv);
-extern RML_FORWARD_LABEL(RML__int_5feq);
-extern RML_FORWARD_LABEL(RML__int_5fge);
-extern RML_FORWARD_LABEL(RML__int_5fgt);
-extern RML_FORWARD_LABEL(RML__int_5fle);
-extern RML_FORWARD_LABEL(RML__int_5flt);
-extern RML_FORWARD_LABEL(RML__int_5fmax);
-extern RML_FORWARD_LABEL(RML__int_5fmin);
-extern RML_FORWARD_LABEL(RML__int_5fmod);
-extern RML_FORWARD_LABEL(RML__int_5fmul);
-extern RML_FORWARD_LABEL(RML__int_5fne);
-extern RML_FORWARD_LABEL(RML__int_5fneg);
-extern RML_FORWARD_LABEL(RML__int_5freal);
-extern RML_FORWARD_LABEL(RML__int_5fstring);
-extern RML_FORWARD_LABEL(RML__int_5fsub);
-/* bit operations */
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
-/* java named */
-#define RML__intAbs       RML__int_5fabs
-#define RML__intAdd       RML__int_5fadd
-#define RML__intDiv       RML__int_5fdiv
-#define RML__intEq        RML__int_5feq
-#define RML__intGe        RML__int_5fge
-#define RML__intGt        RML__int_5fgt
-#define RML__intLe        RML__int_5fle
-#define RML__intLt        RML__int_5flt
-#define RML__intMax       RML__int_5fmax
-#define RML__intMin       RML__int_5fmin
-#define RML__intMod       RML__int_5fmod
-#define RML__intMul       RML__int_5fmul
-#define RML__intNe        RML__int_5fne
-#define RML__intNeg       RML__int_5fneg
-#define RML__intReal      RML__int_5freal
-#define RML__intString    RML__int_5fstring
-#define RML__intSub       RML__int_5fsub
-/* bit operations */
-#define RML__intBitNot    RML__int_5fbit_5fnot
-#define RML__intBitAnd    RML__int_5fbit_5fand
-#define RML__intBitOr     RML__int_5fbit_5for
-#define RML__intBitXor    RML__int_5fbit_5fxor
-#define RML__intBitLShift RML__int_5fbit_5flshift
-#define RML__intBitRShift RML__int_5fbit_5frshift
-
-
-/* lists */
-extern RML_FORWARD_LABEL(RML__list_5fappend);
-extern RML_FORWARD_LABEL(RML__list_5fdelete);
-extern RML_FORWARD_LABEL(RML__list_5flength);
-extern RML_FORWARD_LABEL(RML__list_5fmember);
-extern RML_FORWARD_LABEL(RML__list_5fnth);
-extern RML_FORWARD_LABEL(RML__list_5fget);
-extern RML_FORWARD_LABEL(RML__list_5freverse);
-extern RML_FORWARD_LABEL(RML__list_5fvector);
-extern RML_FORWARD_LABEL(RML__list_5farray);
-extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
-/* java named */
-#define RML__listAppend       RML__list_5fappend
-#define RML__listDelete       RML__list_5fdelete
-#define RML__listLength       RML__list_5flength
-#define RML__listMember       RML__list_5fmember
-#define RML__listNth          RML__list_5fnth
-#define RML__listGet          RML__list_5fget
-#define RML__listReverse      RML__list_5freverse
-#define RML__listVector       RML__list_5fvector
-#define RML__listArray        RML__list_5farray
-#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
-
-/* logical variables */
-extern RML_FORWARD_LABEL(RML__lvar_5fget);
-extern RML_FORWARD_LABEL(RML__lvar_5fnew);
-extern RML_FORWARD_LABEL(RML__lvar_5fset);
-/* java named */
-#define RML__lvarGet RML__lvar_5fget
-#define RML__lvarNew RML__lvar_5fnew
-#define RML__lvarSet RML__lvar_5fset
-
-/* reals */
-extern RML_FORWARD_LABEL(RML__real_5fabs);
-extern RML_FORWARD_LABEL(RML__real_5fadd);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fcos);
-extern RML_FORWARD_LABEL(RML__real_5fdiv);
-extern RML_FORWARD_LABEL(RML__real_5feq);
-extern RML_FORWARD_LABEL(RML__real_5fexp);
-extern RML_FORWARD_LABEL(RML__real_5ffloor);
-extern RML_FORWARD_LABEL(RML__real_5fceil);
-extern RML_FORWARD_LABEL(RML__real_5fge);
-extern RML_FORWARD_LABEL(RML__real_5fgt);
-extern RML_FORWARD_LABEL(RML__real_5fint);
-extern RML_FORWARD_LABEL(RML__real_5fle);
-extern RML_FORWARD_LABEL(RML__real_5fln);
-extern RML_FORWARD_LABEL(RML__real_5flt);
-extern RML_FORWARD_LABEL(RML__real_5fmax);
-extern RML_FORWARD_LABEL(RML__real_5fmin);
-extern RML_FORWARD_LABEL(RML__real_5fmod);
-extern RML_FORWARD_LABEL(RML__real_5fmul);
-extern RML_FORWARD_LABEL(RML__real_5fne);
-extern RML_FORWARD_LABEL(RML__real_5fneg);
-extern RML_FORWARD_LABEL(RML__real_5fpow);
-extern RML_FORWARD_LABEL(RML__real_5fsin);
-extern RML_FORWARD_LABEL(RML__real_5fsqrt);
-extern RML_FORWARD_LABEL(RML__real_5fstring);
-extern RML_FORWARD_LABEL(RML__real_5fsub);
-extern RML_FORWARD_LABEL(RML__real_5fasin);
-extern RML_FORWARD_LABEL(RML__real_5facos);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fatan2);
-extern RML_FORWARD_LABEL(RML__real_5fcosh);
-extern RML_FORWARD_LABEL(RML__real_5flog);
-extern RML_FORWARD_LABEL(RML__real_5flog10);
-extern RML_FORWARD_LABEL(RML__real_5fsinh);
-extern RML_FORWARD_LABEL(RML__real_5ftanh);
-/* java named */
-#define RML__realAbs    RML__real_5fabs
-#define RML__realAdd    RML__real_5fadd
-#define RML__realAtan   RML__real_5fatan
-#define RML__realCos    RML__real_5fcos
-#define RML__realDiv    RML__real_5fdiv
-#define RML__realEq     RML__real_5feq
-#define RML__realExp    RML__real_5fexp
-#define RML__realFloor  RML__real_5ffloor
-#define RML__realCeil   RML__real_5fceil
-#define RML__realGe     RML__real_5fge
-#define RML__realGt     RML__real_5fgt
-#define RML__realInt    RML__real_5fint
-#define RML__realLe     RML__real_5fle
-#define RML__realLn     RML__real_5fln
-#define RML__realLt     RML__real_5flt
-#define RML__realMax    RML__real_5fmax
-#define RML__realMin    RML__real_5fmin
-#define RML__realMod    RML__real_5fmod
-#define RML__realMul    RML__real_5fmul
-#define RML__realNe     RML__real_5fne
-#define RML__realNeg    RML__real_5fneg
-#define RML__realPow    RML__real_5fpow
-#define RML__realSin    RML__real_5fsin
-#define RML__realSqrt   RML__real_5fsqrt
-#define RML__realString RML__real_5fstring
-#define RML__realSub    RML__real_5fsub
-#define RML__realAsin   RML__real_5fasin
-#define RML__realAcos   RML__real_5facos
-#define RML__realAtan2  RML__real_5fatan2
-#define RML__realCosh   RML__real_5fcosh
-#define RML__realLog    RML__real_5flog
-#define RML__realLog10  RML__real_5flog10
-#define RML__realSinh   RML__real_5fsinh
-#define RML__realTanh   RML__real_5ftanh
-
-/* strings */
-extern RML_FORWARD_LABEL(RML__string_5fappend);
-extern RML_FORWARD_LABEL(RML__string_5fint);
-extern RML_FORWARD_LABEL(RML__string_5flength);
-extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
-/* java named */
-#define RML__stringAppend RML__string_5fappend
-#define RML__stringInt    RML__string_5fint
-#define RML__stringLength RML__string_5flength
-#define RML__stringAppendList RML__string_5fappend_5flist
-#define RML__stringDelimitList RML__string_5fdelimit_5flist
-
-/* declarative vectors */
-extern RML_FORWARD_LABEL(RML__vector_5flength);
-extern RML_FORWARD_LABEL(RML__vector_5flist);
-extern RML_FORWARD_LABEL(RML__vector_5fnth);
-extern RML_FORWARD_LABEL(RML__vector_5fget);
-extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
-extern RML_FORWARD_LABEL(RML__vector_5fupdate);
-extern RML_FORWARD_LABEL(RML__vector_5fcreate);
-extern RML_FORWARD_LABEL(RML__vector_5fadd);
-extern RML_FORWARD_LABEL(RML__vector_5farray);
-extern RML_FORWARD_LABEL(RML__vector_5fcopy);
-/* java named */
-#define RML__vectorLength RML__vector_5flength
-#define RML__vectorList   RML__vector_5flist
-#define RML__vectorNth    RML__vector_5fnth
-#define RML__vectorGet    RML__vector_5fget
-#define RML__vectorSetNth RML__vector_5fsetnth
-#define RML__vectorUpdate RML__vector_5fupdate
-#define RML__vectorCreate RML__vector_5fcreate
-#define RML__vectorAdd    RML__vector_5fadd
-#define RML__vectorArray  RML__vector_5farray
-#define RML__vectorCopy   RML__vector_5fcopy
-
-/* mutable arrays */
-extern RML_FORWARD_LABEL(RML__array_5flength);
-extern RML_FORWARD_LABEL(RML__array_5flist);
-extern RML_FORWARD_LABEL(RML__array_5fnth);
-extern RML_FORWARD_LABEL(RML__array_5fget);
-extern RML_FORWARD_LABEL(RML__array_5fsetnth);
-extern RML_FORWARD_LABEL(RML__array_5fupdate);
-extern RML_FORWARD_LABEL(RML__array_5fcreate);
-extern RML_FORWARD_LABEL(RML__array_5fadd);
-extern RML_FORWARD_LABEL(RML__array_5fvector);
-extern RML_FORWARD_LABEL(RML__array_5fcopy);
-/* java named */
-#define RML__arrayLength RML__array_5flength
-#define RML__arrayList   RML__array_5flist
-#define RML__arrayNth    RML__array_5fnth
-#define RML__arrayGet    RML__array_5fget
-#define RML__arraySetNth RML__array_5fsetnth
-#define RML__arrayUpdate RML__array_5fupdate
-#define RML__arrayCreate RML__array_5fcreate
-#define RML__arrayAdd    RML__array_5fadd
-#define RML__arrayVector RML__array_5fvector
-#define RML__arrayCopy   RML__array_5fcopy
-
-/* if expressions */
-extern RML_FORWARD_LABEL(RML__if_5fexp);
-#define RML__ifExp   RML__if_5fexp
-
-/* misc */
-extern RML_FORWARD_LABEL(RML__clock);
-extern RML_FORWARD_LABEL(RML__print);
-extern RML_FORWARD_LABEL(RML__tick);
-extern RML_FORWARD_LABEL(RML__unique);
-extern RML_FORWARD_LABEL(RML__enable_5ftrace);
-extern RML_FORWARD_LABEL(RML__disable_5ftrace);
-extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
-/* java names */
-#define RML__enableTrace  RML__enable_5ftrace
-#define RML__disableTrace RML__disable_5ftrace
-
-
-/* debugging */
-/* let these relation be available in all rml libraries */
-/* however their code depends on _RMLDB_DEFINED_ */
-extern RML_FORWARD_LABEL(RML__debug_5fprint);
-extern RML_FORWARD_LABEL(RML__debug);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
-extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
-
-extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
-#ifndef _RMLDB_COMMAND_H_
-#define _RMLDB_COMMAND_H_
-
-/* the commands accepted by the debugger */
-#define RMLDB_CMD_NONE 							0000
-#define RMLDB_CMD_BREAKPOINT 					1000
-#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
-#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
-#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
-#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
-#define RMLDB_CMD_STRING_BREAKPOINT 			1005
-#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
-#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
-#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
-#define RMLDB_CMD_STACK							1009
-#define RMLDB_CMD_VARIABLE_VALUE				1010
-#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
-#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
-#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
-
-#define RMLDB_CMD_RESUME						2000
-#define RMLDB_CMD_STEP							2001
-#define RMLDB_CMD_STEP_OVER						2002
-#define RMLDB_CMD_STEP_RETURN					2003
-#define RMLDB_CMD_RUN							2004
-#define RMLDB_CMD_QUIT							2005
-
-/* the response of the debugger to commands */
-#define RMLDB_REPLY_OK							"$ok"
-#define RMLDB_REPLY_ERROR						"$err"
-
-/* the signals accepted by the debugger  */
-#define RMLDB_SIGNAL_SUSPEND					"$u"
-#define RMLDB_SIGNAL_QUIT						"$q"
-
-
-/* the events send by the debugger to the Eclipse UI */
-#define RMLDB_EVENT_START						"$t"
-#define RMLDB_EVENT_READY						"$rdy"
-#define RMLDB_EVENT_STEP						"$s"
-#define RMLDB_EVENT_STEP_OVER					"$o"
-#define RMLDB_EVENT_STEP_RETURN					"$n"
-#define RMLDB_EVENT_RUN							"$r"
-#define RMLDB_EVENT_QUIT						"$q"
-#define RMLDB_EVENT_SUSPEND						"$u"
-#define RMLDB_EVENT_BREAKPOINT					"$b"
-#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
-#define RMLDB_EVENT_ERROR						"$err"
-
-typedef struct rmldb_command_t
-{
-	int ty;   /* the command type */
-	union 
-	{
-		struct brkFile      	 { char *file; int   line;   		} brkFile;
-		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
-		struct brkString		 { char *filter;             		} brkString;
-        struct brkFailure        { char *filter;                    } brkFailure;        
-		struct varValue			 { char *name;       	    		} varValue;
-		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
-		struct frameVarValue     { int frame; int nr;				} frameVarValue;
-		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
-	} data;
-} rmldb_command_type;
-
-
-extern rmldb_command_type* rmldb_current_command;
-
-extern rmldb_command_type* rmldb_mk_cmd(int ty);
-extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
-extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
-extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
-extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
-extern int rmldb_freeCommand(rmldb_command_type* cmd);
-
-#endif /* _RMLDB_COMMAND_H_*/
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-
-/*
- * [ rml-socket.h ] 
- * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
- * - creation 2007-02-24
- *   + interface for Windows and Linux sockets
- *   + all things in this file start with rmldb_socket_*
- * - last modified 2007-02-24
- *****************************************************************************/
-
-#ifdef RML_DEBUG
-#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-/*********** MINGW32 && MSVC stuff **********/
-#include <winsock2.h>
-
-#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
-#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
-#define _rmldb_socket_close closesocket
-#define _rmldb_socket_errorno WSAGetLastError()
-
-#else /***************** unix stuff ***************/
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/unistd.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define _rmldb_socket_send(x,y,z) write(x,y,z)
-#define _rmldb_socket_recv(x,y,z) read(x,y,z)
-#define _rmldb_socket_close close
-#define _rmldb_socket_errorno errno
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-
-#endif
-
-/* 
- * set to 1 to have debugging or to 0 to 
- * disable debugging of the socket communication
- */
-extern int   rmldb_socket_debug;
-/* 
- * initialize the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_initialize_library(void);  
-/* 
- * cleanups the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_cleanup_library(void);  
-
-/* 
- * get a socket 
- * returns -1 or the socket
- */
-extern int   rmldb_socket_get(void);
-
-/* 
- * binds the given socket on localhost and given port
- * performs bind and listen
- * returns -1 on error and 0 on success
- */
-extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
-/* 
- * performs accept on the given socket 
- * returns the new socket or -1 on error
- */
-extern int   rmldb_socket_accept(int socket);
-
-/* 
- * close the socket 
- * returns -1 for error or 0 for no error 
- */
-extern int   rmldb_socket_close(int socket); 
-
-/* send to socket with error handling */
-extern int rmldb_socket_outln(int sock, char *msg);
-extern int rmldb_socket_out(int sock, char *msg);
-
-#endif
-/* handler.h */
-#ifndef HANDLER_H_
-#define HANDLER_H_
-
-extern int   aaerror(char*);
-extern int   aaparse(void);
-extern int   aadebug;
-
-#ifdef RML_DEBUG
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-
-#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
-#include <signal.h>
-#endif
-
-#else /***************** unix stuff ***************/
-#include <signal.h>
-#endif /* unix vs windows stuff */
-
-/* adrpo - debugger global variables */
-extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
-extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
-extern int   rmldb_event_port;  /* listen on this port and send event to the client */
-extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
-
-typedef struct rmldb_communication
-{
-	int   cmd_bind_sock;     /* bind and accept on this socket */
-	int   cmd_sock;          /* listen for commands on this socket */
-	int   reply_bind_sock;   /* bind and accept on this socket */
-	int   reply_sock;        /* send reply of commands to this socket */	
-	int   event_bind_sock;   /* bind and accept on this socket */
-	int   event_sock;        /* send output to this port */
-	int   signal_bind_sock;  /* bind and accept on this socket */
-	int   signal_sock;       /* listen to async events from client */
-} rmldb_communication_type;
-
-extern rmldb_communication_type rmldb_communicator;
-
-extern int rmldb_last_command;
-extern int rmldb_startSignalHandler(void* arg);
-extern int rmldb_endSignalHandler(void);
-extern int rmldb_interpretCommand(void);
-extern int rmldb_executeCommand(rmldb_command_type* cmd);
-extern int rmldb_sendEvent(char* event);
-extern int rmldb_sendReply(char* reply);
-
-#endif /* RML_DEBUG */
-
-#endif /*HANDLER_H_*/
+
+/*
+ * rml-predef.h
+ */
+
+extern void rml_prim_motor(rml_labptr_t);
+extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
+extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
+/* let the print relation be available for non-debug-version-rml-library also */
+extern void rmldb_var_print(void *p);
+
+/*
+ * Standard procedures
+ * adrpo added Java named RML buildin relations 2005-11-10
+ */
+
+/* roots */
+extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
+extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
+/* java named */
+#define RML__setGlobalRoot  RML__set_5fglobal_5froot
+#define RML__getGlobalRoot  RML__get_5fglobal_5froot
+
+/* references */
+extern RML_FORWARD_LABEL(RML__reference_5feq);
+extern RML_FORWARD_LABEL(RML__reference_5finteger);
+extern RML_FORWARD_LABEL(RML__reference_5fupdate);
+extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
+extern RML_FORWARD_LABEL(RML__reference_5fshare);
+/* java named */
+#define RML__referenceEq       RML__reference_5feq
+#define RML__referenceInteger  RML__reference_5finteger
+#define RML__referenceUpdate   RML__reference_5fupdate
+#define RML__referenceSetNth   RML__reference_5fsetnth
+#define RML__referenceShare    RML__reference_5fshare
+
+/* values */
+extern RML_FORWARD_LABEL(RML__value_5fconstructor);
+extern RML_FORWARD_LABEL(RML__value_5fslots);
+extern RML_FORWARD_LABEL(RML__value_5feq);
+extern RML_FORWARD_LABEL(RML__value_5fmatch);
+extern RML_FORWARD_LABEL(RML__value_5fhash);
+extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
+/* java named */
+#define RML__valueConstructor RML__value_5fconstructor
+#define RML__valueSlots       RML__value_5fslots
+#define RML__valueEq          RML__value_5feq
+#define RML__valueMatch       RML__value_5fmatch
+#define RML__valueHash        RML__value_5fhash
+#define RML__valueHashMod     RML__value_5fhash_5fmod
+
+/* booleans */
+extern RML_FORWARD_LABEL(RML__bool_5fand);
+extern RML_FORWARD_LABEL(RML__bool_5fnot);
+extern RML_FORWARD_LABEL(RML__bool_5for);
+extern RML_FORWARD_LABEL(RML__bool_5feq);
+extern RML_FORWARD_LABEL(RML__bool_5fstring);
+/* java named */
+#define RML__boolAnd    RML__bool_5fand
+#define RML__boolNot    RML__bool_5fnot
+#define RML__boolOr     RML__bool_5for
+#define RML__boolEq     RML__bool_5feq
+#define RML__boolString RML__bool_5fstring
+
+/* chars */
+extern RML_FORWARD_LABEL(RML__int_5fint);
+extern RML_FORWARD_LABEL(RML__list_5fstring);
+extern RML_FORWARD_LABEL(RML__string_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fnth);
+extern RML_FORWARD_LABEL(RML__string_5fget);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth);
+extern RML_FORWARD_LABEL(RML__string_5fupdate);
+extern RML_FORWARD_LABEL(RML__string_5fequal);
+extern RML_FORWARD_LABEL(RML__string_5fcompare);
+/* hash functions */
+extern RML_FORWARD_LABEL(RML__string_5fhash);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
+#define RML__char_5fint	RML__int_5fint
+#define RML__int_5fchar	RML__int_5fint
+/* java named */
+#define RML__intChar        RML__int_5fint
+#define RML__charInt        RML__int_5fint
+#define RML__listString     RML__list_5fstring
+#define RML__stringList     RML__string_5flist
+#define RML__stringNth      RML__string_5fnth
+#define RML__stringGet      RML__string_5fget
+#define RML__stringSetNth   RML__string_5fset_5fnth
+#define RML__stringUpdate   RML__string_5fupdate
+#define RML__stringEqual    RML__string_5fequal
+#define RML__stringCompare  RML__string_5fcompare
+#define RML__stringEq       RML__string_5fequal
+#define RML__string_5feq    RML__string_5fequal
+/* hash functions */
+#define RML__stringHash     RML__string_5fhash
+#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
+#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
+
+/* string chars */
+extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
+extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
+/* java named */
+#define RML__stringCharInt           RML__string_5fchar_5fint
+#define RML__intStringChar           RML__int_5fstring_5fchar
+#define RML__listStringChar          RML__list_5fstring_5fchar
+#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
+#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
+#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
+#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
+#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
+#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
+
+extern RML_FORWARD_LABEL(RML__int_5fabs);
+extern RML_FORWARD_LABEL(RML__int_5fadd);
+extern RML_FORWARD_LABEL(RML__int_5fdiv);
+extern RML_FORWARD_LABEL(RML__int_5feq);
+extern RML_FORWARD_LABEL(RML__int_5fge);
+extern RML_FORWARD_LABEL(RML__int_5fgt);
+extern RML_FORWARD_LABEL(RML__int_5fle);
+extern RML_FORWARD_LABEL(RML__int_5flt);
+extern RML_FORWARD_LABEL(RML__int_5fmax);
+extern RML_FORWARD_LABEL(RML__int_5fmin);
+extern RML_FORWARD_LABEL(RML__int_5fmod);
+extern RML_FORWARD_LABEL(RML__int_5fmul);
+extern RML_FORWARD_LABEL(RML__int_5fne);
+extern RML_FORWARD_LABEL(RML__int_5fneg);
+extern RML_FORWARD_LABEL(RML__int_5freal);
+extern RML_FORWARD_LABEL(RML__int_5fstring);
+extern RML_FORWARD_LABEL(RML__int_5fsub);
+/* bit operations */
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
+/* java named */
+#define RML__intAbs       RML__int_5fabs
+#define RML__intAdd       RML__int_5fadd
+#define RML__intDiv       RML__int_5fdiv
+#define RML__intEq        RML__int_5feq
+#define RML__intGe        RML__int_5fge
+#define RML__intGt        RML__int_5fgt
+#define RML__intLe        RML__int_5fle
+#define RML__intLt        RML__int_5flt
+#define RML__intMax       RML__int_5fmax
+#define RML__intMin       RML__int_5fmin
+#define RML__intMod       RML__int_5fmod
+#define RML__intMul       RML__int_5fmul
+#define RML__intNe        RML__int_5fne
+#define RML__intNeg       RML__int_5fneg
+#define RML__intReal      RML__int_5freal
+#define RML__intString    RML__int_5fstring
+#define RML__intSub       RML__int_5fsub
+/* bit operations */
+#define RML__intBitNot    RML__int_5fbit_5fnot
+#define RML__intBitAnd    RML__int_5fbit_5fand
+#define RML__intBitOr     RML__int_5fbit_5for
+#define RML__intBitXor    RML__int_5fbit_5fxor
+#define RML__intBitLShift RML__int_5fbit_5flshift
+#define RML__intBitRShift RML__int_5fbit_5frshift
+
+
+/* lists */
+extern RML_FORWARD_LABEL(RML__list_5fappend);
+extern RML_FORWARD_LABEL(RML__list_5fdelete);
+extern RML_FORWARD_LABEL(RML__list_5flength);
+extern RML_FORWARD_LABEL(RML__list_5fmember);
+extern RML_FORWARD_LABEL(RML__list_5fnth);
+extern RML_FORWARD_LABEL(RML__list_5fget);
+extern RML_FORWARD_LABEL(RML__list_5freverse);
+extern RML_FORWARD_LABEL(RML__list_5fvector);
+extern RML_FORWARD_LABEL(RML__list_5farray);
+extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
+/* java named */
+#define RML__listAppend       RML__list_5fappend
+#define RML__listDelete       RML__list_5fdelete
+#define RML__listLength       RML__list_5flength
+#define RML__listMember       RML__list_5fmember
+#define RML__listNth          RML__list_5fnth
+#define RML__listGet          RML__list_5fget
+#define RML__listReverse      RML__list_5freverse
+#define RML__listVector       RML__list_5fvector
+#define RML__listArray        RML__list_5farray
+#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
+
+/* logical variables */
+extern RML_FORWARD_LABEL(RML__lvar_5fget);
+extern RML_FORWARD_LABEL(RML__lvar_5fnew);
+extern RML_FORWARD_LABEL(RML__lvar_5fset);
+/* java named */
+#define RML__lvarGet RML__lvar_5fget
+#define RML__lvarNew RML__lvar_5fnew
+#define RML__lvarSet RML__lvar_5fset
+
+/* reals */
+extern RML_FORWARD_LABEL(RML__real_5fabs);
+extern RML_FORWARD_LABEL(RML__real_5fadd);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fcos);
+extern RML_FORWARD_LABEL(RML__real_5fdiv);
+extern RML_FORWARD_LABEL(RML__real_5feq);
+extern RML_FORWARD_LABEL(RML__real_5fexp);
+extern RML_FORWARD_LABEL(RML__real_5ffloor);
+extern RML_FORWARD_LABEL(RML__real_5fceil);
+extern RML_FORWARD_LABEL(RML__real_5fge);
+extern RML_FORWARD_LABEL(RML__real_5fgt);
+extern RML_FORWARD_LABEL(RML__real_5fint);
+extern RML_FORWARD_LABEL(RML__real_5fle);
+extern RML_FORWARD_LABEL(RML__real_5fln);
+extern RML_FORWARD_LABEL(RML__real_5flt);
+extern RML_FORWARD_LABEL(RML__real_5fmax);
+extern RML_FORWARD_LABEL(RML__real_5fmin);
+extern RML_FORWARD_LABEL(RML__real_5fmod);
+extern RML_FORWARD_LABEL(RML__real_5fmul);
+extern RML_FORWARD_LABEL(RML__real_5fne);
+extern RML_FORWARD_LABEL(RML__real_5fneg);
+extern RML_FORWARD_LABEL(RML__real_5fpow);
+extern RML_FORWARD_LABEL(RML__real_5fsin);
+extern RML_FORWARD_LABEL(RML__real_5fsqrt);
+extern RML_FORWARD_LABEL(RML__real_5fstring);
+extern RML_FORWARD_LABEL(RML__real_5fsub);
+extern RML_FORWARD_LABEL(RML__real_5fasin);
+extern RML_FORWARD_LABEL(RML__real_5facos);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fatan2);
+extern RML_FORWARD_LABEL(RML__real_5fcosh);
+extern RML_FORWARD_LABEL(RML__real_5flog);
+extern RML_FORWARD_LABEL(RML__real_5flog10);
+extern RML_FORWARD_LABEL(RML__real_5fsinh);
+extern RML_FORWARD_LABEL(RML__real_5ftanh);
+/* java named */
+#define RML__realAbs    RML__real_5fabs
+#define RML__realAdd    RML__real_5fadd
+#define RML__realAtan   RML__real_5fatan
+#define RML__realCos    RML__real_5fcos
+#define RML__realDiv    RML__real_5fdiv
+#define RML__realEq     RML__real_5feq
+#define RML__realExp    RML__real_5fexp
+#define RML__realFloor  RML__real_5ffloor
+#define RML__realCeil   RML__real_5fceil
+#define RML__realGe     RML__real_5fge
+#define RML__realGt     RML__real_5fgt
+#define RML__realInt    RML__real_5fint
+#define RML__realLe     RML__real_5fle
+#define RML__realLn     RML__real_5fln
+#define RML__realLt     RML__real_5flt
+#define RML__realMax    RML__real_5fmax
+#define RML__realMin    RML__real_5fmin
+#define RML__realMod    RML__real_5fmod
+#define RML__realMul    RML__real_5fmul
+#define RML__realNe     RML__real_5fne
+#define RML__realNeg    RML__real_5fneg
+#define RML__realPow    RML__real_5fpow
+#define RML__realSin    RML__real_5fsin
+#define RML__realSqrt   RML__real_5fsqrt
+#define RML__realString RML__real_5fstring
+#define RML__realSub    RML__real_5fsub
+#define RML__realAsin   RML__real_5fasin
+#define RML__realAcos   RML__real_5facos
+#define RML__realAtan2  RML__real_5fatan2
+#define RML__realCosh   RML__real_5fcosh
+#define RML__realLog    RML__real_5flog
+#define RML__realLog10  RML__real_5flog10
+#define RML__realSinh   RML__real_5fsinh
+#define RML__realTanh   RML__real_5ftanh
+
+/* strings */
+extern RML_FORWARD_LABEL(RML__string_5fappend);
+extern RML_FORWARD_LABEL(RML__string_5fint);
+extern RML_FORWARD_LABEL(RML__string_5flength);
+extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
+/* java named */
+#define RML__stringAppend RML__string_5fappend
+#define RML__stringInt    RML__string_5fint
+#define RML__stringLength RML__string_5flength
+#define RML__stringAppendList RML__string_5fappend_5flist
+#define RML__stringDelimitList RML__string_5fdelimit_5flist
+
+/* declarative vectors */
+extern RML_FORWARD_LABEL(RML__vector_5flength);
+extern RML_FORWARD_LABEL(RML__vector_5flist);
+extern RML_FORWARD_LABEL(RML__vector_5fnth);
+extern RML_FORWARD_LABEL(RML__vector_5fget);
+extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
+extern RML_FORWARD_LABEL(RML__vector_5fupdate);
+extern RML_FORWARD_LABEL(RML__vector_5fcreate);
+extern RML_FORWARD_LABEL(RML__vector_5fadd);
+extern RML_FORWARD_LABEL(RML__vector_5farray);
+extern RML_FORWARD_LABEL(RML__vector_5fcopy);
+/* java named */
+#define RML__vectorLength RML__vector_5flength
+#define RML__vectorList   RML__vector_5flist
+#define RML__vectorNth    RML__vector_5fnth
+#define RML__vectorGet    RML__vector_5fget
+#define RML__vectorSetNth RML__vector_5fsetnth
+#define RML__vectorUpdate RML__vector_5fupdate
+#define RML__vectorCreate RML__vector_5fcreate
+#define RML__vectorAdd    RML__vector_5fadd
+#define RML__vectorArray  RML__vector_5farray
+#define RML__vectorCopy   RML__vector_5fcopy
+
+/* mutable arrays */
+extern RML_FORWARD_LABEL(RML__array_5flength);
+extern RML_FORWARD_LABEL(RML__array_5flist);
+extern RML_FORWARD_LABEL(RML__array_5fnth);
+extern RML_FORWARD_LABEL(RML__array_5fget);
+extern RML_FORWARD_LABEL(RML__array_5fsetnth);
+extern RML_FORWARD_LABEL(RML__array_5fupdate);
+extern RML_FORWARD_LABEL(RML__array_5fcreate);
+extern RML_FORWARD_LABEL(RML__array_5fadd);
+extern RML_FORWARD_LABEL(RML__array_5fvector);
+extern RML_FORWARD_LABEL(RML__array_5fcopy);
+/* java named */
+#define RML__arrayLength RML__array_5flength
+#define RML__arrayList   RML__array_5flist
+#define RML__arrayNth    RML__array_5fnth
+#define RML__arrayGet    RML__array_5fget
+#define RML__arraySetNth RML__array_5fsetnth
+#define RML__arrayUpdate RML__array_5fupdate
+#define RML__arrayCreate RML__array_5fcreate
+#define RML__arrayAdd    RML__array_5fadd
+#define RML__arrayVector RML__array_5fvector
+#define RML__arrayCopy   RML__array_5fcopy
+
+/* if expressions */
+extern RML_FORWARD_LABEL(RML__if_5fexp);
+#define RML__ifExp   RML__if_5fexp
+
+/* misc */
+extern RML_FORWARD_LABEL(RML__clock);
+extern RML_FORWARD_LABEL(RML__print);
+extern RML_FORWARD_LABEL(RML__tick);
+extern RML_FORWARD_LABEL(RML__unique);
+extern RML_FORWARD_LABEL(RML__enable_5ftrace);
+extern RML_FORWARD_LABEL(RML__disable_5ftrace);
+extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
+/* java names */
+#define RML__enableTrace  RML__enable_5ftrace
+#define RML__disableTrace RML__disable_5ftrace
+
+
+/* debugging */
+/* let these relation be available in all rml libraries */
+/* however their code depends on _RMLDB_DEFINED_ */
+extern RML_FORWARD_LABEL(RML__debug_5fprint);
+extern RML_FORWARD_LABEL(RML__debug);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
+extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
+
+extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
+#ifndef _RMLDB_COMMAND_H_
+#define _RMLDB_COMMAND_H_
+
+/* the commands accepted by the debugger */
+#define RMLDB_CMD_NONE 							0000
+#define RMLDB_CMD_BREAKPOINT 					1000
+#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
+#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
+#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
+#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
+#define RMLDB_CMD_STRING_BREAKPOINT 			1005
+#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
+#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
+#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
+#define RMLDB_CMD_STACK							1009
+#define RMLDB_CMD_VARIABLE_VALUE				1010
+#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
+#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
+#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
+
+#define RMLDB_CMD_RESUME						2000
+#define RMLDB_CMD_STEP							2001
+#define RMLDB_CMD_STEP_OVER						2002
+#define RMLDB_CMD_STEP_RETURN					2003
+#define RMLDB_CMD_RUN							2004
+#define RMLDB_CMD_QUIT							2005
+
+/* the response of the debugger to commands */
+#define RMLDB_REPLY_OK							"$ok"
+#define RMLDB_REPLY_ERROR						"$err"
+
+/* the signals accepted by the debugger  */
+#define RMLDB_SIGNAL_SUSPEND					"$u"
+#define RMLDB_SIGNAL_QUIT						"$q"
+
+
+/* the events send by the debugger to the Eclipse UI */
+#define RMLDB_EVENT_START						"$t"
+#define RMLDB_EVENT_READY						"$rdy"
+#define RMLDB_EVENT_STEP						"$s"
+#define RMLDB_EVENT_STEP_OVER					"$o"
+#define RMLDB_EVENT_STEP_RETURN					"$n"
+#define RMLDB_EVENT_RUN							"$r"
+#define RMLDB_EVENT_QUIT						"$q"
+#define RMLDB_EVENT_SUSPEND						"$u"
+#define RMLDB_EVENT_BREAKPOINT					"$b"
+#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
+#define RMLDB_EVENT_ERROR						"$err"
+
+typedef struct rmldb_command_t
+{
+	int ty;   /* the command type */
+	union 
+	{
+		struct brkFile      	 { char *file; int   line;   		} brkFile;
+		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
+		struct brkString		 { char *filter;             		} brkString;
+        struct brkFailure        { char *filter;                    } brkFailure;        
+		struct varValue			 { char *name;       	    		} varValue;
+		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
+		struct frameVarValue     { int frame; int nr;				} frameVarValue;
+		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
+	} data;
+} rmldb_command_type;
+
+
+extern rmldb_command_type* rmldb_current_command;
+
+extern rmldb_command_type* rmldb_mk_cmd(int ty);
+extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
+extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
+extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
+extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
+extern int rmldb_freeCommand(rmldb_command_type* cmd);
+
+#endif /* _RMLDB_COMMAND_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+
+/*
+ * [ rml-socket.h ] 
+ * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+ * - creation 2007-02-24
+ *   + interface for Windows and Linux sockets
+ *   + all things in this file start with rmldb_socket_*
+ * - last modified 2007-02-24
+ *****************************************************************************/
+
+#ifdef RML_DEBUG
+#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+/*********** MINGW32 && MSVC stuff **********/
+#include <winsock2.h>
+
+#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
+#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
+#define _rmldb_socket_close closesocket
+#define _rmldb_socket_errorno WSAGetLastError()
+
+#else /***************** unix stuff ***************/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/unistd.h>
+#include <sys/stat.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define _rmldb_socket_send(x,y,z) write(x,y,z)
+#define _rmldb_socket_recv(x,y,z) read(x,y,z)
+#define _rmldb_socket_close close
+#define _rmldb_socket_errorno errno
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (-1)
+
+#endif
+
+/* 
+ * set to 1 to have debugging or to 0 to 
+ * disable debugging of the socket communication
+ */
+extern int   rmldb_socket_debug;
+/* 
+ * initialize the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_initialize_library(void);  
+/* 
+ * cleanups the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_cleanup_library(void);  
+
+/* 
+ * get a socket 
+ * returns -1 or the socket
+ */
+extern int   rmldb_socket_get(void);
+
+/* 
+ * binds the given socket on localhost and given port
+ * performs bind and listen
+ * returns -1 on error and 0 on success
+ */
+extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
+/* 
+ * performs accept on the given socket 
+ * returns the new socket or -1 on error
+ */
+extern int   rmldb_socket_accept(int socket);
+
+/* 
+ * close the socket 
+ * returns -1 for error or 0 for no error 
+ */
+extern int   rmldb_socket_close(int socket); 
+
+/* send to socket with error handling */
+extern int rmldb_socket_outln(int sock, char *msg);
+extern int rmldb_socket_out(int sock, char *msg);
+
+#endif
+/* handler.h */
+#ifndef HANDLER_H_
+#define HANDLER_H_
+
+extern int   aaerror(char*);
+extern int   aaparse(void);
+extern int   aadebug;
+
+#ifdef RML_DEBUG
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+
+#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
+#include <signal.h>
+#endif
+
+#else /***************** unix stuff ***************/
+#include <signal.h>
+#endif /* unix vs windows stuff */
+
+/* adrpo - debugger global variables */
+extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
+extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
+extern int   rmldb_event_port;  /* listen on this port and send event to the client */
+extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
+
+typedef struct rmldb_communication
+{
+	int   cmd_bind_sock;     /* bind and accept on this socket */
+	int   cmd_sock;          /* listen for commands on this socket */
+	int   reply_bind_sock;   /* bind and accept on this socket */
+	int   reply_sock;        /* send reply of commands to this socket */	
+	int   event_bind_sock;   /* bind and accept on this socket */
+	int   event_sock;        /* send output to this port */
+	int   signal_bind_sock;  /* bind and accept on this socket */
+	int   signal_sock;       /* listen to async events from client */
+} rmldb_communication_type;
+
+extern rmldb_communication_type rmldb_communicator;
+
+extern int rmldb_last_command;
+extern int rmldb_startSignalHandler(void* arg);
+extern int rmldb_endSignalHandler(void);
+extern int rmldb_interpretCommand(void);
+extern int rmldb_executeCommand(rmldb_command_type* cmd);
+extern int rmldb_sendEvent(char* event);
+extern int rmldb_sendReply(char* reply);
+
+#endif /* RML_DEBUG */
+
+#endif /*HANDLER_H_*/
 /***********************************************************
  [ load.h ] 
   - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
@@ -1731,110 +1731,110 @@ extern int   aarmldbdebug;
 extern int   aarmldb_lineno;
 
 #endif /* _RMLDB_LOAD_H_  */
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-/***********************************************************
- [ debug.h ] 
-  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
-  - creation 2002-10
-    + interface for rml debugging 
-    + this file contains all the functions for debugging 
-	+ all things in this file start with rmldb_
-  - last modified 2005-12-27
-************************************************************/
-#ifndef _RML_DEBUG_H_
-#define _RML_DEBUG_H_
-/* all these functions depends on RML_DEBUG macro */
-/************************************************************/
-
-#ifdef RML_DEBUG
-
-#include <stdio.h>
-#include <string.h>
-
-/* this file will be included in the generated rml.h */
-/* adrpo some useful defines. */
-#define RMLDB_SUCCESS  1
-#define RMLDB_FAILURE -1
-
-#define RMLDB_PROMPT "rml+mmc db@>"
-#define RMLDB_RUN         0
-#define RMLDB_STEP        1
-#define RMLDB_STEP_OVER   2
-#define RMLDB_STEP_RETURN	3
-#define RMLDB_BREAKPOINT  4
-#define RMLDB_TRACE_CALLS	5
-#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
-
-#define RMLDB_VAR_IN 0
-#define RMLDB_VAR_OUT 1
-
-extern int   rmldb_execution_type;
-extern int   rmldb_execution_startup_type;
-extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
-extern int   rmldb_depth_of_variable_print;
-extern int   rmldb_max_string_variable_print;
-/* location of current execution point */
-extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
-
-/* init/help/exit */
-extern int  rmldb_init(void);
-extern int  rmldb_end(void);
-extern void rmldb_exit(int status);
-extern int  rmldb_quit(char *line);
-
-/* breakpoints */
-extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
-
-/* variables */
-extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
-
-/* stack */
-extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
-extern int rmldb_push_stack_frame(
-			char* file, 
-			int charStart, int charEnd, 
-			int startLine, int startColumn, int endLine, int endColumn,					  
-			char* function,
-			char* call);
-extern int rmldb_pop_stack_frame(char gototype);
-
-#endif /* RML_DEBUG */
-
-#endif /* _RML_DEBUG_H_  */
-
-
-/* ending rml.h */
-#endif /*_RML_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+/***********************************************************
+ [ debug.h ] 
+  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+  - creation 2002-10
+    + interface for rml debugging 
+    + this file contains all the functions for debugging 
+	+ all things in this file start with rmldb_
+  - last modified 2005-12-27
+************************************************************/
+#ifndef _RML_DEBUG_H_
+#define _RML_DEBUG_H_
+/* all these functions depends on RML_DEBUG macro */
+/************************************************************/
+
+#ifdef RML_DEBUG
+
+#include <stdio.h>
+#include <string.h>
+
+/* this file will be included in the generated rml.h */
+/* adrpo some useful defines. */
+#define RMLDB_SUCCESS  1
+#define RMLDB_FAILURE -1
+
+#define RMLDB_PROMPT "rml+mmc db@>"
+#define RMLDB_RUN         0
+#define RMLDB_STEP        1
+#define RMLDB_STEP_OVER   2
+#define RMLDB_STEP_RETURN	3
+#define RMLDB_BREAKPOINT  4
+#define RMLDB_TRACE_CALLS	5
+#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
+
+#define RMLDB_VAR_IN 0
+#define RMLDB_VAR_OUT 1
+
+extern int   rmldb_execution_type;
+extern int   rmldb_execution_startup_type;
+extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
+extern int   rmldb_depth_of_variable_print;
+extern int   rmldb_max_string_variable_print;
+/* location of current execution point */
+extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
+
+/* init/help/exit */
+extern int  rmldb_init(void);
+extern int  rmldb_end(void);
+extern void rmldb_exit(int status);
+extern int  rmldb_quit(char *line);
+
+/* breakpoints */
+extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
+
+/* variables */
+extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
+
+/* stack */
+extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
+extern int rmldb_push_stack_frame(
+			char* file, 
+			int charStart, int charEnd, 
+			int startLine, int startColumn, int endLine, int endColumn,					  
+			char* function,
+			char* call);
+extern int rmldb_pop_stack_frame(char gototype);
+
+#endif /* RML_DEBUG */
+
+#endif /* _RML_DEBUG_H_  */
+
+
+/* ending rml.h */
+#endif /*_RML_H_*/
diff --git a/tools/rml64/include/plain/rml.h b/tools/rml64/include/plain/rml.h
index 8219cc99417ee8ae6c9f56b36c21b25887fff45f..07d08a777ecafadfd43c4694e98134bc3053b36a 100644
--- a/tools/rml64/include/plain/rml.h
+++ b/tools/rml64/include/plain/rml.h
@@ -6,11 +6,11 @@
 /* config.h for Intel x86_64 / Mingw64/32 / gcc */
 
 /* the following section was generated by repchk */
-typedef long long rml_sint_t;
-typedef unsigned long long rml_uint_t;
-#define RML_LOG2_SIZE_INT 3
-#define RML_SIZE_INT 8
-#define RML_SIZE_DBL 8
+typedef long long rml_sint_t;
+typedef unsigned long long rml_uint_t;
+#define RML_LOG2_SIZE_INT 3
+#define RML_SIZE_INT 8
+#define RML_SIZE_DBL 8
 /* #define RML_DBL_PAD */
 #define RML_DBL_STRICT /* conservative assumption */
 /* end of repchk-generated section */
@@ -40,9 +40,9 @@ typedef unsigned long long rml_uint_t;
 
 #define RML_GCCGOTO
 #define RML_GCCGOTO_NOSHIFT
-/* starting rml.h */
-#ifndef _RML_H_
-#define _RML_H_
+/* starting rml.h */
+#ifndef _RML_H_
+#define _RML_H_
 /* 
  * This file is part of OpenModelica.
  * 
@@ -824,645 +824,645 @@ extern void *rml_prim_gcalloc(rml_uint_t, rml_uint_t);
 
 
 
-
-/*
- * rml-predef.h
- */
-
-extern void rml_prim_motor(rml_labptr_t);
-extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
-extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
-/* let the print relation be available for non-debug-version-rml-library also */
-extern void rmldb_var_print(void *p);
-
-/*
- * Standard procedures
- * adrpo added Java named RML buildin relations 2005-11-10
- */
-
-/* roots */
-extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
-extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
-/* java named */
-#define RML__setGlobalRoot  RML__set_5fglobal_5froot
-#define RML__getGlobalRoot  RML__get_5fglobal_5froot
-
-/* references */
-extern RML_FORWARD_LABEL(RML__reference_5feq);
-extern RML_FORWARD_LABEL(RML__reference_5finteger);
-extern RML_FORWARD_LABEL(RML__reference_5fupdate);
-extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
-extern RML_FORWARD_LABEL(RML__reference_5fshare);
-/* java named */
-#define RML__referenceEq       RML__reference_5feq
-#define RML__referenceInteger  RML__reference_5finteger
-#define RML__referenceUpdate   RML__reference_5fupdate
-#define RML__referenceSetNth   RML__reference_5fsetnth
-#define RML__referenceShare    RML__reference_5fshare
-
-/* values */
-extern RML_FORWARD_LABEL(RML__value_5fconstructor);
-extern RML_FORWARD_LABEL(RML__value_5fslots);
-extern RML_FORWARD_LABEL(RML__value_5feq);
-extern RML_FORWARD_LABEL(RML__value_5fmatch);
-extern RML_FORWARD_LABEL(RML__value_5fhash);
-extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
-/* java named */
-#define RML__valueConstructor RML__value_5fconstructor
-#define RML__valueSlots       RML__value_5fslots
-#define RML__valueEq          RML__value_5feq
-#define RML__valueMatch       RML__value_5fmatch
-#define RML__valueHash        RML__value_5fhash
-#define RML__valueHashMod     RML__value_5fhash_5fmod
-
-/* booleans */
-extern RML_FORWARD_LABEL(RML__bool_5fand);
-extern RML_FORWARD_LABEL(RML__bool_5fnot);
-extern RML_FORWARD_LABEL(RML__bool_5for);
-extern RML_FORWARD_LABEL(RML__bool_5feq);
-extern RML_FORWARD_LABEL(RML__bool_5fstring);
-/* java named */
-#define RML__boolAnd    RML__bool_5fand
-#define RML__boolNot    RML__bool_5fnot
-#define RML__boolOr     RML__bool_5for
-#define RML__boolEq     RML__bool_5feq
-#define RML__boolString RML__bool_5fstring
-
-/* chars */
-extern RML_FORWARD_LABEL(RML__int_5fint);
-extern RML_FORWARD_LABEL(RML__list_5fstring);
-extern RML_FORWARD_LABEL(RML__string_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fnth);
-extern RML_FORWARD_LABEL(RML__string_5fget);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth);
-extern RML_FORWARD_LABEL(RML__string_5fupdate);
-extern RML_FORWARD_LABEL(RML__string_5fequal);
-extern RML_FORWARD_LABEL(RML__string_5fcompare);
-/* hash functions */
-extern RML_FORWARD_LABEL(RML__string_5fhash);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
-extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
-#define RML__char_5fint	RML__int_5fint
-#define RML__int_5fchar	RML__int_5fint
-/* java named */
-#define RML__intChar        RML__int_5fint
-#define RML__charInt        RML__int_5fint
-#define RML__listString     RML__list_5fstring
-#define RML__stringList     RML__string_5flist
-#define RML__stringNth      RML__string_5fnth
-#define RML__stringGet      RML__string_5fget
-#define RML__stringSetNth   RML__string_5fset_5fnth
-#define RML__stringUpdate   RML__string_5fupdate
-#define RML__stringEqual    RML__string_5fequal
-#define RML__stringCompare  RML__string_5fcompare
-#define RML__stringEq       RML__string_5fequal
-#define RML__string_5feq    RML__string_5fequal
-/* hash functions */
-#define RML__stringHash     RML__string_5fhash
-#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
-#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
-
-/* string chars */
-extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
-extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
-extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
-/* java named */
-#define RML__stringCharInt           RML__string_5fchar_5fint
-#define RML__intStringChar           RML__int_5fstring_5fchar
-#define RML__listStringChar          RML__list_5fstring_5fchar
-#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
-#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
-#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
-#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
-#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
-#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
-
-extern RML_FORWARD_LABEL(RML__int_5fabs);
-extern RML_FORWARD_LABEL(RML__int_5fadd);
-extern RML_FORWARD_LABEL(RML__int_5fdiv);
-extern RML_FORWARD_LABEL(RML__int_5feq);
-extern RML_FORWARD_LABEL(RML__int_5fge);
-extern RML_FORWARD_LABEL(RML__int_5fgt);
-extern RML_FORWARD_LABEL(RML__int_5fle);
-extern RML_FORWARD_LABEL(RML__int_5flt);
-extern RML_FORWARD_LABEL(RML__int_5fmax);
-extern RML_FORWARD_LABEL(RML__int_5fmin);
-extern RML_FORWARD_LABEL(RML__int_5fmod);
-extern RML_FORWARD_LABEL(RML__int_5fmul);
-extern RML_FORWARD_LABEL(RML__int_5fne);
-extern RML_FORWARD_LABEL(RML__int_5fneg);
-extern RML_FORWARD_LABEL(RML__int_5freal);
-extern RML_FORWARD_LABEL(RML__int_5fstring);
-extern RML_FORWARD_LABEL(RML__int_5fsub);
-/* bit operations */
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
-extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
-/* java named */
-#define RML__intAbs       RML__int_5fabs
-#define RML__intAdd       RML__int_5fadd
-#define RML__intDiv       RML__int_5fdiv
-#define RML__intEq        RML__int_5feq
-#define RML__intGe        RML__int_5fge
-#define RML__intGt        RML__int_5fgt
-#define RML__intLe        RML__int_5fle
-#define RML__intLt        RML__int_5flt
-#define RML__intMax       RML__int_5fmax
-#define RML__intMin       RML__int_5fmin
-#define RML__intMod       RML__int_5fmod
-#define RML__intMul       RML__int_5fmul
-#define RML__intNe        RML__int_5fne
-#define RML__intNeg       RML__int_5fneg
-#define RML__intReal      RML__int_5freal
-#define RML__intString    RML__int_5fstring
-#define RML__intSub       RML__int_5fsub
-/* bit operations */
-#define RML__intBitNot    RML__int_5fbit_5fnot
-#define RML__intBitAnd    RML__int_5fbit_5fand
-#define RML__intBitOr     RML__int_5fbit_5for
-#define RML__intBitXor    RML__int_5fbit_5fxor
-#define RML__intBitLShift RML__int_5fbit_5flshift
-#define RML__intBitRShift RML__int_5fbit_5frshift
-
-
-/* lists */
-extern RML_FORWARD_LABEL(RML__list_5fappend);
-extern RML_FORWARD_LABEL(RML__list_5fdelete);
-extern RML_FORWARD_LABEL(RML__list_5flength);
-extern RML_FORWARD_LABEL(RML__list_5fmember);
-extern RML_FORWARD_LABEL(RML__list_5fnth);
-extern RML_FORWARD_LABEL(RML__list_5fget);
-extern RML_FORWARD_LABEL(RML__list_5freverse);
-extern RML_FORWARD_LABEL(RML__list_5fvector);
-extern RML_FORWARD_LABEL(RML__list_5farray);
-extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
-/* java named */
-#define RML__listAppend       RML__list_5fappend
-#define RML__listDelete       RML__list_5fdelete
-#define RML__listLength       RML__list_5flength
-#define RML__listMember       RML__list_5fmember
-#define RML__listNth          RML__list_5fnth
-#define RML__listGet          RML__list_5fget
-#define RML__listReverse      RML__list_5freverse
-#define RML__listVector       RML__list_5fvector
-#define RML__listArray        RML__list_5farray
-#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
-
-/* logical variables */
-extern RML_FORWARD_LABEL(RML__lvar_5fget);
-extern RML_FORWARD_LABEL(RML__lvar_5fnew);
-extern RML_FORWARD_LABEL(RML__lvar_5fset);
-/* java named */
-#define RML__lvarGet RML__lvar_5fget
-#define RML__lvarNew RML__lvar_5fnew
-#define RML__lvarSet RML__lvar_5fset
-
-/* reals */
-extern RML_FORWARD_LABEL(RML__real_5fabs);
-extern RML_FORWARD_LABEL(RML__real_5fadd);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fcos);
-extern RML_FORWARD_LABEL(RML__real_5fdiv);
-extern RML_FORWARD_LABEL(RML__real_5feq);
-extern RML_FORWARD_LABEL(RML__real_5fexp);
-extern RML_FORWARD_LABEL(RML__real_5ffloor);
-extern RML_FORWARD_LABEL(RML__real_5fceil);
-extern RML_FORWARD_LABEL(RML__real_5fge);
-extern RML_FORWARD_LABEL(RML__real_5fgt);
-extern RML_FORWARD_LABEL(RML__real_5fint);
-extern RML_FORWARD_LABEL(RML__real_5fle);
-extern RML_FORWARD_LABEL(RML__real_5fln);
-extern RML_FORWARD_LABEL(RML__real_5flt);
-extern RML_FORWARD_LABEL(RML__real_5fmax);
-extern RML_FORWARD_LABEL(RML__real_5fmin);
-extern RML_FORWARD_LABEL(RML__real_5fmod);
-extern RML_FORWARD_LABEL(RML__real_5fmul);
-extern RML_FORWARD_LABEL(RML__real_5fne);
-extern RML_FORWARD_LABEL(RML__real_5fneg);
-extern RML_FORWARD_LABEL(RML__real_5fpow);
-extern RML_FORWARD_LABEL(RML__real_5fsin);
-extern RML_FORWARD_LABEL(RML__real_5fsqrt);
-extern RML_FORWARD_LABEL(RML__real_5fstring);
-extern RML_FORWARD_LABEL(RML__real_5fsub);
-extern RML_FORWARD_LABEL(RML__real_5fasin);
-extern RML_FORWARD_LABEL(RML__real_5facos);
-extern RML_FORWARD_LABEL(RML__real_5fatan);
-extern RML_FORWARD_LABEL(RML__real_5fatan2);
-extern RML_FORWARD_LABEL(RML__real_5fcosh);
-extern RML_FORWARD_LABEL(RML__real_5flog);
-extern RML_FORWARD_LABEL(RML__real_5flog10);
-extern RML_FORWARD_LABEL(RML__real_5fsinh);
-extern RML_FORWARD_LABEL(RML__real_5ftanh);
-/* java named */
-#define RML__realAbs    RML__real_5fabs
-#define RML__realAdd    RML__real_5fadd
-#define RML__realAtan   RML__real_5fatan
-#define RML__realCos    RML__real_5fcos
-#define RML__realDiv    RML__real_5fdiv
-#define RML__realEq     RML__real_5feq
-#define RML__realExp    RML__real_5fexp
-#define RML__realFloor  RML__real_5ffloor
-#define RML__realCeil   RML__real_5fceil
-#define RML__realGe     RML__real_5fge
-#define RML__realGt     RML__real_5fgt
-#define RML__realInt    RML__real_5fint
-#define RML__realLe     RML__real_5fle
-#define RML__realLn     RML__real_5fln
-#define RML__realLt     RML__real_5flt
-#define RML__realMax    RML__real_5fmax
-#define RML__realMin    RML__real_5fmin
-#define RML__realMod    RML__real_5fmod
-#define RML__realMul    RML__real_5fmul
-#define RML__realNe     RML__real_5fne
-#define RML__realNeg    RML__real_5fneg
-#define RML__realPow    RML__real_5fpow
-#define RML__realSin    RML__real_5fsin
-#define RML__realSqrt   RML__real_5fsqrt
-#define RML__realString RML__real_5fstring
-#define RML__realSub    RML__real_5fsub
-#define RML__realAsin   RML__real_5fasin
-#define RML__realAcos   RML__real_5facos
-#define RML__realAtan2  RML__real_5fatan2
-#define RML__realCosh   RML__real_5fcosh
-#define RML__realLog    RML__real_5flog
-#define RML__realLog10  RML__real_5flog10
-#define RML__realSinh   RML__real_5fsinh
-#define RML__realTanh   RML__real_5ftanh
-
-/* strings */
-extern RML_FORWARD_LABEL(RML__string_5fappend);
-extern RML_FORWARD_LABEL(RML__string_5fint);
-extern RML_FORWARD_LABEL(RML__string_5flength);
-extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
-extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
-/* java named */
-#define RML__stringAppend RML__string_5fappend
-#define RML__stringInt    RML__string_5fint
-#define RML__stringLength RML__string_5flength
-#define RML__stringAppendList RML__string_5fappend_5flist
-#define RML__stringDelimitList RML__string_5fdelimit_5flist
-
-/* declarative vectors */
-extern RML_FORWARD_LABEL(RML__vector_5flength);
-extern RML_FORWARD_LABEL(RML__vector_5flist);
-extern RML_FORWARD_LABEL(RML__vector_5fnth);
-extern RML_FORWARD_LABEL(RML__vector_5fget);
-extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
-extern RML_FORWARD_LABEL(RML__vector_5fupdate);
-extern RML_FORWARD_LABEL(RML__vector_5fcreate);
-extern RML_FORWARD_LABEL(RML__vector_5fadd);
-extern RML_FORWARD_LABEL(RML__vector_5farray);
-extern RML_FORWARD_LABEL(RML__vector_5fcopy);
-/* java named */
-#define RML__vectorLength RML__vector_5flength
-#define RML__vectorList   RML__vector_5flist
-#define RML__vectorNth    RML__vector_5fnth
-#define RML__vectorGet    RML__vector_5fget
-#define RML__vectorSetNth RML__vector_5fsetnth
-#define RML__vectorUpdate RML__vector_5fupdate
-#define RML__vectorCreate RML__vector_5fcreate
-#define RML__vectorAdd    RML__vector_5fadd
-#define RML__vectorArray  RML__vector_5farray
-#define RML__vectorCopy   RML__vector_5fcopy
-
-/* mutable arrays */
-extern RML_FORWARD_LABEL(RML__array_5flength);
-extern RML_FORWARD_LABEL(RML__array_5flist);
-extern RML_FORWARD_LABEL(RML__array_5fnth);
-extern RML_FORWARD_LABEL(RML__array_5fget);
-extern RML_FORWARD_LABEL(RML__array_5fsetnth);
-extern RML_FORWARD_LABEL(RML__array_5fupdate);
-extern RML_FORWARD_LABEL(RML__array_5fcreate);
-extern RML_FORWARD_LABEL(RML__array_5fadd);
-extern RML_FORWARD_LABEL(RML__array_5fvector);
-extern RML_FORWARD_LABEL(RML__array_5fcopy);
-/* java named */
-#define RML__arrayLength RML__array_5flength
-#define RML__arrayList   RML__array_5flist
-#define RML__arrayNth    RML__array_5fnth
-#define RML__arrayGet    RML__array_5fget
-#define RML__arraySetNth RML__array_5fsetnth
-#define RML__arrayUpdate RML__array_5fupdate
-#define RML__arrayCreate RML__array_5fcreate
-#define RML__arrayAdd    RML__array_5fadd
-#define RML__arrayVector RML__array_5fvector
-#define RML__arrayCopy   RML__array_5fcopy
-
-/* if expressions */
-extern RML_FORWARD_LABEL(RML__if_5fexp);
-#define RML__ifExp   RML__if_5fexp
-
-/* misc */
-extern RML_FORWARD_LABEL(RML__clock);
-extern RML_FORWARD_LABEL(RML__print);
-extern RML_FORWARD_LABEL(RML__tick);
-extern RML_FORWARD_LABEL(RML__unique);
-extern RML_FORWARD_LABEL(RML__enable_5ftrace);
-extern RML_FORWARD_LABEL(RML__disable_5ftrace);
-extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
-/* java names */
-#define RML__enableTrace  RML__enable_5ftrace
-#define RML__disableTrace RML__disable_5ftrace
-
-
-/* debugging */
-/* let these relation be available in all rml libraries */
-/* however their code depends on _RMLDB_DEFINED_ */
-extern RML_FORWARD_LABEL(RML__debug_5fprint);
-extern RML_FORWARD_LABEL(RML__debug);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
-extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
-extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
-
-extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
-#ifndef _RMLDB_COMMAND_H_
-#define _RMLDB_COMMAND_H_
-
-/* the commands accepted by the debugger */
-#define RMLDB_CMD_NONE 							0000
-#define RMLDB_CMD_BREAKPOINT 					1000
-#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
-#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
-#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
-#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
-#define RMLDB_CMD_STRING_BREAKPOINT 			1005
-#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
-#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
-#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
-#define RMLDB_CMD_STACK							1009
-#define RMLDB_CMD_VARIABLE_VALUE				1010
-#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
-#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
-#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
-
-#define RMLDB_CMD_RESUME						2000
-#define RMLDB_CMD_STEP							2001
-#define RMLDB_CMD_STEP_OVER						2002
-#define RMLDB_CMD_STEP_RETURN					2003
-#define RMLDB_CMD_RUN							2004
-#define RMLDB_CMD_QUIT							2005
-
-/* the response of the debugger to commands */
-#define RMLDB_REPLY_OK							"$ok"
-#define RMLDB_REPLY_ERROR						"$err"
-
-/* the signals accepted by the debugger  */
-#define RMLDB_SIGNAL_SUSPEND					"$u"
-#define RMLDB_SIGNAL_QUIT						"$q"
-
-
-/* the events send by the debugger to the Eclipse UI */
-#define RMLDB_EVENT_START						"$t"
-#define RMLDB_EVENT_READY						"$rdy"
-#define RMLDB_EVENT_STEP						"$s"
-#define RMLDB_EVENT_STEP_OVER					"$o"
-#define RMLDB_EVENT_STEP_RETURN					"$n"
-#define RMLDB_EVENT_RUN							"$r"
-#define RMLDB_EVENT_QUIT						"$q"
-#define RMLDB_EVENT_SUSPEND						"$u"
-#define RMLDB_EVENT_BREAKPOINT					"$b"
-#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
-#define RMLDB_EVENT_ERROR						"$err"
-
-typedef struct rmldb_command_t
-{
-	int ty;   /* the command type */
-	union 
-	{
-		struct brkFile      	 { char *file; int   line;   		} brkFile;
-		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
-		struct brkString		 { char *filter;             		} brkString;
-        struct brkFailure        { char *filter;                    } brkFailure;        
-		struct varValue			 { char *name;       	    		} varValue;
-		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
-		struct frameVarValue     { int frame; int nr;				} frameVarValue;
-		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
-	} data;
-} rmldb_command_type;
-
-
-extern rmldb_command_type* rmldb_current_command;
-
-extern rmldb_command_type* rmldb_mk_cmd(int ty);
-extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
-extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
-extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
-extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
-extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
-extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
-extern int rmldb_freeCommand(rmldb_command_type* cmd);
-
-#endif /* _RMLDB_COMMAND_H_*/
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-
-/*
- * [ rml-socket.h ] 
- * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
- * - creation 2007-02-24
- *   + interface for Windows and Linux sockets
- *   + all things in this file start with rmldb_socket_*
- * - last modified 2007-02-24
- *****************************************************************************/
-
-#ifdef RML_DEBUG
-#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-/*********** MINGW32 && MSVC stuff **********/
-#include <winsock2.h>
-
-#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
-#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
-#define _rmldb_socket_close closesocket
-#define _rmldb_socket_errorno WSAGetLastError()
-
-#else /***************** unix stuff ***************/
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/unistd.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define _rmldb_socket_send(x,y,z) write(x,y,z)
-#define _rmldb_socket_recv(x,y,z) read(x,y,z)
-#define _rmldb_socket_close close
-#define _rmldb_socket_errorno errno
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-
-#endif
-
-/* 
- * set to 1 to have debugging or to 0 to 
- * disable debugging of the socket communication
- */
-extern int   rmldb_socket_debug;
-/* 
- * initialize the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_initialize_library(void);  
-/* 
- * cleanups the socket library
- * returns -1 on error and 1 on success.
- */
-extern int   rmldb_socket_cleanup_library(void);  
-
-/* 
- * get a socket 
- * returns -1 or the socket
- */
-extern int   rmldb_socket_get(void);
-
-/* 
- * binds the given socket on localhost and given port
- * performs bind and listen
- * returns -1 on error and 0 on success
- */
-extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
-/* 
- * performs accept on the given socket 
- * returns the new socket or -1 on error
- */
-extern int   rmldb_socket_accept(int socket);
-
-/* 
- * close the socket 
- * returns -1 for error or 0 for no error 
- */
-extern int   rmldb_socket_close(int socket); 
-
-/* send to socket with error handling */
-extern int rmldb_socket_outln(int sock, char *msg);
-extern int rmldb_socket_out(int sock, char *msg);
-
-#endif
-/* handler.h */
-#ifndef HANDLER_H_
-#define HANDLER_H_
-
-extern int   aaerror(char*);
-extern int   aaparse(void);
-extern int   aadebug;
-
-#ifdef RML_DEBUG
-
-#if defined(__MINGW32__) || defined(_MSC_VER)
-
-#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
-#include <signal.h>
-#endif
-
-#else /***************** unix stuff ***************/
-#include <signal.h>
-#endif /* unix vs windows stuff */
-
-/* adrpo - debugger global variables */
-extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
-extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
-extern int   rmldb_event_port;  /* listen on this port and send event to the client */
-extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
-
-typedef struct rmldb_communication
-{
-	int   cmd_bind_sock;     /* bind and accept on this socket */
-	int   cmd_sock;          /* listen for commands on this socket */
-	int   reply_bind_sock;   /* bind and accept on this socket */
-	int   reply_sock;        /* send reply of commands to this socket */	
-	int   event_bind_sock;   /* bind and accept on this socket */
-	int   event_sock;        /* send output to this port */
-	int   signal_bind_sock;  /* bind and accept on this socket */
-	int   signal_sock;       /* listen to async events from client */
-} rmldb_communication_type;
-
-extern rmldb_communication_type rmldb_communicator;
-
-extern int rmldb_last_command;
-extern int rmldb_startSignalHandler(void* arg);
-extern int rmldb_endSignalHandler(void);
-extern int rmldb_interpretCommand(void);
-extern int rmldb_executeCommand(rmldb_command_type* cmd);
-extern int rmldb_sendEvent(char* event);
-extern int rmldb_sendReply(char* reply);
-
-#endif /* RML_DEBUG */
-
-#endif /*HANDLER_H_*/
+
+/*
+ * rml-predef.h
+ */
+
+extern void rml_prim_motor(rml_labptr_t);
+extern int rml_prim_once(rml_labptr_t);	/* C calls RML */
+extern RML_FORWARD_LABEL(Main__main);	/* user code's entry point */
+/* let the print relation be available for non-debug-version-rml-library also */
+extern void rmldb_var_print(void *p);
+
+/*
+ * Standard procedures
+ * adrpo added Java named RML buildin relations 2005-11-10
+ */
+
+/* roots */
+extern RML_FORWARD_LABEL(RML__set_5fglobal_5froot);
+extern RML_FORWARD_LABEL(RML__get_5fglobal_5froot);
+/* java named */
+#define RML__setGlobalRoot  RML__set_5fglobal_5froot
+#define RML__getGlobalRoot  RML__get_5fglobal_5froot
+
+/* references */
+extern RML_FORWARD_LABEL(RML__reference_5feq);
+extern RML_FORWARD_LABEL(RML__reference_5finteger);
+extern RML_FORWARD_LABEL(RML__reference_5fupdate);
+extern RML_FORWARD_LABEL(RML__reference_5fsetnth);
+extern RML_FORWARD_LABEL(RML__reference_5fshare);
+/* java named */
+#define RML__referenceEq       RML__reference_5feq
+#define RML__referenceInteger  RML__reference_5finteger
+#define RML__referenceUpdate   RML__reference_5fupdate
+#define RML__referenceSetNth   RML__reference_5fsetnth
+#define RML__referenceShare    RML__reference_5fshare
+
+/* values */
+extern RML_FORWARD_LABEL(RML__value_5fconstructor);
+extern RML_FORWARD_LABEL(RML__value_5fslots);
+extern RML_FORWARD_LABEL(RML__value_5feq);
+extern RML_FORWARD_LABEL(RML__value_5fmatch);
+extern RML_FORWARD_LABEL(RML__value_5fhash);
+extern RML_FORWARD_LABEL(RML__value_5fhash_5fmod);
+/* java named */
+#define RML__valueConstructor RML__value_5fconstructor
+#define RML__valueSlots       RML__value_5fslots
+#define RML__valueEq          RML__value_5feq
+#define RML__valueMatch       RML__value_5fmatch
+#define RML__valueHash        RML__value_5fhash
+#define RML__valueHashMod     RML__value_5fhash_5fmod
+
+/* booleans */
+extern RML_FORWARD_LABEL(RML__bool_5fand);
+extern RML_FORWARD_LABEL(RML__bool_5fnot);
+extern RML_FORWARD_LABEL(RML__bool_5for);
+extern RML_FORWARD_LABEL(RML__bool_5feq);
+extern RML_FORWARD_LABEL(RML__bool_5fstring);
+/* java named */
+#define RML__boolAnd    RML__bool_5fand
+#define RML__boolNot    RML__bool_5fnot
+#define RML__boolOr     RML__bool_5for
+#define RML__boolEq     RML__bool_5feq
+#define RML__boolString RML__bool_5fstring
+
+/* chars */
+extern RML_FORWARD_LABEL(RML__int_5fint);
+extern RML_FORWARD_LABEL(RML__list_5fstring);
+extern RML_FORWARD_LABEL(RML__string_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fnth);
+extern RML_FORWARD_LABEL(RML__string_5fget);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth);
+extern RML_FORWARD_LABEL(RML__string_5fupdate);
+extern RML_FORWARD_LABEL(RML__string_5fequal);
+extern RML_FORWARD_LABEL(RML__string_5fcompare);
+/* hash functions */
+extern RML_FORWARD_LABEL(RML__string_5fhash);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fdjb2);
+extern RML_FORWARD_LABEL(RML__string_5fhash_5fsdbm);
+#define RML__char_5fint	RML__int_5fint
+#define RML__int_5fchar	RML__int_5fint
+/* java named */
+#define RML__intChar        RML__int_5fint
+#define RML__charInt        RML__int_5fint
+#define RML__listString     RML__list_5fstring
+#define RML__stringList     RML__string_5flist
+#define RML__stringNth      RML__string_5fnth
+#define RML__stringGet      RML__string_5fget
+#define RML__stringSetNth   RML__string_5fset_5fnth
+#define RML__stringUpdate   RML__string_5fupdate
+#define RML__stringEqual    RML__string_5fequal
+#define RML__stringCompare  RML__string_5fcompare
+#define RML__stringEq       RML__string_5fequal
+#define RML__string_5feq    RML__string_5fequal
+/* hash functions */
+#define RML__stringHash     RML__string_5fhash
+#define RML__stringHashDjb2 RML__string_5fhash_5fdjb2
+#define RML__stringHashSdbm RML__string_5fhash_5fsdbm
+
+/* string chars */
+extern RML_FORWARD_LABEL(RML__string_5fchar_5fint);
+extern RML_FORWARD_LABEL(RML__int_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__list_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5flist_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fget_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fsetnth_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fupdate_5fstring_5fchar);
+extern RML_FORWARD_LABEL(RML__string_5fchar_5flist_5fstring);
+/* java named */
+#define RML__stringCharInt           RML__string_5fchar_5fint
+#define RML__intStringChar           RML__int_5fstring_5fchar
+#define RML__listStringChar          RML__list_5fstring_5fchar
+#define RML__stringListStringChar    RML__string_5flist_5fstring_5fchar
+#define RML__stringNthStringChar     RML__string_5fnth_5fstring_5fchar
+#define RML__stringGetStringChar     RML__string_5fget_5fstring_5fchar
+#define RML__stringSetNthStringChar  RML__string_5fsetnth_5fstring_5fchar
+#define RML__stringUpdateStringChar  RML__string_5fupdate_5fstring_5fchar
+#define RML__stringCharListString    RML__string_5fchar_5flist_5fstring
+
+extern RML_FORWARD_LABEL(RML__int_5fabs);
+extern RML_FORWARD_LABEL(RML__int_5fadd);
+extern RML_FORWARD_LABEL(RML__int_5fdiv);
+extern RML_FORWARD_LABEL(RML__int_5feq);
+extern RML_FORWARD_LABEL(RML__int_5fge);
+extern RML_FORWARD_LABEL(RML__int_5fgt);
+extern RML_FORWARD_LABEL(RML__int_5fle);
+extern RML_FORWARD_LABEL(RML__int_5flt);
+extern RML_FORWARD_LABEL(RML__int_5fmax);
+extern RML_FORWARD_LABEL(RML__int_5fmin);
+extern RML_FORWARD_LABEL(RML__int_5fmod);
+extern RML_FORWARD_LABEL(RML__int_5fmul);
+extern RML_FORWARD_LABEL(RML__int_5fne);
+extern RML_FORWARD_LABEL(RML__int_5fneg);
+extern RML_FORWARD_LABEL(RML__int_5freal);
+extern RML_FORWARD_LABEL(RML__int_5fstring);
+extern RML_FORWARD_LABEL(RML__int_5fsub);
+/* bit operations */
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fnot);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fand);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5for);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5fxor);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5flshift);
+extern RML_FORWARD_LABEL(RML__int_5fbit_5frshift);
+/* java named */
+#define RML__intAbs       RML__int_5fabs
+#define RML__intAdd       RML__int_5fadd
+#define RML__intDiv       RML__int_5fdiv
+#define RML__intEq        RML__int_5feq
+#define RML__intGe        RML__int_5fge
+#define RML__intGt        RML__int_5fgt
+#define RML__intLe        RML__int_5fle
+#define RML__intLt        RML__int_5flt
+#define RML__intMax       RML__int_5fmax
+#define RML__intMin       RML__int_5fmin
+#define RML__intMod       RML__int_5fmod
+#define RML__intMul       RML__int_5fmul
+#define RML__intNe        RML__int_5fne
+#define RML__intNeg       RML__int_5fneg
+#define RML__intReal      RML__int_5freal
+#define RML__intString    RML__int_5fstring
+#define RML__intSub       RML__int_5fsub
+/* bit operations */
+#define RML__intBitNot    RML__int_5fbit_5fnot
+#define RML__intBitAnd    RML__int_5fbit_5fand
+#define RML__intBitOr     RML__int_5fbit_5for
+#define RML__intBitXor    RML__int_5fbit_5fxor
+#define RML__intBitLShift RML__int_5fbit_5flshift
+#define RML__intBitRShift RML__int_5fbit_5frshift
+
+
+/* lists */
+extern RML_FORWARD_LABEL(RML__list_5fappend);
+extern RML_FORWARD_LABEL(RML__list_5fdelete);
+extern RML_FORWARD_LABEL(RML__list_5flength);
+extern RML_FORWARD_LABEL(RML__list_5fmember);
+extern RML_FORWARD_LABEL(RML__list_5fnth);
+extern RML_FORWARD_LABEL(RML__list_5fget);
+extern RML_FORWARD_LABEL(RML__list_5freverse);
+extern RML_FORWARD_LABEL(RML__list_5fvector);
+extern RML_FORWARD_LABEL(RML__list_5farray);
+extern RML_FORWARD_LABEL(RML__list_5fappend_5funsafe);
+/* java named */
+#define RML__listAppend       RML__list_5fappend
+#define RML__listDelete       RML__list_5fdelete
+#define RML__listLength       RML__list_5flength
+#define RML__listMember       RML__list_5fmember
+#define RML__listNth          RML__list_5fnth
+#define RML__listGet          RML__list_5fget
+#define RML__listReverse      RML__list_5freverse
+#define RML__listVector       RML__list_5fvector
+#define RML__listArray        RML__list_5farray
+#define RML__listAppendUnsafe RML__list_5fappend_5funsafe
+
+/* logical variables */
+extern RML_FORWARD_LABEL(RML__lvar_5fget);
+extern RML_FORWARD_LABEL(RML__lvar_5fnew);
+extern RML_FORWARD_LABEL(RML__lvar_5fset);
+/* java named */
+#define RML__lvarGet RML__lvar_5fget
+#define RML__lvarNew RML__lvar_5fnew
+#define RML__lvarSet RML__lvar_5fset
+
+/* reals */
+extern RML_FORWARD_LABEL(RML__real_5fabs);
+extern RML_FORWARD_LABEL(RML__real_5fadd);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fcos);
+extern RML_FORWARD_LABEL(RML__real_5fdiv);
+extern RML_FORWARD_LABEL(RML__real_5feq);
+extern RML_FORWARD_LABEL(RML__real_5fexp);
+extern RML_FORWARD_LABEL(RML__real_5ffloor);
+extern RML_FORWARD_LABEL(RML__real_5fceil);
+extern RML_FORWARD_LABEL(RML__real_5fge);
+extern RML_FORWARD_LABEL(RML__real_5fgt);
+extern RML_FORWARD_LABEL(RML__real_5fint);
+extern RML_FORWARD_LABEL(RML__real_5fle);
+extern RML_FORWARD_LABEL(RML__real_5fln);
+extern RML_FORWARD_LABEL(RML__real_5flt);
+extern RML_FORWARD_LABEL(RML__real_5fmax);
+extern RML_FORWARD_LABEL(RML__real_5fmin);
+extern RML_FORWARD_LABEL(RML__real_5fmod);
+extern RML_FORWARD_LABEL(RML__real_5fmul);
+extern RML_FORWARD_LABEL(RML__real_5fne);
+extern RML_FORWARD_LABEL(RML__real_5fneg);
+extern RML_FORWARD_LABEL(RML__real_5fpow);
+extern RML_FORWARD_LABEL(RML__real_5fsin);
+extern RML_FORWARD_LABEL(RML__real_5fsqrt);
+extern RML_FORWARD_LABEL(RML__real_5fstring);
+extern RML_FORWARD_LABEL(RML__real_5fsub);
+extern RML_FORWARD_LABEL(RML__real_5fasin);
+extern RML_FORWARD_LABEL(RML__real_5facos);
+extern RML_FORWARD_LABEL(RML__real_5fatan);
+extern RML_FORWARD_LABEL(RML__real_5fatan2);
+extern RML_FORWARD_LABEL(RML__real_5fcosh);
+extern RML_FORWARD_LABEL(RML__real_5flog);
+extern RML_FORWARD_LABEL(RML__real_5flog10);
+extern RML_FORWARD_LABEL(RML__real_5fsinh);
+extern RML_FORWARD_LABEL(RML__real_5ftanh);
+/* java named */
+#define RML__realAbs    RML__real_5fabs
+#define RML__realAdd    RML__real_5fadd
+#define RML__realAtan   RML__real_5fatan
+#define RML__realCos    RML__real_5fcos
+#define RML__realDiv    RML__real_5fdiv
+#define RML__realEq     RML__real_5feq
+#define RML__realExp    RML__real_5fexp
+#define RML__realFloor  RML__real_5ffloor
+#define RML__realCeil   RML__real_5fceil
+#define RML__realGe     RML__real_5fge
+#define RML__realGt     RML__real_5fgt
+#define RML__realInt    RML__real_5fint
+#define RML__realLe     RML__real_5fle
+#define RML__realLn     RML__real_5fln
+#define RML__realLt     RML__real_5flt
+#define RML__realMax    RML__real_5fmax
+#define RML__realMin    RML__real_5fmin
+#define RML__realMod    RML__real_5fmod
+#define RML__realMul    RML__real_5fmul
+#define RML__realNe     RML__real_5fne
+#define RML__realNeg    RML__real_5fneg
+#define RML__realPow    RML__real_5fpow
+#define RML__realSin    RML__real_5fsin
+#define RML__realSqrt   RML__real_5fsqrt
+#define RML__realString RML__real_5fstring
+#define RML__realSub    RML__real_5fsub
+#define RML__realAsin   RML__real_5fasin
+#define RML__realAcos   RML__real_5facos
+#define RML__realAtan2  RML__real_5fatan2
+#define RML__realCosh   RML__real_5fcosh
+#define RML__realLog    RML__real_5flog
+#define RML__realLog10  RML__real_5flog10
+#define RML__realSinh   RML__real_5fsinh
+#define RML__realTanh   RML__real_5ftanh
+
+/* strings */
+extern RML_FORWARD_LABEL(RML__string_5fappend);
+extern RML_FORWARD_LABEL(RML__string_5fint);
+extern RML_FORWARD_LABEL(RML__string_5flength);
+extern RML_FORWARD_LABEL(RML__string_5fappend_5flist);
+extern RML_FORWARD_LABEL(RML__string_5fdelimit_5flist);
+/* java named */
+#define RML__stringAppend RML__string_5fappend
+#define RML__stringInt    RML__string_5fint
+#define RML__stringLength RML__string_5flength
+#define RML__stringAppendList RML__string_5fappend_5flist
+#define RML__stringDelimitList RML__string_5fdelimit_5flist
+
+/* declarative vectors */
+extern RML_FORWARD_LABEL(RML__vector_5flength);
+extern RML_FORWARD_LABEL(RML__vector_5flist);
+extern RML_FORWARD_LABEL(RML__vector_5fnth);
+extern RML_FORWARD_LABEL(RML__vector_5fget);
+extern RML_FORWARD_LABEL(RML__vector_5fsetnth);
+extern RML_FORWARD_LABEL(RML__vector_5fupdate);
+extern RML_FORWARD_LABEL(RML__vector_5fcreate);
+extern RML_FORWARD_LABEL(RML__vector_5fadd);
+extern RML_FORWARD_LABEL(RML__vector_5farray);
+extern RML_FORWARD_LABEL(RML__vector_5fcopy);
+/* java named */
+#define RML__vectorLength RML__vector_5flength
+#define RML__vectorList   RML__vector_5flist
+#define RML__vectorNth    RML__vector_5fnth
+#define RML__vectorGet    RML__vector_5fget
+#define RML__vectorSetNth RML__vector_5fsetnth
+#define RML__vectorUpdate RML__vector_5fupdate
+#define RML__vectorCreate RML__vector_5fcreate
+#define RML__vectorAdd    RML__vector_5fadd
+#define RML__vectorArray  RML__vector_5farray
+#define RML__vectorCopy   RML__vector_5fcopy
+
+/* mutable arrays */
+extern RML_FORWARD_LABEL(RML__array_5flength);
+extern RML_FORWARD_LABEL(RML__array_5flist);
+extern RML_FORWARD_LABEL(RML__array_5fnth);
+extern RML_FORWARD_LABEL(RML__array_5fget);
+extern RML_FORWARD_LABEL(RML__array_5fsetnth);
+extern RML_FORWARD_LABEL(RML__array_5fupdate);
+extern RML_FORWARD_LABEL(RML__array_5fcreate);
+extern RML_FORWARD_LABEL(RML__array_5fadd);
+extern RML_FORWARD_LABEL(RML__array_5fvector);
+extern RML_FORWARD_LABEL(RML__array_5fcopy);
+/* java named */
+#define RML__arrayLength RML__array_5flength
+#define RML__arrayList   RML__array_5flist
+#define RML__arrayNth    RML__array_5fnth
+#define RML__arrayGet    RML__array_5fget
+#define RML__arraySetNth RML__array_5fsetnth
+#define RML__arrayUpdate RML__array_5fupdate
+#define RML__arrayCreate RML__array_5fcreate
+#define RML__arrayAdd    RML__array_5fadd
+#define RML__arrayVector RML__array_5fvector
+#define RML__arrayCopy   RML__array_5fcopy
+
+/* if expressions */
+extern RML_FORWARD_LABEL(RML__if_5fexp);
+#define RML__ifExp   RML__if_5fexp
+
+/* misc */
+extern RML_FORWARD_LABEL(RML__clock);
+extern RML_FORWARD_LABEL(RML__print);
+extern RML_FORWARD_LABEL(RML__tick);
+extern RML_FORWARD_LABEL(RML__unique);
+extern RML_FORWARD_LABEL(RML__enable_5ftrace);
+extern RML_FORWARD_LABEL(RML__disable_5ftrace);
+extern RML_FORWARD_LABEL(RML__setStackOverflowSignal);
+/* java names */
+#define RML__enableTrace  RML__enable_5ftrace
+#define RML__disableTrace RML__disable_5ftrace
+
+
+/* debugging */
+/* let these relation be available in all rml libraries */
+/* however their code depends on _RMLDB_DEFINED_ */
+extern RML_FORWARD_LABEL(RML__debug_5fprint);
+extern RML_FORWARD_LABEL(RML__debug);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fin16);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout01);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout02);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout03);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout04);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout05);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout06);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout07);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout08);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout09);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout10);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout11);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout12);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout13);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout14);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout15);
+extern RML_FORWARD_LABEL(RML__debug_5fpush_5fout16);
+extern RML_FORWARD_LABEL(RML__debug_5fshow_5fdepth);
+
+extern void RML__call_debug(char* fileName, int sp, int ep, int sl, int sc, int el, int ec, char* relation, char* call);
+#ifndef _RMLDB_COMMAND_H_
+#define _RMLDB_COMMAND_H_
+
+/* the commands accepted by the debugger */
+#define RMLDB_CMD_NONE 							0000
+#define RMLDB_CMD_BREAKPOINT 					1000
+#define RMLDB_CMD_DELETE_BREAKPOINT 			1001
+#define RMLDB_CMD_CLEAR_BREAKPOINTS 			1002
+#define RMLDB_CMD_FUNCTION_BREAKPOINT			1003
+#define RMLDB_CMD_DELETE_FUNCTION_BREAKPOINT	1004
+#define RMLDB_CMD_STRING_BREAKPOINT 			1005
+#define RMLDB_CMD_DELETE_STRING_BREAKPOINT		1006
+#define RMLDB_CMD_FAILURE_BREAKPOINT            1007
+#define RMLDB_CMD_DELETE_FAILURE_BREAKPOINT     1008
+#define RMLDB_CMD_STACK							1009
+#define RMLDB_CMD_VARIABLE_VALUE				1010
+#define RMLDB_CMD_LAZY_VARIABLE_VALUE			1011
+#define RMLDB_CMD_FRAME_VARIABLE_VALUE			1012
+#define RMLDB_CMD_FRAME_LAZY_VARIABLE_VALUE		1013
+
+#define RMLDB_CMD_RESUME						2000
+#define RMLDB_CMD_STEP							2001
+#define RMLDB_CMD_STEP_OVER						2002
+#define RMLDB_CMD_STEP_RETURN					2003
+#define RMLDB_CMD_RUN							2004
+#define RMLDB_CMD_QUIT							2005
+
+/* the response of the debugger to commands */
+#define RMLDB_REPLY_OK							"$ok"
+#define RMLDB_REPLY_ERROR						"$err"
+
+/* the signals accepted by the debugger  */
+#define RMLDB_SIGNAL_SUSPEND					"$u"
+#define RMLDB_SIGNAL_QUIT						"$q"
+
+
+/* the events send by the debugger to the Eclipse UI */
+#define RMLDB_EVENT_START						"$t"
+#define RMLDB_EVENT_READY						"$rdy"
+#define RMLDB_EVENT_STEP						"$s"
+#define RMLDB_EVENT_STEP_OVER					"$o"
+#define RMLDB_EVENT_STEP_RETURN					"$n"
+#define RMLDB_EVENT_RUN							"$r"
+#define RMLDB_EVENT_QUIT						"$q"
+#define RMLDB_EVENT_SUSPEND						"$u"
+#define RMLDB_EVENT_BREAKPOINT					"$b"
+#define RMLDB_EVENT_FAILURE_BREAKPOINT          "$bf"
+#define RMLDB_EVENT_ERROR						"$err"
+
+typedef struct rmldb_command_t
+{
+	int ty;   /* the command type */
+	union 
+	{
+		struct brkFile      	 { char *file; int   line;   		} brkFile;
+		struct brkFunction  	 { char *file; char *name;   		} brkFunction;		
+		struct brkString		 { char *filter;             		} brkString;
+        struct brkFailure        { char *filter;                    } brkFailure;        
+		struct varValue			 { char *name;       	    		} varValue;
+		struct lazyVarValue		 { char *name; int *path;			} lazyVarValue;
+		struct frameVarValue     { int frame; int nr;				} frameVarValue;
+		struct frameLazyVarValue { int frame; int nr; int *path;	} frameLazyVarValue;
+	} data;
+} rmldb_command_type;
+
+
+extern rmldb_command_type* rmldb_current_command;
+
+extern rmldb_command_type* rmldb_mk_cmd(int ty);
+extern rmldb_command_type* rmldb_mk_cmd_brkFile          (int ty, char* file, char* line);
+extern rmldb_command_type* rmldb_mk_cmd_brkFunction      (int ty, char* file, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_brkString        (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_brkFailure       (int ty, char* filter);
+extern rmldb_command_type* rmldb_mk_cmd_varValue         (int ty, char* name);
+extern rmldb_command_type* rmldb_mk_cmd_lazyVarValue     (int ty, char* name, char* path);
+extern rmldb_command_type* rmldb_mk_cmd_frameVarValue    (int ty, char* frame, char* nr);
+extern rmldb_command_type* rmldb_mk_cmd_frameLazyVarValue(int ty, char* frame, char* nr, char* path);
+extern int rmldb_freeCommand(rmldb_command_type* cmd);
+
+#endif /* _RMLDB_COMMAND_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+
+/*
+ * [ rml-socket.h ] 
+ * - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+ * - creation 2007-02-24
+ *   + interface for Windows and Linux sockets
+ *   + all things in this file start with rmldb_socket_*
+ * - last modified 2007-02-24
+ *****************************************************************************/
+
+#ifdef RML_DEBUG
+#define RMLDB_SOCKET_PROMPT "rml+mmc-socket>"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+/*********** MINGW32 && MSVC stuff **********/
+#include <winsock2.h>
+
+#define _rmldb_socket_send(x,y,z) send(x,y,z,0)
+#define _rmldb_socket_recv(x,y,z) recv(x,y,z,0)
+#define _rmldb_socket_close closesocket
+#define _rmldb_socket_errorno WSAGetLastError()
+
+#else /***************** unix stuff ***************/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/unistd.h>
+#include <sys/stat.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#define _rmldb_socket_send(x,y,z) write(x,y,z)
+#define _rmldb_socket_recv(x,y,z) read(x,y,z)
+#define _rmldb_socket_close close
+#define _rmldb_socket_errorno errno
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (-1)
+
+#endif
+
+/* 
+ * set to 1 to have debugging or to 0 to 
+ * disable debugging of the socket communication
+ */
+extern int   rmldb_socket_debug;
+/* 
+ * initialize the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_initialize_library(void);  
+/* 
+ * cleanups the socket library
+ * returns -1 on error and 1 on success.
+ */
+extern int   rmldb_socket_cleanup_library(void);  
+
+/* 
+ * get a socket 
+ * returns -1 or the socket
+ */
+extern int   rmldb_socket_get(void);
+
+/* 
+ * binds the given socket on localhost and given port
+ * performs bind and listen
+ * returns -1 on error and 0 on success
+ */
+extern int   rmldb_socket_bind_and_listen(int socket, char* hostname, int port);
+/* 
+ * performs accept on the given socket 
+ * returns the new socket or -1 on error
+ */
+extern int   rmldb_socket_accept(int socket);
+
+/* 
+ * close the socket 
+ * returns -1 for error or 0 for no error 
+ */
+extern int   rmldb_socket_close(int socket); 
+
+/* send to socket with error handling */
+extern int rmldb_socket_outln(int sock, char *msg);
+extern int rmldb_socket_out(int sock, char *msg);
+
+#endif
+/* handler.h */
+#ifndef HANDLER_H_
+#define HANDLER_H_
+
+extern int   aaerror(char*);
+extern int   aaparse(void);
+extern int   aadebug;
+
+#ifdef RML_DEBUG
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+
+#if defined(__MINGW32__) /* ********** MINGW32 stuff ******/
+#include <signal.h>
+#endif
+
+#else /***************** unix stuff ***************/
+#include <signal.h>
+#endif /* unix vs windows stuff */
+
+/* adrpo - debugger global variables */
+extern int   rmldb_cmd_port;    /* listen for commands from the client on this port */
+extern int   rmldb_reply_port;  /* listen on this port and send synchronous command replys to the client */
+extern int   rmldb_event_port;  /* listen on this port and send event to the client */
+extern int   rmldb_signal_port; /* listen on this post and wait for async suspend signals from the client */
+
+typedef struct rmldb_communication
+{
+	int   cmd_bind_sock;     /* bind and accept on this socket */
+	int   cmd_sock;          /* listen for commands on this socket */
+	int   reply_bind_sock;   /* bind and accept on this socket */
+	int   reply_sock;        /* send reply of commands to this socket */	
+	int   event_bind_sock;   /* bind and accept on this socket */
+	int   event_sock;        /* send output to this port */
+	int   signal_bind_sock;  /* bind and accept on this socket */
+	int   signal_sock;       /* listen to async events from client */
+} rmldb_communication_type;
+
+extern rmldb_communication_type rmldb_communicator;
+
+extern int rmldb_last_command;
+extern int rmldb_startSignalHandler(void* arg);
+extern int rmldb_endSignalHandler(void);
+extern int rmldb_interpretCommand(void);
+extern int rmldb_executeCommand(rmldb_command_type* cmd);
+extern int rmldb_sendEvent(char* event);
+extern int rmldb_sendReply(char* reply);
+
+#endif /* RML_DEBUG */
+
+#endif /*HANDLER_H_*/
 /***********************************************************
  [ load.h ] 
   - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
@@ -1756,110 +1756,110 @@ extern int   aarmldbdebug;
 extern int   aarmldb_lineno;
 
 #endif /* _RMLDB_LOAD_H_  */
-/* 
- * This file is part of OpenModelica.
- * 
- * It implements the Relational Meta-Language (RML) and MetaModelica
- * http://www.ida.liu.se/~pelab/rml
- * 
- * Copyright (c) 1998-2008, Link�pings University,
- * Department of Computer and Information Science, 
- * SE-58183 Link�ping, Sweden. 
- * 
- * All rights reserved.
- * 
- * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
- * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
- * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
- * PUBLIC LICENSE. 
- * 
- * The OpenModelica software and the Open Source Modelica 
- * Consortium (OSMC) Public License (OSMC-PL) are obtained 
- * from Link�pings University, either from the above address, 
- * from the URL: http://www.ida.liu.se/projects/OpenModelica
- * and in the OpenModelica distribution.
- * 
- * This program is distributed  WITHOUT ANY WARRANTY; without 
- * even the implied warranty of  MERCHANTABILITY or FITNESS 
- * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
- * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
- * OF OSMC-PL. 
- * 
- * See the full OSMC Public License conditions for more details.
- * 
- * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
- * 
- */
-/***********************************************************
- [ debug.h ] 
-  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
-  - creation 2002-10
-    + interface for rml debugging 
-    + this file contains all the functions for debugging 
-	+ all things in this file start with rmldb_
-  - last modified 2005-12-27
-************************************************************/
-#ifndef _RML_DEBUG_H_
-#define _RML_DEBUG_H_
-/* all these functions depends on RML_DEBUG macro */
-/************************************************************/
-
-#ifdef RML_DEBUG
-
-#include <stdio.h>
-#include <string.h>
-
-/* this file will be included in the generated rml.h */
-/* adrpo some useful defines. */
-#define RMLDB_SUCCESS  1
-#define RMLDB_FAILURE -1
-
-#define RMLDB_PROMPT "rml+mmc db@>"
-#define RMLDB_RUN         0
-#define RMLDB_STEP        1
-#define RMLDB_STEP_OVER   2
-#define RMLDB_STEP_RETURN	3
-#define RMLDB_BREAKPOINT  4
-#define RMLDB_TRACE_CALLS	5
-#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
-
-#define RMLDB_VAR_IN 0
-#define RMLDB_VAR_OUT 1
-
-extern int   rmldb_execution_type;
-extern int   rmldb_execution_startup_type;
-extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
-extern int   rmldb_depth_of_variable_print;
-extern int   rmldb_max_string_variable_print;
-/* location of current execution point */
-extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
-
-/* init/help/exit */
-extern int  rmldb_init(void);
-extern int  rmldb_end(void);
-extern void rmldb_exit(int status);
-extern int  rmldb_quit(char *line);
-
-/* breakpoints */
-extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
-
-/* variables */
-extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
-
-/* stack */
-extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
-extern int rmldb_push_stack_frame(
-			char* file, 
-			int charStart, int charEnd, 
-			int startLine, int startColumn, int endLine, int endColumn,					  
-			char* function,
-			char* call);
-extern int rmldb_pop_stack_frame(char gototype);
-
-#endif /* RML_DEBUG */
-
-#endif /* _RML_DEBUG_H_  */
-
-
-/* ending rml.h */
-#endif /*_RML_H_*/
+/* 
+ * This file is part of OpenModelica.
+ * 
+ * It implements the Relational Meta-Language (RML) and MetaModelica
+ * http://www.ida.liu.se/~pelab/rml
+ * 
+ * Copyright (c) 1998-2008, Link�pings University,
+ * Department of Computer and Information Science, 
+ * SE-58183 Link�ping, Sweden. 
+ * 
+ * All rights reserved.
+ * 
+ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THIS OSMC PUBLIC 
+ * LICENSE (OSMC-PL). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
+ * THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE OSMC 
+ * PUBLIC LICENSE. 
+ * 
+ * The OpenModelica software and the Open Source Modelica 
+ * Consortium (OSMC) Public License (OSMC-PL) are obtained 
+ * from Link�pings University, either from the above address, 
+ * from the URL: http://www.ida.liu.se/projects/OpenModelica
+ * and in the OpenModelica distribution.
+ * 
+ * This program is distributed  WITHOUT ANY WARRANTY; without 
+ * even the implied warranty of  MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH 
+ * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS 
+ * OF OSMC-PL. 
+ * 
+ * See the full OSMC Public License conditions for more details.
+ * 
+ * @author Adrian Pop [adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo]
+ * 
+ */
+/***********************************************************
+ [ debug.h ] 
+  - Adrian Pop, adrpo@ida.liu.se, http://www.ida.liu.se/~adrpo
+  - creation 2002-10
+    + interface for rml debugging 
+    + this file contains all the functions for debugging 
+	+ all things in this file start with rmldb_
+  - last modified 2005-12-27
+************************************************************/
+#ifndef _RML_DEBUG_H_
+#define _RML_DEBUG_H_
+/* all these functions depends on RML_DEBUG macro */
+/************************************************************/
+
+#ifdef RML_DEBUG
+
+#include <stdio.h>
+#include <string.h>
+
+/* this file will be included in the generated rml.h */
+/* adrpo some useful defines. */
+#define RMLDB_SUCCESS  1
+#define RMLDB_FAILURE -1
+
+#define RMLDB_PROMPT "rml+mmc db@>"
+#define RMLDB_RUN         0
+#define RMLDB_STEP        1
+#define RMLDB_STEP_OVER   2
+#define RMLDB_STEP_RETURN	3
+#define RMLDB_BREAKPOINT  4
+#define RMLDB_TRACE_CALLS	5
+#define RMLDB_TRACE_ALL   6 /* display all function calls and variable values */
+
+#define RMLDB_VAR_IN 0
+#define RMLDB_VAR_OUT 1
+
+extern int   rmldb_execution_type;
+extern int   rmldb_execution_startup_type;
+extern int   rmldb_last_command; /* need to know if we should start running or get more commands from the debugger */
+extern int   rmldb_depth_of_variable_print;
+extern int   rmldb_max_string_variable_print;
+/* location of current execution point */
+extern       rmldb_current_execution_loc_t rmldb_current_execution_loc;
+
+/* init/help/exit */
+extern int  rmldb_init(void);
+extern int  rmldb_end(void);
+extern void rmldb_exit(int status);
+extern int  rmldb_quit(char *line);
+
+/* breakpoints */
+extern int rmldb_handle_breakpoint_request(rmldb_command_type* cmd);
+
+/* variables */
+extern int rmdlb_handle_variable_request(rmldb_command_type* cmd);
+
+/* stack */
+extern int rmdlb_handle_stack_request(rmldb_command_type* cmd);
+extern int rmldb_push_stack_frame(
+			char* file, 
+			int charStart, int charEnd, 
+			int startLine, int startColumn, int endLine, int endColumn,					  
+			char* function,
+			char* call);
+extern int rmldb_pop_stack_frame(char gototype);
+
+#endif /* RML_DEBUG */
+
+#endif /* _RML_DEBUG_H_  */
+
+
+/* ending rml.h */
+#endif /*_RML_H_*/