Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
wb_buffer.h
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 #ifndef wb_buffer_INCLUDED
00037 #define wb_buffer_INCLUDED "wb_buffer.h"
00038 
00039 class WN;
00040 
00041 const INT WB_BUFFER_MAX = 132; 
00042 
00043 enum WB_SKIP_CLASS {
00044   WB_SKIP_NONE, 
00045   WB_SKIP_ALPHANUMERIC, 
00046   WB_SKIP_NUMERIC, 
00047   WB_SKIP_HEX
00048 };
00049 
00050 class WB_BUFFER { 
00051   char _buffer[WB_BUFFER_MAX]; 
00052   INT _buffer_start; 
00053 public: 
00054   WB_BUFFER() { _buffer_start = 0; _buffer[0] = '\0'; } 
00055   void Reset_Buffer() { _buffer_start = 0; } 
00056   void Load_Buffer(); 
00057   void Load_Buffer(char s[]); 
00058   void Scan_Blanks_And_Tabs(); 
00059   void Skip_To_Separator(WB_SKIP_CLASS skip_type); 
00060   void Load_Loop(WN** wn_loop);
00061   void Load_UINT32(UINT32* int_value);
00062   void Load_mINT32(mINT32* value);
00063   void Load_mINT64(mINT64* value);
00064   void Load_Integer(INT* int_value); 
00065   void Load_Double(double* value);
00066   void Load_Boolean(BOOL* bool_value, BOOL default_present = FALSE,
00067     BOOL default_value = FALSE);
00068   void Skip_Chars(INT int_value); 
00069   char Scan_Character(); 
00070   void Pushback_Character(); 
00071   void Scan_Integer(INT* int_value); 
00072   void Scan_Unsigned(UINT32* int_value); 
00073   void Scan_HexInteger(INT* int_value); 
00074   void Scan_Alphanumeric(char s[]); 
00075   BOOL Is(char ch) {return _buffer[_buffer_start] == ch;};
00076   BOOL Is_Integer();  
00077   char Get_Command(); 
00078 }; 
00079 
00080 #endif /* wb_buffer_INCLUDED */ 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines