Ignore:
Timestamp:
09/16/02 10:10:17 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mdata/MDataChain.cc

    r1493 r1524  
    9191#include "MDataValue.h"
    9292#include "MDataMember.h"
    93 #
     93#include "MDataElement.h"
     94
    9495ClassImp(MDataChain);
    9596
     
    164165    for (int i=0; i<l; i++)
    165166    {
    166         if (!isalnum(txt[i]) && txt[i]!='.' &&
     167        if (!isalnum(txt[i]) && txt[i]!='.' && /*txt[i]!='['&&txt[i]!=']'&&*/
    167168            ((txt[i]!='-' && txt[i]!='+') || i!=0))
    168169            return i;
     
    172173}
    173174
    174 Int_t MDataChain::GetBracket(TString txt)
     175Int_t MDataChain::GetBracket(TString txt, char open, char close)
    175176{
    176177    Int_t first=1;
    177178    for (int cnt=0; first<txt.Length(); first++)
    178179    {
    179         if (txt[first]=='(')
     180        if (txt[first]==open)
    180181            cnt++;
    181         if (txt[first]==')')
     182        if (txt[first]==close)
    182183            cnt--;
    183184        if (cnt==-1)
     
    197198
    198199    if (txt=="abs")   return kEAbs;
     200    if (txt=="fabs")  return kEAbs;
    199201    if (txt=="log")   return kELog;
    200202    if (txt=="log10") return kELog10;
     
    238240                // Search for the corresponding bracket
    239241                //
    240                 Int_t first=GetBracket(txt);
     242                Int_t first=GetBracket(txt, '(', ')');
    241243
    242244                if (first==txt.Length())
     
    364366            txt = txt.Strip(TString::kBoth);
    365367
     368            if (!txt.IsNull() && txt[0]=='[')
     369            {
     370                Int_t first = GetBracket(txt, '[', ']');
     371                TString op  = txt(1, first-1);
     372                txt.Remove(0, first+1);
     373
     374                newmember = new MDataElement(text, atoi(op));
     375                break;
     376            }
    366377            if ((txt.IsNull() || txt[0]!='(') && text[0]!='-' && text[0]!='+')
    367378            {
     
    379390            }
    380391
    381             Int_t first = GetBracket(txt);
     392            Int_t first = GetBracket(txt, '(', ')');
    382393            TString sub = op==kENegative || op==kEPositive ? text.Remove(0,1) + txt : txt(1, first-1);
    383394            txt.Remove(0, first+1);
    384395
    385396            newmember = new MDataChain(sub, op);
    386 
    387397            if (!newmember->IsValid())
    388398            {
Note: See TracChangeset for help on using the changeset viewer.