Advertisement
ZoriaRPG

log.print() for ZScript, v0.4

Nov 13th, 2018
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.24 KB | None | 0 0
  1. /////////////////////////////
  2. /// ZScript Error Logging ///
  3. /// and Debugging -- v0.4 ///
  4. /// 13th November, 2018   ///
  5. /// By: ZoriaRPG          ///
  6. /////////////////////////////
  7.  
  8. script typedef ffc namespace;
  9.  
  10. namespace script log
  11. {
  12.     void run()
  13.     {
  14.         print("Testing %s\n","log.print()");
  15.         print("Test Number: %d\n",1);
  16.        
  17.         print("Testing %s, %s \n","log.print()","with iteration.");
  18.         print("Test %s %d \n","Number: ",2);
  19.        
  20.     }
  21.  
  22. void print(int s, int v) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  23. {
  24.     int main_buf[2048];
  25.     int buffer_pos; int string_pos; int q;
  26.     for ( ; s[string_pos] != '%'; ++string_pos )
  27.     {
  28.         main_buf[buffer_pos] = s[string_pos]; //copy until we reach %
  29.         ++buffer_pos; //we increment both iterators
  30.     }
  31.     //Now, we found an insertion token, so insert it
  32.    
  33.         //if ( s[string_pos] != '%' ) //copy the buffer text over to the buffer, until we find our token
  34.         //{
  35.         //  main_buf[buffer_pos] = s[string_pos];
  36.         //  ++buffer_pos;
  37.         //}
  38.         //else //found a special token
  39.         //{
  40.     switch(s[string_pos+1]) //read ahead, one vhar beyond '%'
  41.     {
  42.         case 'S':
  43.         case 's':
  44.         {
  45.             //++buffer_pos; //skip over the token
  46.             //main_buf[buffer_pos+q+1] = ' '; //add a trailing space
  47.             for ( q = 0; v[q]; ++q ) //until we reach NULL, imnsert the substring
  48.             {
  49.                 main_buf[buffer_pos] = v[q];    //copy the string passed as a param
  50.                                 //over to the buffer
  51.                 ++buffer_pos;
  52.             }
  53.            
  54.             //main_buf[buffer_pos+q+1] = ' '; //add a trailing space
  55.             //++buffer_pos; //set up the buffer for the next char
  56.             ++string_pos;
  57.             ++string_pos;
  58.             break;
  59.                
  60.         }
  61.         case 'F':
  62.         case 'f':
  63.         {
  64.             //++buffer_pos; //skip over the token
  65.             //main_buf[buffer_pos+q+1] = ' '; //add a trailing space
  66.             int i_val[12];
  67.             ftoa(i_val,v);
  68.             for ( q = 0; i_val[q]; ++q )
  69.             {
  70.                 main_buf[buffer_pos] = i_val[q];
  71.                 ++buffer_pos;
  72.             }
  73.             //main_buf[buffer_pos+q+1] = ' '; //add a trailing space
  74.             //++buffer_pos; //set up the buffer for the next char
  75.             ++string_pos;
  76.             ++string_pos;
  77.             break;
  78.  
  79.         }
  80.         case 'D':
  81.         case 'd':
  82.         {
  83.             //++buffer_pos;
  84.             //main_buf[buffer_pos+q+1] = ' '; //add a trailing space
  85.             int f_val[12];
  86.             itoa(f_val,v);
  87.             for ( q = 0; f_val[q] != 0; ++q )
  88.             {
  89.                 main_buf[buffer_pos] = f_val[q];
  90.                 ++buffer_pos;
  91.             }
  92.             //main_buf[buffer_pos+q+1] = ' '; //add a trailing space
  93.             //++buffer_pos; //set up the buffer for the next char
  94.             ++string_pos;
  95.             ++string_pos;
  96.             break;
  97.  
  98.         }
  99.         default: ++buffer_pos; break;
  100.     }
  101.     //we copied the insertion, so, resume the rest o the string:
  102.     for ( ; s[string_pos]; ++string_pos ) //Until we reach NULL
  103.     {
  104.         //copy the rest of the string:
  105.         main_buf[buffer_pos] = s[string_pos];
  106.         ++buffer_pos;
  107.     }
  108.     //main_buf[buffer_pos+1] = '\n'; Put this in the string!
  109.         TraceS(main_buf); //TraceNL();
  110. }
  111.    
  112. void print(int s, int v1, int v2) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  113. {
  114.     int main_buf[2048];
  115.     int buffer_pos; int string_pos; int q;
  116.     for ( ; s[string_pos] != '%'; ++string_pos )
  117.     {
  118.         main_buf[buffer_pos] = s[string_pos];
  119.         ++buffer_pos;
  120.     }
  121.    
  122.     int values[]={v1,v2};
  123.     int sz = 2;
  124.     int val_index = 0;
  125.    
  126.     do
  127.     {
  128.         ++string_pos;
  129.         //TraceS("Val index is: "); Trace(val_index); TraceNL();
  130.         //Trace(s[string_pos]);
  131.         switch(s[string_pos])
  132.         {
  133.             case 'S':
  134.             case 's':
  135.             {
  136.                 int ptr = values[val_index];
  137.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  138.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  139.                 {
  140.                     main_buf[buffer_pos] = ptr[q];
  141.                     //values[val_index[q]];     //copy the string passed as a param
  142.                                     //over to the buffer
  143.                     ++buffer_pos;
  144.                    
  145.                 }
  146.                 ++string_pos;
  147.                 ++string_pos;
  148.                 break;
  149.                    
  150.             }
  151.             case 'F':
  152.             case 'f':
  153.             {
  154.                 int i_val[12];
  155.                 ftoa(i_val,values[val_index]);
  156.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  157.                 {
  158.                     main_buf[buffer_pos] = i_val[q];
  159.                     ++buffer_pos;
  160.                 }
  161.                 ++string_pos;
  162.                 ++string_pos;
  163.                 break;
  164.  
  165.             }
  166.             case 'D':
  167.             case 'd':
  168.             {
  169.                 int f_val[12];
  170.                 itoa(f_val,values[val_index]);
  171.                 for ( q = 0; (f_val[q]); ++q )
  172.                 {
  173.                     main_buf[buffer_pos] = f_val[q];
  174.                     ++buffer_pos;
  175.                 }
  176.                 //TraceS(f_val);
  177.                 ++string_pos;
  178.                 ++string_pos;
  179.                
  180.                 break;
  181.  
  182.             }
  183.             default: return;
  184.         }
  185.         //we copied the insertion, so, resume the rest o the string:
  186.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  187.         {
  188.             if (!(s[string_pos])) break;
  189.             //copy the rest of the string:
  190.             main_buf[buffer_pos] = s[string_pos];
  191.             ++buffer_pos;
  192.         }
  193.         //Trace(s[string_pos]);
  194.         ++val_index; //increase for overloads
  195.         //we are on a token of %
  196.         //++string_pos; //stop forward to the char after %
  197.        
  198.     }while(val_index < sz);
  199.     //}while((s[string_pos])); //until we reach null in the main buffer
  200.    
  201.         TraceS(main_buf); //TraceNL();
  202. }
  203.        
  204. void print(int s, int v1, int v2, int v3) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  205. {
  206.     int main_buf[2048];
  207.     int buffer_pos; int string_pos; int q;
  208.     for ( ; s[string_pos] != '%'; ++string_pos )
  209.     {
  210.         main_buf[buffer_pos] = s[string_pos];
  211.         ++buffer_pos;
  212.     }
  213.    
  214.     int values[]={v1,v2,v3};
  215.     int sz = 3;
  216.     int val_index = 0;
  217.    
  218.     do
  219.     {
  220.         ++string_pos;
  221.         switch(s[string_pos])
  222.         {
  223.             case 'S':
  224.             case 's':
  225.             {
  226.                 int ptr = values[val_index];
  227.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  228.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  229.                 {
  230.                     main_buf[buffer_pos] = ptr[q];
  231.                     //values[val_index[q]];     //copy the string passed as a param
  232.                                     //over to the buffer
  233.                     ++buffer_pos;
  234.                    
  235.                 }
  236.                 ++string_pos;
  237.                 ++string_pos;
  238.                 break;
  239.                    
  240.             }
  241.             case 'F':
  242.             case 'f':
  243.             {
  244.                 int i_val[12];
  245.                 ftoa(i_val,values[val_index]);
  246.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  247.                 {
  248.                     main_buf[buffer_pos] = i_val[q];
  249.                     ++buffer_pos;
  250.                 }
  251.                 ++string_pos;
  252.                 ++string_pos;
  253.                 break;
  254.  
  255.             }
  256.             case 'D':
  257.             case 'd':
  258.             {
  259.                 int f_val[12];
  260.                 itoa(f_val,values[val_index]);
  261.                 for ( q = 0; (f_val[q]); ++q )
  262.                 {
  263.                     main_buf[buffer_pos] = f_val[q];
  264.                     ++buffer_pos;
  265.                 }
  266.                 //TraceS(f_val);
  267.                 ++string_pos;
  268.                 ++string_pos;
  269.                
  270.                 break;
  271.  
  272.             }
  273.             default: return;
  274.         }
  275.         //we copied the insertion, so, resume the rest o the string:
  276.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  277.         {
  278.             if (!(s[string_pos])) break;
  279.             //copy the rest of the string:
  280.             main_buf[buffer_pos] = s[string_pos];
  281.             ++buffer_pos;
  282.         }
  283.         ++val_index; //increase for overloads
  284.         //we are on a token of %
  285.        
  286.     }while(val_index < sz);
  287.         TraceS(main_buf); //TraceNL();
  288. }
  289.            
  290. void print(int s, int v1, int v2, int v3, int v4) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  291. {
  292.     int main_buf[2048];
  293.     int buffer_pos; int string_pos; int q;
  294.     for ( ; s[string_pos] != '%'; ++string_pos )
  295.     {
  296.         main_buf[buffer_pos] = s[string_pos];
  297.         ++buffer_pos;
  298.     }
  299.    
  300.     int values[]={v1,v2,v3,v4};
  301.     int sz = 4;
  302.     int val_index = 0;
  303.    
  304.     do
  305.     {
  306.         ++string_pos;
  307.         switch(s[string_pos])
  308.         {
  309.             case 'S':
  310.             case 's':
  311.             {
  312.                 int ptr = values[val_index];
  313.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  314.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  315.                 {
  316.                     main_buf[buffer_pos] = ptr[q];
  317.                     //values[val_index[q]];     //copy the string passed as a param
  318.                                     //over to the buffer
  319.                     ++buffer_pos;
  320.                    
  321.                 }
  322.                 ++string_pos;
  323.                 ++string_pos;
  324.                 break;
  325.                    
  326.             }
  327.             case 'F':
  328.             case 'f':
  329.             {
  330.                 int i_val[12];
  331.                 ftoa(i_val,values[val_index]);
  332.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  333.                 {
  334.                     main_buf[buffer_pos] = i_val[q];
  335.                     ++buffer_pos;
  336.                 }
  337.                 ++string_pos;
  338.                 ++string_pos;
  339.                 break;
  340.  
  341.             }
  342.             case 'D':
  343.             case 'd':
  344.             {
  345.                 int f_val[12];
  346.                 itoa(f_val,values[val_index]);
  347.                 for ( q = 0; (f_val[q]); ++q )
  348.                 {
  349.                     main_buf[buffer_pos] = f_val[q];
  350.                     ++buffer_pos;
  351.                 }
  352.                 //TraceS(f_val);
  353.                 ++string_pos;
  354.                 ++string_pos;
  355.                
  356.                 break;
  357.  
  358.             }
  359.             default: return;
  360.         }
  361.         //we copied the insertion, so, resume the rest o the string:
  362.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  363.         {
  364.             if (!(s[string_pos])) break;
  365.             //copy the rest of the string:
  366.             main_buf[buffer_pos] = s[string_pos];
  367.             ++buffer_pos;
  368.         }
  369.         ++val_index; //increase for overloads
  370.         //we are on a token of %
  371.        
  372.     }while(val_index < sz);
  373.         TraceS(main_buf); //TraceNL();
  374. }
  375.                
  376. void print(int s, int v1, int v2, int v3, int v4, int v5) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  377. {
  378.     int main_buf[2048];
  379.     int buffer_pos; int string_pos; int q;
  380.     for ( ; s[string_pos] != '%'; ++string_pos )
  381.     {
  382.         main_buf[buffer_pos] = s[string_pos];
  383.         ++buffer_pos;
  384.     }
  385.    
  386.     int values[]={v1,v2,v3,v4,v5};
  387.     int sz = 5;
  388.     int val_index = 0;
  389.    
  390.     do
  391.     {
  392.         ++string_pos;
  393.         switch(s[string_pos])
  394.         {
  395.             case 'S':
  396.             case 's':
  397.             {
  398.                 int ptr = values[val_index];
  399.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  400.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  401.                 {
  402.                     main_buf[buffer_pos] = ptr[q];
  403.                     //values[val_index[q]];     //copy the string passed as a param
  404.                                     //over to the buffer
  405.                     ++buffer_pos;
  406.                    
  407.                 }
  408.                 ++string_pos;
  409.                 ++string_pos;
  410.                 break;
  411.                    
  412.             }
  413.             case 'F':
  414.             case 'f':
  415.             {
  416.                 int i_val[12];
  417.                 ftoa(i_val,values[val_index]);
  418.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  419.                 {
  420.                     main_buf[buffer_pos] = i_val[q];
  421.                     ++buffer_pos;
  422.                 }
  423.                 ++string_pos;
  424.                 ++string_pos;
  425.                 break;
  426.  
  427.             }
  428.             case 'D':
  429.             case 'd':
  430.             {
  431.                 int f_val[12];
  432.                 itoa(f_val,values[val_index]);
  433.                 for ( q = 0; (f_val[q]); ++q )
  434.                 {
  435.                     main_buf[buffer_pos] = f_val[q];
  436.                     ++buffer_pos;
  437.                 }
  438.                 //TraceS(f_val);
  439.                 ++string_pos;
  440.                 ++string_pos;
  441.                
  442.                 break;
  443.  
  444.             }
  445.             default: return;
  446.         }
  447.         //we copied the insertion, so, resume the rest o the string:
  448.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  449.         {
  450.             if (!(s[string_pos])) break;
  451.             //copy the rest of the string:
  452.             main_buf[buffer_pos] = s[string_pos];
  453.             ++buffer_pos;
  454.         }
  455.         ++val_index; //increase for overloads
  456.         //we are on a token of %
  457.        
  458.     }while(val_index < sz);
  459.         TraceS(main_buf); //TraceNL();
  460. }
  461.                    
  462. void print(int s, int v1, int v2, int v3, int v4, int v5, int v6) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  463. {
  464.     int main_buf[2048];
  465.     int buffer_pos; int string_pos; int q;
  466.     for ( ; s[string_pos] != '%'; ++string_pos )
  467.     {
  468.         main_buf[buffer_pos] = s[string_pos];
  469.         ++buffer_pos;
  470.     }
  471.    
  472.     int values[]={v1,v2,v3,v4,v5,v6};
  473.     int sz = 6;
  474.     int val_index = 0;
  475.    
  476.     do
  477.     {
  478.         ++string_pos;
  479.         switch(s[string_pos])
  480.         {
  481.             case 'S':
  482.             case 's':
  483.             {
  484.                 int ptr = values[val_index];
  485.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  486.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  487.                 {
  488.                     main_buf[buffer_pos] = ptr[q];
  489.                     //values[val_index[q]];     //copy the string passed as a param
  490.                                     //over to the buffer
  491.                     ++buffer_pos;
  492.                    
  493.                 }
  494.                 ++string_pos;
  495.                 ++string_pos;
  496.                 break;
  497.                    
  498.             }
  499.             case 'F':
  500.             case 'f':
  501.             {
  502.                 int i_val[12];
  503.                 ftoa(i_val,values[val_index]);
  504.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  505.                 {
  506.                     main_buf[buffer_pos] = i_val[q];
  507.                     ++buffer_pos;
  508.                 }
  509.                 ++string_pos;
  510.                 ++string_pos;
  511.                 break;
  512.  
  513.             }
  514.             case 'D':
  515.             case 'd':
  516.             {
  517.                 int f_val[12];
  518.                 itoa(f_val,values[val_index]);
  519.                 for ( q = 0; (f_val[q]); ++q )
  520.                 {
  521.                     main_buf[buffer_pos] = f_val[q];
  522.                     ++buffer_pos;
  523.                 }
  524.                 //TraceS(f_val);
  525.                 ++string_pos;
  526.                 ++string_pos;
  527.                
  528.                 break;
  529.  
  530.             }
  531.             default: return;
  532.         }
  533.         //we copied the insertion, so, resume the rest o the string:
  534.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  535.         {
  536.             if (!(s[string_pos])) break;
  537.             //copy the rest of the string:
  538.             main_buf[buffer_pos] = s[string_pos];
  539.             ++buffer_pos;
  540.         }
  541.         ++val_index; //increase for overloads
  542.         //we are on a token of %
  543.        
  544.     }while(val_index < sz);
  545.         TraceS(main_buf); //TraceNL();
  546. }
  547.                        
  548. void print(int s, int v1, int v2, int v3, int v4, int v5, int v6, int v7) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  549. {
  550.     int main_buf[2048];
  551.     int buffer_pos; int string_pos; int q;
  552.     for ( ; s[string_pos] != '%'; ++string_pos )
  553.     {
  554.         main_buf[buffer_pos] = s[string_pos];
  555.         ++buffer_pos;
  556.     }
  557.    
  558.     int values[]={v1,v2,v3,v4,v5,v6,v7};
  559.     int sz = 7;
  560.     int val_index = 0;
  561.    
  562.     do
  563.     {
  564.         ++string_pos;
  565.         switch(s[string_pos])
  566.         {
  567.             case 'S':
  568.             case 's':
  569.             {
  570.                 int ptr = values[val_index];
  571.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  572.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  573.                 {
  574.                     main_buf[buffer_pos] = ptr[q];
  575.                     //values[val_index[q]];     //copy the string passed as a param
  576.                                     //over to the buffer
  577.                     ++buffer_pos;
  578.                    
  579.                 }
  580.                 ++string_pos;
  581.                 ++string_pos;
  582.                 break;
  583.                    
  584.             }
  585.             case 'F':
  586.             case 'f':
  587.             {
  588.                 int i_val[12];
  589.                 ftoa(i_val,values[val_index]);
  590.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  591.                 {
  592.                     main_buf[buffer_pos] = i_val[q];
  593.                     ++buffer_pos;
  594.                 }
  595.                 ++string_pos;
  596.                 ++string_pos;
  597.                 break;
  598.  
  599.             }
  600.             case 'D':
  601.             case 'd':
  602.             {
  603.                 int f_val[12];
  604.                 itoa(f_val,values[val_index]);
  605.                 for ( q = 0; (f_val[q]); ++q )
  606.                 {
  607.                     main_buf[buffer_pos] = f_val[q];
  608.                     ++buffer_pos;
  609.                 }
  610.                 //TraceS(f_val);
  611.                 ++string_pos;
  612.                 ++string_pos;
  613.                
  614.                 break;
  615.  
  616.             }
  617.             default: return;
  618.         }
  619.         //we copied the insertion, so, resume the rest o the string:
  620.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  621.         {
  622.             if (!(s[string_pos])) break;
  623.             //copy the rest of the string:
  624.             main_buf[buffer_pos] = s[string_pos];
  625.             ++buffer_pos;
  626.         }
  627.         ++val_index; //increase for overloads
  628.         //we are on a token of %
  629.        
  630.     }while(val_index < sz);
  631.         TraceS(main_buf); //TraceNL();
  632. }
  633.                            
  634. void print(int s, int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8) //what if we use an array literal for the inputs?. No, then we still don't have overloaded strings
  635. {
  636.     int main_buf[2048];
  637.     int buffer_pos; int string_pos; int q;
  638.     for ( ; s[string_pos] != '%'; ++string_pos )
  639.     {
  640.         main_buf[buffer_pos] = s[string_pos];
  641.         ++buffer_pos;
  642.     }
  643.    
  644.     int values[]={v1,v2,v3,v4,v5,v6,v7,v8};
  645.     int sz = 8;
  646.     int val_index = 0;
  647.    
  648.     do
  649.     {
  650.         ++string_pos;
  651.         switch(s[string_pos])
  652.         {
  653.             case 'S':
  654.             case 's':
  655.             {
  656.                 int ptr = values[val_index];
  657.                 //for ( q = 0; (values[val_index[q]]); ++q ) //until we reach NULL
  658.                 for ( q = 0; ptr[q]; ++q ) //until we reach NULL
  659.                 {
  660.                     main_buf[buffer_pos] = ptr[q];
  661.                     //values[val_index[q]];     //copy the string passed as a param
  662.                                     //over to the buffer
  663.                     ++buffer_pos;
  664.                    
  665.                 }
  666.                 ++string_pos;
  667.                 ++string_pos;
  668.                 break;
  669.                    
  670.             }
  671.             case 'F':
  672.             case 'f':
  673.             {
  674.                 int i_val[12];
  675.                 ftoa(i_val,values[val_index]);
  676.                 for ( q = 0; (i_val[q]); ++q ) //until we reach NULL
  677.                 {
  678.                     main_buf[buffer_pos] = i_val[q];
  679.                     ++buffer_pos;
  680.                 }
  681.                 ++string_pos;
  682.                 ++string_pos;
  683.                 break;
  684.  
  685.             }
  686.             case 'D':
  687.             case 'd':
  688.             {
  689.                 int f_val[12];
  690.                 itoa(f_val,values[val_index]);
  691.                 for ( q = 0; (f_val[q]); ++q )
  692.                 {
  693.                     main_buf[buffer_pos] = f_val[q];
  694.                     ++buffer_pos;
  695.                 }
  696.                 //TraceS(f_val);
  697.                 ++string_pos;
  698.                 ++string_pos;
  699.                
  700.                 break;
  701.  
  702.             }
  703.             default: return;
  704.         }
  705.         //we copied the insertion, so, resume the rest o the string:
  706.         for ( ; s[string_pos] != '%'; ++string_pos ) //Until we reach NULL
  707.         {
  708.             if (!(s[string_pos])) break;
  709.             //copy the rest of the string:
  710.             main_buf[buffer_pos] = s[string_pos];
  711.             ++buffer_pos;
  712.         }
  713.         ++val_index; //increase for overloads
  714.         //we are on a token of %
  715.        
  716.     }while(val_index < sz);
  717.         TraceS(main_buf); //TraceNL();
  718. }
  719.  
  720. }//end namespace
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement