SourceText Class Reference

A smart class to hold the text for parsing. More...

#include <sourcetext.h>

List of all members.

Public Member Functions

 SourceText ()
 Default constructor.
void AppendFile (const String &name)
 Appends contents of file to the source text.
char Current ()
 Return the current character.
void AdvanceChar ()
 Advance position pointer by one character.
void AdvanceLine ()
 Advances position pointer by one line.
const StringFile ()
 Return the filename associated with the current position.
Index Line ()
 Return the line number, but for the file that is associated with the current position.
Index Column ()
 Return the current column.
void Init ()
 This sets the pointer to the first existing character in the text.
bool & LineBreak ()
 Read the line break flag.
bool LineBreak () const
 Const version of LineBreak.

Private Attributes

ArrayOfString mText
 The text.
Index mLine
 Line position in the text.
Index mColumn
 Column position in the text.
ArrayOfIndex mSfLine
 Remember where which source file starts.
ArrayOfString mSfName
 Names associated with.
bool mLineBreak
 Is set to true if the last operation caused a line break.

Friends

ostream & operator<< (ostream &os, const SourceText &text)
 Output operator for SourceText.


Detailed Description

A smart class to hold the text for parsing.

A variable of this class can hold not only the text of the ARTS Control file, but also a position in the text. This is handy for parsing. There is also a function to return the current character and functions to advance the position. (AdvanceChar advances the position to the next character, doing a line break if necessary; AdvanceLine goes to the next line.)

mLine and mColumn are 0 based, but Line and Column are 1 based.

Author:
Stefan Buehler

Definition at line 36 of file sourcetext.h.


Constructor & Destructor Documentation

SourceText::SourceText (  )  [inline]

Default constructor.

Definition at line 40 of file sourcetext.h.


Member Function Documentation

void SourceText::AppendFile ( const String name  ) 

Appends contents of file to the source text.

See also:
read_text_from_file

Definition at line 24 of file sourcetext.cc.

References mSfLine, mSfName, mText, Array< base >::nelem(), and read_text_from_file().

Referenced by ArtsParser::ArtsParser().

char SourceText::Current (  )  [inline]

void SourceText::AdvanceChar (  ) 

void SourceText::AdvanceLine (  ) 

Advances position pointer by one line.

Exceptions:
Eot The end of the text is reached.

Definition at line 62 of file sourcetext.cc.

References Column(), File(), Line(), mColumn, mLine, mLineBreak, mText, and Array< base >::nelem().

Referenced by ArtsParser::eat_whitespace().

const String & SourceText::File (  ) 

Index SourceText::Line (  ) 

Index SourceText::Column (  )  [inline]

void SourceText::Init (  ) 

This sets the pointer to the first existing character in the text.

(First few lines could be empty).

Definition at line 114 of file sourcetext.cc.

References Column(), File(), Line(), mColumn, mLine, mLineBreak, mText, and Array< base >::nelem().

Referenced by ArtsParser::parse_main().

bool& SourceText::LineBreak (  )  [inline]

Read the line break flag.

Set this to false before an operation that you want to monitor and check it afterwards.

Definition at line 78 of file sourcetext.h.

References mLineBreak.

Referenced by ArtsParser::parse_String(), ArtsParser::read_integer(), ArtsParser::read_name(), and ArtsParser::read_numeric().

bool SourceText::LineBreak (  )  const [inline]

Const version of LineBreak.

See also:
LineBreak

Definition at line 82 of file sourcetext.h.

References mLineBreak.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  os,
const SourceText text 
) [friend]

Output operator for SourceText.

(Only used for debugging)

Definition at line 148 of file sourcetext.cc.


Member Data Documentation

The text.

Definition at line 90 of file sourcetext.h.

Referenced by AdvanceChar(), AdvanceLine(), AppendFile(), Current(), Init(), and operator<<().

Line position in the text.

(0 based!)

Definition at line 93 of file sourcetext.h.

Referenced by AdvanceChar(), AdvanceLine(), Current(), File(), Init(), and Line().

Column position in the text.

(0 based!)

Definition at line 96 of file sourcetext.h.

Referenced by AdvanceChar(), AdvanceLine(), Column(), Current(), and Init().

Remember where which source file starts.

Definition at line 99 of file sourcetext.h.

Referenced by AppendFile(), File(), and Line().

Names associated with.

See also:
mSfLine.

Definition at line 102 of file sourcetext.h.

Referenced by AppendFile(), and File().

bool SourceText::mLineBreak [private]

Is set to true if the last operation caused a line break.

Has to be cleared explicitly!

Definition at line 106 of file sourcetext.h.

Referenced by AdvanceChar(), AdvanceLine(), Init(), and LineBreak().


The documentation for this class was generated from the following files:

Generated on Mon Mar 23 14:07:02 2009 for ARTS by  doxygen 1.5.6