nedfilebuffer.h

Go to the documentation of this file.
00001 //==========================================================================
00002 //  NEDFILEBUFFER.H - part of
00003 //
00004 //                     OMNeT++/OMNEST
00005 //            Discrete System Simulation in C++
00006 //
00007 //==========================================================================
00008 
00009 /*--------------------------------------------------------------*
00010   Copyright (C) 2002-2005 Andras Varga
00011 
00012   This file is distributed WITHOUT ANY WARRANTY. See the file
00013   `license' for details on this and other legal matters.
00014 *--------------------------------------------------------------*/
00015 
00016 #ifndef __NEDFILEBUFFER_H
00017 #define __NEDFILEBUFFER_H
00018 
00019 #include "nedparser.h"   // for YYLTYPE
00020 
00029 class NEDFileBuffer
00030 {
00031   private:
00032     enum {COMMENT_LINE, BLANK_LINE, CODE_LINE};
00033 
00034     char *wholeFile;
00035 
00036     int numLines;
00037     char **lineBeg;
00038 
00039     char *end;
00040     char savedChar;
00041 
00042     char *commentBuf;
00043     int commentBufLen;
00044 
00045   private:
00046     int lineType(char *s);
00047     int lineContainsCode(char *s);
00048     int getIndent(char *s);
00049     int lastColumn(char *s);
00050     char *getPosition(int line, int column);
00051 
00052     bool indexLines();
00053     int topLineOfBannerComment(int li);
00054     char *stripComment(const char *s);
00055 
00056   public:
00060     NEDFileBuffer();
00061 
00065     ~NEDFileBuffer();
00066 
00072     bool readFile(const char *filename);
00073 
00079     bool setData(const char *data);
00080 
00088     const char *get(YYLTYPE pos);
00089 
00093     const char *getFileComment();
00094 
00098     const char *getBannerComment(YYLTYPE pos);
00099 
00103     const char *getTrailingComment(YYLTYPE pos);
00104 
00108     const char *getFullText();
00109 };
00110 
00111 #endif
00112 

Generated on Sat Oct 21 17:47:58 2006 for OMNeT++/OMNEST NEDXML by  doxygen 1.4.6