~mjmendoza/quixie/trunk

« back to all changes in this revision

Viewing changes to src/kse_String_Equation.cpp

  • Committer: creek23
  • Date: 2018-06-12 15:52:49 UTC
  • Revision ID: svn-v4:5d579d6f-57a3-4165-9b1e-6dacaf8da75a:quixie:683
* done with partial functional testing
* it's confirmed to be compilable and tested to be partially functional :)
* silenced a huge amount of warning messages
* commented out graphics
* still todo Net/MySQL handling

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
//translated this 17.09.30 by mjmendozaIV
 
2
#include "../kage.hpp"
2
3
#include "../kageExterns.hpp"
3
4
 
4
5
//this contains the parser for
5
6
//       mystring = myOtherstring + " is " + myNumber + " years old";
6
7
//would give a value that goes something like
7
 
//       //Ab-ban is 4 years old//
 
8
//       'Ab-ban is 4 years old'
8
9
//                                                 --Mj Mendoza IV
9
10
 
10
11
string GetStrValueAt(unsigned long &iIndex, bool FuncMode) {
105
106
                        ++i; //skip negative
106
107
                        sValue = Str(0 - GetNumValueAt(i, false, FuncMode, false, false));
107
108
                } else {
108
 
                        Engine_Message("Expecting (  value  ) before (  " + KSE_GetToken(i) + "  ].", "ERROR AT LINE " + Str(kseToken[i].iLine));
 
109
                        Engine_Message("Expecting (  value  ) before (  " + KSE_GetToken(i) + "  ).", "ERROR AT LINE " + Str(kseToken[i].iLine));
109
110
                        Engine_Exit();
110
111
                }
111
112
        }
151
152
                        if (FuncMode || CondiMode) {
152
153
                                break;
153
154
                        } else {
154
 
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  )  ].", "SYNTAX ERROR AT LINE " + kseToken[i].iLine);
 
155
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  )  ).", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
155
156
                                Engine_Exit();
156
157
                        }
157
158
                } else if (sToken == kseCOMMA) {
159
160
                        if (FuncMode) {
160
161
                                break;
161
162
                        } else {
162
 
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  ,  ].", "SYNTAX ERROR AT LINE " + kseToken[i].iLine);
 
163
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  ,  ).", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
163
164
                                Engine_Exit();
164
165
                        }
165
166
                } else if (sToken == kseSEMICOLON) {
211
212
                        kseToken[i].lCmd = kseVALUE_OPT_MINUS_SIGN;
212
213
                        sToken = GetTokenStr(i);
213
214
                        //if sResult is numeric, sResult less succeeding value
214
 
                        //else, "helloworld" - "low" = "helorld"
 
215
                        //else, "helloworld" - "low" = "helorld" //[QuixiePP] err?!?
215
216
                        if (IsNumeric(sToken)) {
216
217
                                if (IsNumeric(sResult)) {
217
218
                                        sResult = Str(Val(sResult) - Val(sToken));
438
439
                        if (FuncMode || CondiMode) {
439
440
                                break;
440
441
                        } else {
441
 
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  )  ].", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
 
442
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  )  ).", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
442
443
                                Engine_Exit();
443
444
                        }
444
445
                } else if (kseToken[i].lCmd == kseOPT_COMMA) {
445
446
                        if (FuncMode) {
446
447
                                break;
447
448
                        } else {
448
 
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  ,  ].", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
 
449
                                Engine_Message(KSE_GetErrFileSrc(i) + "Unexpected (  ,  ).", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
449
450
                                Engine_Exit();
450
451
                        }
451
452
                } else if (kseToken[i].lCmd == kseOPT_SEMICOLON) {
657
658
        unsigned long iTemp;
658
659
        unsigned long iLine;
659
660
        string sTmp;
660
 
        bool bNewline;
 
661
        bool bNewline = false;
661
662
        
662
663
        //sTempString = "";                                                                        //set default value
663
664
        iLine = kseToken[iIndex + 1].iLine;                                        //get code line
714
715
                        //check for escape characters
715
716
                        //# (i+1) was taken instead of GetNextIndex since escape chars should be written as one word
716
717
                        
717
 
                        bNewline = 0;
 
718
                        bNewline = false;
718
719
                        if (kseToken[i + 1].sToken == "n") {
719
720
                                #ifdef QUIXIE_CGI
720
721
                                        sTempString = sTempString + "\n";
728
729
                                #else
729
730
                                        sTempString += "\r\n";
730
731
                                #endif
731
 
                                bNewline = 1;   //to correct \n [Ex. from \nice (suppose to be \n and ice)]
 
732
                                bNewline = true;        //to correct \n [Ex. from \nice (suppose to be \n and ice)]
732
733
                                
733
734
                        } else if (kseToken[i + 1].sToken == "t") {
734
735
                                sTempString += "\t";
736
737
                        } else if (Left(kseToken[i + 1].sToken, 1) == "t") {
737
738
                        
738
739
                                sTempString += "\t";
739
 
                                bNewline = 1;   //to correct \t [Ex. from \table (suppose to be \t and able)]
 
740
                                bNewline = true;        //to correct \t [Ex. from \table (suppose to be \t and able)]
740
741
                                
741
742
                        } else if (kseToken[i + 1].sToken == kseDOUBLE_QUOTES) {
742
743
                                sTempString += kseDOUBLE_QUOTES;
757
758
                //should be:
758
759
                //              "asdasdasd\nqweqweqwe"
759
760
                } else if (kseToken[i].iLine == iLine) {
760
 
                        if (bNewline) {
761
 
                                sTempString = sTempString + Mid(kseToken[i].sToken, 2);
762
 
                                bNewline = 0;
 
761
                        if (bNewline == true) {
 
762
                                sTempString = sTempString + kseToken[i].sToken;
 
763
                                bNewline = false;
763
764
                        } else {
764
765
                                sTempString = sTempString + kseToken[i].sToken;
765
766
                        }
766
767
                } else {
767
 
                        Engine_Message(KSE_GetErrFileSrc(i) + "Expecting (  ""  ) but got (  " + KSE_GetToken(i) + "  ) instead.", "SYNTAX ERROR AT LINE " + kseToken[i].iLine);
 
768
                        Engine_Message(KSE_GetErrFileSrc(i) + "Expecting (  ""  ) but got (  " + KSE_GetToken(i) + "  ) instead.", "SYNTAX ERROR AT LINE " + Str(kseToken[i].iLine));
768
769
                        Engine_Exit();
769
770
                }
770
771
        }