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_*/