atlas  0.6
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
atlas::interpreter::BufferedInput Class Reference

#include <buffer.h>

Collaboration diagram for atlas::interpreter::BufferedInput:
Collaboration graph
[legend]

Classes

struct  input_record
 

Public Member Functions

 BufferedInput (std::istream &s)
 
 BufferedInput (const char *prompt, rl_type rl=nullptr, add_hist_type=nullptr, const char *prompt2="> ", const char *def_ext=".at")
 
char shift ()
 
void unshift ()
 
bool eol () const
 
bool getline ()
 
bool push_file (const char *file_name, bool skip_seen)
 
void close_includes ()
 
Hash_table::id_type current_file () const
 
const char * name_of (Hash_table::id_type f) const
 
const char * cur_fname () const
 
unsigned int include_depth () const
 
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)
 
char top_prompt () const
 
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
 
const char * def_ext
 
std::string temp_prompt
 
const rl_type readline
 
const add_hist_type add_hist
 
unsigned long line_no
 
int cur_lines
 
int prompt_length
 
containers::mirrored_sl_list< input_recordinput_stack
 
Hash_table input_files_seen
 
BitMap input_files_completed
 
std::istream * stream
 

Member Typedef Documentation

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

Constructor & Destructor Documentation

atlas::interpreter::BufferedInput::BufferedInput ( std::istream &  s)
atlas::interpreter::BufferedInput::BufferedInput ( const char *  prompt,
rl_type  rl = nullptr,
add_hist_type  ah = nullptr,
const char *  prompt2 = "> ",
const char *  def_ext = ".at" 
)

Member Function Documentation

void atlas::interpreter::BufferedInput::close_includes ( )
const char* atlas::interpreter::BufferedInput::cur_fname ( ) const
inline
Hash_table::id_type atlas::interpreter::BufferedInput::current_file ( ) const
inline
bool atlas::interpreter::BufferedInput::eol ( ) const
inline
bool atlas::interpreter::BufferedInput::getline ( )
unsigned int atlas::interpreter::BufferedInput::include_depth ( ) const
inline
void atlas::interpreter::BufferedInput::locate ( const char *  p,
int &  line,
int &  column 
) const
const char* atlas::interpreter::BufferedInput::name_of ( Hash_table::id_type  f) const
inline
const char* atlas::interpreter::BufferedInput::point ( ) const
inline
void atlas::interpreter::BufferedInput::pop_file ( )
private
void atlas::interpreter::BufferedInput::pop_prompt ( )
bool atlas::interpreter::BufferedInput::push_file ( const char *  file_name,
bool  skip_seen 
)
void atlas::interpreter::BufferedInput::push_prompt ( char  c)
void atlas::interpreter::BufferedInput::reset ( )
void atlas::interpreter::BufferedInput::set_line_no ( unsigned long  l)
inline
char atlas::interpreter::BufferedInput::shift ( )
inline
void atlas::interpreter::BufferedInput::show_range ( std::ostream &  out,
unsigned long  l0,
int  c0,
unsigned long  l1,
int  c1 
) const
char atlas::interpreter::BufferedInput::top_prompt ( ) const
void atlas::interpreter::BufferedInput::unshift ( )
inline

Member Data Documentation

const add_hist_type atlas::interpreter::BufferedInput::add_hist
private
std::istream& atlas::interpreter::BufferedInput::base_stream
private
int atlas::interpreter::BufferedInput::cur_lines
private
const char* atlas::interpreter::BufferedInput::def_ext
private
BitMap atlas::interpreter::BufferedInput::input_files_completed
private
Hash_table atlas::interpreter::BufferedInput::input_files_seen
private
containers::mirrored_sl_list<input_record> atlas::interpreter::BufferedInput::input_stack
private
std::string atlas::interpreter::BufferedInput::line_buffer
private
unsigned long atlas::interpreter::BufferedInput::line_no
private
const char* atlas::interpreter::BufferedInput::p
private
const char* const atlas::interpreter::BufferedInput::prompt
private
const char* const * const atlas::interpreter::BufferedInput::prompt2
private
int atlas::interpreter::BufferedInput::prompt_length
private
const rl_type atlas::interpreter::BufferedInput::readline
private
std::istream* atlas::interpreter::BufferedInput::stream
private
std::string atlas::interpreter::BufferedInput::temp_prompt
private

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