Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

atlas::interpreter::BufferedInput Class Reference

#include <buffer.h>

List of all members.

Public Member Functions

 BufferedInput (std::istream &s)
 BufferedInput (const char *prompt, rl_type rl=NULL, add_hist_type=NULL, const char *prompt2="> ")
 ~BufferedInput ()
char shift ()
void unshift ()
bool eol () const
bool getline ()
void push_file (const char *file_name)
void close_includes ()
const char * point () const
void set_line_no (unsigned long l)
void locate (const char *p, int &line, int &column) const
void show_range (std::ostream &out, unsigned long l0, int c0, unsigned long l1, int c1) const
void push_prompt (char c)
void pop_prompt ()
void reset ()

Private Types

typedef char *(* rl_type )(const char *)
typedef void(* add_hist_type )(const char *)

Private Member Functions

void pop_file ()

Private Attributes

std::istream & base_stream
std::string line_buffer
const char * p
const char *const prompt
const char *const *const prompt2
std::string temp_prompt
const rl_type readline
const add_hist_type add_hist
unsigned long line_no
int cur_lines
int prompt_length
std::stack< std::pair< std::ifstream *,
std::string > > 
input_stack
std::istream * stream


Member Typedef Documentation

typedef void(* atlas::interpreter::BufferedInput::add_hist_type)(const char *) [private]
 

Definition at line 21 of file buffer.h.

typedef char*(* atlas::interpreter::BufferedInput::rl_type)(const char *) [private]
 

Definition at line 19 of file buffer.h.


Constructor & Destructor Documentation

atlas::interpreter::BufferedInput::BufferedInput std::istream &  s  ) 
 

Definition at line 11 of file buffer.cpp.

References stream.

atlas::interpreter::BufferedInput::BufferedInput const char *  prompt,
rl_type  rl = NULL,
add_hist_type  = NULL,
const char *  prompt2 = "> "
 

Definition at line 18 of file buffer.cpp.

atlas::interpreter::BufferedInput::~BufferedInput  ) 
 

Definition at line 25 of file buffer.cpp.

References input_stack.


Member Function Documentation

void atlas::interpreter::BufferedInput::close_includes  ) 
 

Definition at line 35 of file buffer.cpp.

References input_stack, and stream.

Referenced by global_set_identifier().

bool atlas::interpreter::BufferedInput::eol  )  const [inline]
 

Definition at line 72 of file buffer.h.

References p.

Referenced by shift().

bool atlas::interpreter::BufferedInput::getline  ) 
 

Definition at line 50 of file buffer.cpp.

References add_hist, cur_lines, input_stack, line_buffer, line_no, p, pop_file(), prompt, prompt_length, readline, stream, and temp_prompt.

Referenced by atlas::interpreter::Lexical_analyser::reset(), and shift().

void atlas::interpreter::BufferedInput::locate const char *  p,
int &  line,
int &  column
const
 

Definition at line 94 of file buffer.cpp.

References line_buffer.

Referenced by atlas::interpreter::Lexical_analyser::get_token(), and atlas::interpreter::Lexical_analyser::scan_quoted_string().

const char* atlas::interpreter::BufferedInput::point  )  const [inline]
 

Definition at line 54 of file buffer.h.

Referenced by atlas::interpreter::Lexical_analyser::get_token(), and atlas::interpreter::Lexical_analyser::scan_quoted_string().

void atlas::interpreter::BufferedInput::pop_file  )  [private]
 

Definition at line 30 of file buffer.cpp.

References base_stream, input_stack, and stream.

Referenced by getline().

void atlas::interpreter::BufferedInput::pop_prompt  ) 
 

Definition at line 123 of file buffer.cpp.

References temp_prompt.

Referenced by atlas::interpreter::Lexical_analyser::get_token(), and atlas::interpreter::Lexical_analyser::skip_space().

void atlas::interpreter::BufferedInput::push_file const char *  file_name  ) 
 

Definition at line 41 of file buffer.cpp.

References input_stack, and stream.

void atlas::interpreter::BufferedInput::push_prompt char  c  ) 
 

Definition at line 122 of file buffer.cpp.

References temp_prompt.

Referenced by atlas::interpreter::Lexical_analyser::get_token(), and atlas::interpreter::Lexical_analyser::skip_space().

void atlas::interpreter::BufferedInput::reset  ) 
 

Definition at line 127 of file buffer.cpp.

References temp_prompt.

Referenced by atlas::interpreter::Lexical_analyser::reset().

void atlas::interpreter::BufferedInput::set_line_no unsigned long  l  )  [inline]
 

Definition at line 56 of file buffer.h.

char atlas::interpreter::BufferedInput::shift  )  [inline]
 

Definition at line 74 of file buffer.h.

References eol(), getline(), and p.

Referenced by atlas::interpreter::Lexical_analyser::get_token(), atlas::interpreter::Lexical_analyser::scan_quoted_string(), and atlas::interpreter::Lexical_analyser::skip_space().

void atlas::interpreter::BufferedInput::show_range std::ostream &  out,
unsigned long  l0,
int  c0,
unsigned long  l1,
int  c1
const
 

Definition at line 98 of file buffer.cpp.

Referenced by atlas::interpreter::Lexical_analyser::scan_quoted_string().

void atlas::interpreter::BufferedInput::unshift  )  [inline]
 

Definition at line 80 of file buffer.h.

References line_buffer, and p.

Referenced by atlas::interpreter::Lexical_analyser::get_token(), atlas::interpreter::Lexical_analyser::scan_quoted_string(), and atlas::interpreter::Lexical_analyser::skip_space().


Member Data Documentation

const add_hist_type atlas::interpreter::BufferedInput::add_hist [private]
 

Definition at line 30 of file buffer.h.

Referenced by getline().

std::istream& atlas::interpreter::BufferedInput::base_stream [private]
 

Definition at line 24 of file buffer.h.

Referenced by pop_file().

int atlas::interpreter::BufferedInput::cur_lines [private]
 

Definition at line 32 of file buffer.h.

Referenced by getline().

std::stack<std::pair<std::ifstream*,std::string> > atlas::interpreter::BufferedInput::input_stack [private]
 

Definition at line 33 of file buffer.h.

Referenced by close_includes(), getline(), pop_file(), push_file(), and ~BufferedInput().

std::string atlas::interpreter::BufferedInput::line_buffer [private]
 

Definition at line 25 of file buffer.h.

Referenced by getline(), locate(), and unshift().

unsigned long atlas::interpreter::BufferedInput::line_no [private]
 

Definition at line 31 of file buffer.h.

Referenced by getline().

const char* atlas::interpreter::BufferedInput::p [private]
 

Definition at line 26 of file buffer.h.

Referenced by eol(), getline(), shift(), and unshift().

const char* const atlas::interpreter::BufferedInput::prompt [private]
 

Definition at line 27 of file buffer.h.

Referenced by getline().

const char* const * const atlas::interpreter::BufferedInput::prompt2 [private]
 

Definition at line 27 of file buffer.h.

int atlas::interpreter::BufferedInput::prompt_length [private]
 

Definition at line 32 of file buffer.h.

Referenced by getline().

const rl_type atlas::interpreter::BufferedInput::readline [private]
 

Definition at line 29 of file buffer.h.

Referenced by getline().

std::istream* atlas::interpreter::BufferedInput::stream [private]
 

Definition at line 35 of file buffer.h.

Referenced by BufferedInput(), close_includes(), getline(), pop_file(), and push_file().

std::string atlas::interpreter::BufferedInput::temp_prompt [private]
 

Definition at line 28 of file buffer.h.

Referenced by getline(), pop_prompt(), push_prompt(), and reset().


The documentation for this class was generated from the following files:
Generated on Wed Mar 26 16:52:27 2008 for atlas by  doxygen 1.3.9.1