#include "arts.h"
#include <map>
#include "make_array.h"
#include "methods.h"
#include "wsv_aux.h"
#include "workspace_ng.h"
Go to the source code of this file.
Functions | |
void | limit_line_length (ostream &os, ostringstream &curline, ostringstream &token, const String &indent, size_t linelen) |
Limit length of output. | |
void | expand_md_data_raw_to_md_data () |
Expand supergeneric methods. | |
void | define_md_map () |
Define MdMap. | |
void | define_md_raw_map () |
Define MdRawMap. | |
bool | format_paragraph (String &s, const String &indent, const size_t linelen, const size_t offset=0) |
void | get_short_wsv_description (String &s, const String &desc) |
ostream & | operator<< (ostream &os, const MdRecord &mdr) |
Output operator for MdRecord. |
The reason for the separation is that the stuff here hardly ever should be changed, whereas methods.cc has to be edited each time a new method is added. See methods.h for more documentation.
Definition in file methods_aux.cc.
void define_md_map | ( | ) |
Define MdMap.
MdMap can be used to find method data by method name.
Definition at line 425 of file methods_aux.cc.
References MdRecord::ActualGroups(), DEBUG_ONLY, md_data, MdMap, MdRecord::Name(), Array< base >::nelem(), MdRecord::Supergeneric(), and wsv_group_names.
Referenced by main().
void define_md_raw_map | ( | ) |
Define MdRawMap.
MdRawMap can be used to find method data by method name. In the md_data_raw lookup table. This is the method table before expansion of supergeneric methods.
We add the _sg_Type string to the methodname here, so that supergeneric methods can be picked out for the right type.
Definition at line 467 of file methods_aux.cc.
References md_data_raw, MdRawMap, and Array< base >::nelem().
Referenced by main().
void expand_md_data_raw_to_md_data | ( | ) |
Expand supergeneric methods.
This creates md_data from md_data_raw, by explicitly expanding supergeneric methods for all groups. That means, e.g., instead of supergeneric method Copy(Any,Any) there will be Copy_sg_Vector(Vector,Vector), Copy_sg_Matrix(Matrix,Matrix), etc..
Not only the GOutType and GInType lists are manipulated, also the method name.
Definition at line 349 of file methods_aux.cc.
References get_wsv_group_id(), MdRecord::GInSpecType(), MdRecord::GOutSpecType(), max, md_data, md_data_raw, Array< base >::nelem(), MdRecord::subst_any_with_group(), MdRecord::subst_any_with_specific_group(), MdRecord::Supergeneric(), and wsv_group_names.
Referenced by main().
Definition at line 520 of file methods_aux.cc.
References my_basic_string< charT >::npos.
Referenced by operator<<().
void limit_line_length | ( | ostream & | os, | |
ostringstream & | curline, | |||
ostringstream & | token, | |||
const String & | indent, | |||
size_t | linelen | |||
) |
Limit length of output.
Automatically inserts linebreaks at certain length.
Definition at line 611 of file methods_aux.cc.
Referenced by operator<<().
ostream& operator<< | ( | ostream & | os, | |
const MdRecord & | mdr | |||
) |
Output operator for MdRecord.
Definition at line 628 of file methods_aux.cc.
References MdRecord::Authors(), MdRecord::Description(), format_paragraph(), get_short_wsv_description(), get_wsv_group_id(), MdRecord::GIn(), MdRecord::GInDefault(), MdRecord::GInDescription(), MdRecord::GInSpecType(), MdRecord::GInType(), MdRecord::GOut(), MdRecord::GOutDescription(), MdRecord::GOutSpecType(), MdRecord::GOutType(), MdRecord::In(), MdRecord::InOnly(), limit_line_length(), MdRecord::Name(), Array< base >::nelem(), my_basic_string< charT >::nelem(), NODEF, MdRecord::Out(), Workspace::wsv_data, and wsv_group_names.