cparser.h Source File

Main Page Class Hierarchy Compound List File List Compound Members

# cparser.h

    00001
    00002
    00003 /*
    00004 Program                 PARSER.H
    00005 Purpose                 General parser with enviroment replacements
    00006                                         See comment in CPP file for further details
    00007 Programmer              R. Spekreijse
    00008 Last Update             20-12-1995
    00009 */
    00010
    00011 #ifndef CPARSER_H
    00012 #define CPARSER_H
    00013
    00014 #ifdef __GNUG__
    00015 #pragma interface
    00016 #endif
    00017
    00018 #include <ctype.h>
    00019 #include <fstream.h>
    00020 #include <iostream.h>
    00021 #include "wx/string.h"
    00022 #ifdef __UNIX__
    00023 #include <strstream.h>
    00024 #else
    00025 #include <strstrea.h>
    00026 #endif
    00027 #include <stdio.h>
    00028 #include <string.h>
    00029 #include <stdlib.h>
    00030
    00031 #include "_dl_itr.h"
    00032
    00033 // this is for the added alias features
    00034 #include "alias.h"
    00035
    00037
    00079 class CommandParser
    00080 {
    00081         public:
    00082                 CommandParser();
    00083                 virtual ~CommandParser();
    00084
    00086                 bool             GetCommand();
    00088                 bool            FlushArg();
    00089
    00091                 wxString    GetErrorMes();
    00092
    00094                 bool            GetEnv(const wxString& envname, wxString& envstring);
    00095
    00097                 DL_List<const wxString*>* GetArgList();
    00099                 DL_Iter<const wxString*>*  GetArgIter();
    00100
    00102                 wxString                GetCommandParsed();
    00103
    00104         protected:
    00105                 bool            Blanks();
    00106       bool      Word();
    00107                 bool            MultiPartWord();
    00108                 bool            QuotedString();
    00109                 bool            BracedString();
    00110                 bool            Comment();
    00111                 bool       VarRef(char type);
    00112                 bool            Name();
    00113
    00114       //to make derived classes work
    00115                 virtual char PeekNextC()=0;
    00116       virtual void IncC()=0;
    00117
    00118         protected:
    00119                 char                                    a;
    00120                 AliasList*                      _aliaslist;
    00121       DL_List<const wxString*>*   _arglist;
    00122       DL_Iter<const wxString*>*   _I;
    00123                 wxString                                _commandsofar;
    00124
    00125    private:
    00126                 wxString                                _error_mes;
    00127       wxString                  _b;
    00128       wxString                          _varref;
    00129
    00130 };
    00131
    00132
    00134
    00139 class Evalstring : public CommandParser, public ostrstream
    00140 {
    00141         public:
    00142                 Evalstring(AliasList* aliaslist);
    00143                 ~Evalstring();
    00144
    00145                 bool    Parse(wxString& tostring);
    00146                 const wxString*         GetValue(int i);
    00147                 bool    GetNextCommand();
    00148
    00149
    00150         protected:
    00151
    00152                 void            IncC();
    00153                 char            PeekNextC();
    00154
    00155   private:
    00156       int               _linenumber;
    00157       char*             _commands;
    00158       char*     _c;
    00159
    00160 };
    00161
    00162 #endif

cparser.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page