//--------------------------------------------------------------------------- #ifndef inclH #define inclH // * * * INCLUDES * * * #include//Std includes #include #include #include #include "Token.h" //Projektspezifische Includes #include "MyChar.h" #include "check.h" // * * * MAKROS * * * #define DEZ (Str[i] == ',' || Str[i] == '.') //hier können andere Dezimalzeichen eingetragen werden! #define ISOP (Str[i] == '+' ||Str[i] == '*' ||Str[i] == '-' ||Str[i] == '/' ||\ Str[i] == '!' ||Str[i] == '^' ||Str[i] == '(' ||Str[i] == ')') #define ISOPOK (Str[i] == '+' ||Str[i] == '*' ||Str[i] == '-' ||Str[i] == '/' ||\ Str[i] == '!' ||Str[i] == '^') //hier können weitere Operatoren eingetragen werden! //OK ... Ohne Klammern #define ZAL (Str[i] >= '0' && Str[i] <= '9') #define TOK '#' // * * * PROTOTYPEN * * * class Token; class MyChar; double StrToDbl (std::string Str); //wandelt string in Zahl um //Es wird alles ignoriert, bis auf Zahlen und '.' ',' welche vorkommen müssen double StrToInt (std::string Str); //wandelt string in int um //Es wird alles ignoriert, auch '.' und ',' welche keine Bedeutung haben double operation (std::string Str); //berechnet einen String, in welchen nur 1 Operator vokommen darf double hoch (int term1,int term2); //berechnet hochzahlen, welche aber nur vom Typ Integer sind //term1 ^ term2 double hoch (double term1,double term2); //berchnet hochzahlen //term1 ^ term2 std::string parser(std::string & Str, char Op1, char Op2); //sucht nach einen string, der den Operator Op1 || Op2 umgibt, dieser wird //berechnet und in einen Token umgewandelt double klammerparser (std::string & Str); //alles zwischen 2 Klammern wird berechnet und in ein Token umgewandelt //kommt keine Klammer mehr vor, wird er operationparser mit gesamten string //aufgerufen //kommt nur mehr ein Token vor, kann das Endergebnis zurückgeliefert werden double operationparser (std::string & Str); //es wird ständig der parser aufgerufen, Dieser wird immer mit verschiedenen //operatoren beliefert #endif