Mercurial > hg > octave-lyh
diff src/symtab.h @ 4913:c8368716bab3
[project @ 2004-07-23 16:00:48 by jwe]
author | jwe |
---|---|
date | Fri, 23 Jul 2004 16:00:49 +0000 |
parents | 05973ead74eb |
children | 1c0442da75fd |
line wrap: on
line diff
--- a/src/symtab.h +++ b/src/symtab.h @@ -45,6 +45,15 @@ class symbol_record; class symbol_table; +struct +whos_parameter +{ + char command, modifier; + int parameter_length, first_parameter_length, dimensions, balance; + std::string text; + std::string line; +}; + // Individual records in a symbol table. class @@ -146,6 +155,18 @@ bool is_eternal (void) const { return eternal; } + bool is_matrix_type (void) const + { return definition.is_matrix_type (); } + + size_t byte_size (void) const + { return definition.byte_size (); }; + + int numel (void) const + { return definition.numel (); }; + + dim_vector dims (void) const + { return definition.dims (); } + int rows (void) const { return definition.rows (); } int columns (void) const { return definition.columns (); } @@ -325,6 +346,23 @@ bool is_static (void) const { return tagged_static; } void unmark_static (void) { tagged_static = false; } + bool is_matrix_type (void) const + { return definition->is_matrix_type (); } + + size_t byte_size (void) const + { return definition->byte_size (); }; + + int numel (void) const + { return definition->numel (); }; + + dim_vector dims (void) const { return definition->dims (); } + + int dimensions_string_req_first_space (int print_dims) const; + + int dimensions_string_req_total_space (int print_dims) const; + + std::string make_dimensions_string (int print_dims) const; + int rows (void) const { return definition->rows (); } int columns (void) const { return definition->columns (); } @@ -351,7 +389,8 @@ void pop_context (void); - void print_symbol_info_line (std::ostream& os) const; + void print_symbol_info_line (std::ostream& os, + std::list<whos_parameter>& params) const; void print_info (std::ostream& os, const std::string& prefix = std::string ()) const; @@ -454,6 +493,11 @@ int size (void) const; Array<symbol_record *> + subsymbol_list (const string_vector& pats = string_vector (), + unsigned int type = SYMTAB_ALL_TYPES, + unsigned int scope = SYMTAB_ALL_SCOPES) const; + + Array<symbol_record *> symbol_list (const string_vector& pats = string_vector (), unsigned int type = SYMTAB_ALL_TYPES, unsigned int scope = SYMTAB_ALL_SCOPES) const; @@ -511,6 +555,13 @@ static unsigned long int symtab_count; + void + print_descriptor (std::ostream& os, + std::list<whos_parameter> params) const; + + std::list<whos_parameter> + parse_whos_line_format (Array<symbol_record *>& symbols) const; + unsigned int hash (const std::string& s); // No copying! @@ -520,6 +571,9 @@ symbol_table& operator = (const symbol_table&); }; +// Defines layout for the whos/who -long command. +extern std::string Vwhos_line_format; + #endif /*