00001 /***************************************************************************** 00002 * Project: BaBar detector at the SLAC PEP-II B-factory 00003 * Package: RooRarFit 00004 * File: $Id: rarStrParser.rdl,v 1.6 2011/06/16 13:18:50 fwilson Exp $ 00005 * Authors: Lei Zhang 00006 * History: 00007 * 00008 * Copyright (C) 2005-2012, University of California, Riverside 00009 *****************************************************************************/ 00010 #ifndef RAR_STRPARSER 00011 #define RAR_STRPARSER 00012 00013 #include "TList.h" 00014 #include "TString.h" 00015 // #include "TObject.h" 00016 #include "RooFitCore/RooStringVar.hh" 00017 00018 class TObjString; 00019 00027 class rarStrParser : public TObject { 00028 00029 public: 00030 rarStrParser(); 00031 rarStrParser(const char *str); 00032 rarStrParser(const TString str); 00033 rarStrParser(const rarStrParser&); 00034 virtual ~rarStrParser(); 00035 void operator=(const char *str); 00036 void operator=(const TString str); 00037 void operator=(const RooStringVar str); 00038 TString &operator[](const Int_t idx); 00039 void Remove(const Int_t idx=0); 00040 Int_t Index(const TString token); 00041 Bool_t Have(const TString token); 00042 00045 Int_t nArgs() {return _strs.GetSize();} 00046 00047 protected: 00048 void init(); 00049 TObjString *nextToken(); 00050 00051 TString _str; 00052 TList _strs; 00053 00054 private: 00055 Int_t _idx; 00056 ClassDef(rarStrParser, 0) // RooRarFit String Parser class 00057 ; 00058 }; 00059 00060 #endif