00001 // Filename: chanparse.h 00002 // Created by: cary (02Feb99) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved 00008 // 00009 // All use of this software is subject to the terms of the Panda 3d 00010 // Software license. You should have received a copy of this license 00011 // along with this source code; you will also find a current copy of 00012 // the license at http://www.panda3d.org/license.txt . 00013 // 00014 // To contact the maintainers of this program write to 00015 // panda3d@yahoogroups.com . 00016 // 00017 //////////////////////////////////////////////////////////////////// 00018 00019 #ifndef __CHANPARSE_H__ 00020 #define __CHANPARSE_H__ 00021 00022 #include <pandabase.h> 00023 00024 #include <string> 00025 00026 class EXPCL_PANDA ChanParseFunctor { 00027 public: 00028 INLINE ChanParseFunctor() {}; 00029 virtual ~ChanParseFunctor(); 00030 00031 virtual void operator()(std::string) = 0; 00032 }; 00033 00034 int ChanMatchingParen(std::string); 00035 void ChanParse(istream&, ChanParseFunctor*); 00036 00037 INLINE void ChanEatFrontWhite(std::string&); 00038 INLINE void ChanCheckScoping(std::string&); 00039 INLINE void ChanDescope(std::string&); 00040 INLINE std::string ChanReadNextWord(std::string&); 00041 INLINE int ChanReadNextInt(std::string&); 00042 INLINE bool ChanReadNextBool(std::string&); 00043 INLINE int ChanReadNextIntB(std::string&); 00044 INLINE float ChanReadNextFloat(std::string&); 00045 00046 #include "chanparse.I" 00047 00048 #endif /* __CHANPARSE_H__ */