ARTS
2.0.49
|
A smart class to hold the text for parsing. More...
#include <sourcetext.h>
Public Member Functions | |
SourceText () | |
Default constructor. More... | |
void | AppendFile (const String &name) |
Appends contents of file to the source text. More... | |
char | Current () |
Return the current character. More... | |
bool | reachedEot () |
Check if the current position reached the end. More... | |
void | AdvanceChar () |
Advance position pointer by one character. More... | |
void | AdvanceLine () |
Advances position pointer by one line. More... | |
const String & | File () |
Return the filename associated with the current position. More... | |
Index | Line () |
Return the line number, but for the file that is associated with the current position. More... | |
Index | Column () |
Return the current column. More... | |
void | Init () |
This sets the pointer to the first existing character in the text. More... | |
bool & | LineBreak () |
Read the line break flag. More... | |
bool | LineBreak () const |
Const version of LineBreak. More... | |
Private Attributes | |
ArrayOfString | mText |
The text. More... | |
Index | mLine |
Line position in the text. More... | |
Index | mColumn |
Column position in the text. More... | |
ArrayOfIndex | mSfLine |
Remember where which source file starts. More... | |
ArrayOfString | mSfName |
Names associated with. More... | |
bool | mLineBreak |
Is set to true if the last operation caused a line break. More... | |
Friends | |
ostream & | operator<< (ostream &os, const SourceText &text) |
Output operator for SourceText. More... | |
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.
Definition at line 37 of file sourcetext.h.
|
inline |
Default constructor.
Definition at line 41 of file sourcetext.h.
void SourceText::AdvanceChar | ( | ) |
Advance position pointer by one character.
Sets mLineBreak if a line break occured.
Eot | The end of text is reached. |
Definition at line 32 of file sourcetext.cc.
References Column(), File(), Line(), mColumn, mLine, mLineBreak, mText, and Array< base >::nelem().
Referenced by ArtsParser::assertain_character(), ArtsParser::eat_whitespace(), ArtsParser::parse_intvector(), ArtsParser::parse_matrix(), ArtsParser::parse_method(), ArtsParser::parse_method_args(), ArtsParser::parse_numvector(), ArtsParser::parse_String(), ArtsParser::parse_Stringvector(), ArtsParser::read_integer(), ArtsParser::read_name(), and ArtsParser::read_numeric().
void SourceText::AdvanceLine | ( | ) |
Advances position pointer by one line.
Eot | The end of the text is reached. |
Definition at line 66 of file sourcetext.cc.
References Column(), File(), Line(), mColumn, mLine, mLineBreak, mText, and Array< base >::nelem().
Referenced by ArtsParser::eat_whitespace().
void SourceText::AppendFile | ( | const String & | name | ) |
Appends contents of file to the source text.
Definition at line 23 of file sourcetext.cc.
References mSfLine, mSfName, mText, Array< base >::nelem(), and read_text_from_file().
Referenced by ArtsParser::ArtsParser().
|
inline |
Return the current column.
Definition at line 81 of file sourcetext.h.
References mColumn.
Referenced by AdvanceChar(), AdvanceLine(), ArtsParser::assertain_character(), Current(), ArtsParser::eat_whitespace(), Init(), ArtsParser::parse_generic_input(), ArtsParser::parse_generic_output(), ArtsParser::parse_main(), ArtsParser::parse_matrix(), ArtsParser::parse_method(), ArtsParser::parse_method_args(), ArtsParser::parse_specific_input(), ArtsParser::parse_specific_output(), ArtsParser::parse_String(), ArtsParser::read_integer(), ArtsParser::read_name(), ArtsParser::read_name_or_value(), ArtsParser::read_numeric(), ArtsParser::set_gin_to_default(), and ArtsParser::tasklist_insert_set_delete().
|
inline |
Return the current character.
Definition at line 49 of file sourcetext.h.
References Column(), File(), Line(), mColumn, mLine, mText, and reachedEot().
Referenced by ArtsParser::assertain_character(), ArtsParser::eat_whitespace(), ArtsParser::parse_agenda(), ArtsParser::parse_generic_input(), ArtsParser::parse_intvector(), ArtsParser::parse_matrix(), ArtsParser::parse_method(), ArtsParser::parse_method_args(), ArtsParser::parse_numvector(), ArtsParser::parse_String(), ArtsParser::parse_Stringvector(), ArtsParser::read_integer(), ArtsParser::read_name(), ArtsParser::read_name_or_value(), and ArtsParser::read_numeric().
const String & SourceText::File | ( | ) |
Return the filename associated with the current position.
Definition at line 88 of file sourcetext.cc.
References mLine, mSfLine, mSfName, and Array< base >::nelem().
Referenced by AdvanceChar(), AdvanceLine(), ArtsParser::assertain_character(), Current(), ArtsParser::eat_whitespace(), Init(), ArtsParser::parse_agenda(), ArtsParser::parse_generic_input(), ArtsParser::parse_generic_output(), ArtsParser::parse_main(), ArtsParser::parse_matrix(), ArtsParser::parse_method(), ArtsParser::parse_method_args(), ArtsParser::parse_specific_input(), ArtsParser::parse_specific_output(), ArtsParser::parse_String(), ArtsParser::read_integer(), ArtsParser::read_name(), ArtsParser::read_name_or_value(), ArtsParser::read_numeric(), ArtsParser::set_gin_to_default(), and ArtsParser::tasklist_insert_set_delete().
void SourceText::Init | ( | ) |
This sets the pointer to the first existing character in the text.
(First few lines could be empty).
Definition at line 118 of file sourcetext.cc.
References Column(), File(), Line(), mColumn, mLine, mLineBreak, mText, and Array< base >::nelem().
Referenced by ArtsParser::parse_main().
Index SourceText::Line | ( | ) |
Return the line number, but for the file that is associated with the current position.
Definition at line 103 of file sourcetext.cc.
References mLine, mSfLine, and Array< base >::nelem().
Referenced by AdvanceChar(), AdvanceLine(), ArtsParser::assertain_character(), Current(), ArtsParser::eat_whitespace(), Init(), ArtsParser::parse_generic_input(), ArtsParser::parse_generic_output(), ArtsParser::parse_main(), ArtsParser::parse_matrix(), ArtsParser::parse_method(), ArtsParser::parse_method_args(), ArtsParser::parse_specific_input(), ArtsParser::parse_specific_output(), ArtsParser::parse_String(), ArtsParser::read_integer(), ArtsParser::read_name(), ArtsParser::read_name_or_value(), ArtsParser::read_numeric(), ArtsParser::set_gin_to_default(), and ArtsParser::tasklist_insert_set_delete().
|
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 89 of file sourcetext.h.
References mLineBreak.
Referenced by ArtsParser::parse_String(), ArtsParser::read_integer(), ArtsParser::read_name(), and ArtsParser::read_numeric().
|
inline |
Const version of LineBreak.
Definition at line 93 of file sourcetext.h.
References mLineBreak.
|
inline |
Check if the current position reached the end.
Definition at line 57 of file sourcetext.h.
References mColumn, mLine, mText, and Array< base >::nelem().
Referenced by Current(), and ArtsParser::parse_main().
|
friend |
Output operator for SourceText.
(Only used for debugging)
Definition at line 152 of file sourcetext.cc.
|
private |
Column position in the text.
(0 based!)
Definition at line 107 of file sourcetext.h.
Referenced by AdvanceChar(), AdvanceLine(), Column(), Current(), Init(), and reachedEot().
|
private |
Line position in the text.
(0 based!)
Definition at line 104 of file sourcetext.h.
Referenced by AdvanceChar(), AdvanceLine(), Current(), File(), Init(), Line(), and reachedEot().
|
private |
Is set to true if the last operation caused a line break.
Has to be cleared explicitly!
Definition at line 117 of file sourcetext.h.
Referenced by AdvanceChar(), AdvanceLine(), Init(), and LineBreak().
|
private |
Remember where which source file starts.
Definition at line 110 of file sourcetext.h.
Referenced by AppendFile(), File(), and Line().
|
private |
Names associated with.
Definition at line 113 of file sourcetext.h.
Referenced by AppendFile(), and File().
|
private |
The text.
Definition at line 101 of file sourcetext.h.
Referenced by AdvanceChar(), AdvanceLine(), AppendFile(), Current(), Init(), operator<<(), and reachedEot().