LIBINT  2.1.0-stable
Public Member Functions | List of all members
libint2::CppCodeContext Class Reference

CppCodeContext is an implementation of CodeContext for C++. More...

#include <context.h>

Inheritance diagram for libint2::CppCodeContext:
Inheritance graph
[legend]
Collaboration diagram for libint2::CppCodeContext:
Collaboration graph
[legend]

Public Member Functions

 CppCodeContext (const SafePtr< CompilationParameters > &cparams, bool vectorize=false)
 
std::string code_prefix () const
 Implementation of CodeContext::code_prefix()
 
std::string code_postfix () const
 Implementation of CodeContext::code_postfix()
 
std::string std_header () const
 Implementation of CodeContext::std_header()
 
std::string std_function_header () const
 Implementation of CodeContext::std_function_header()
 
std::string label_to_name (const std::string &label) const
 Implementation of CodeContext::label_to_name(label)
 
std::string declare (const std::string &type, const std::string &name) const
 Implementation of CodeContext::declare()
 
std::string declare_v (const std::string &type, const std::string &name, const std::string &nelem) const
 Implementation of CodeContext::declare_v()
 
std::string decldef (const std::string &type, const std::string &name, const std::string &value)
 decldef returns a statement which declares variable named 'name' of type 'type' and defines its value to be 'value'
 
std::string assign (const std::string &name, const std::string &value)
 Implementation of CodeContext::assign()
 
std::string accumulate (const std::string &name, const std::string &value)
 Implementation of CodeContext::accumulate()
 
std::string assign_binary_expr (const std::string &name, const std::string &left, const std::string &oper, const std::string &right)
 Implementation of CodeContext::assign_binary_expr()
 
std::string assign_ternary_expr (const std::string &name, const std::string &arg1, const std::string &oper1, const std::string &arg2, const std::string &oper2, const std::string &arg3)
 assign_ternary_expr returns a statement which assigns ternary expression 'arg1 oper1 arg2 oper2 arg3' to variable 'name'
 
std::string accumulate_binary_expr (const std::string &name, const std::string &left, const std::string &oper, const std::string &right)
 Implementation of CodeContext::accumulate_binary_expr()
 
std::string accumulate_ternary_expr (const std::string &name, const std::string &arg1, const std::string &oper1, const std::string &arg2, const std::string &oper2, const std::string &arg3)
 accumulate_ternary_expr returns a statement which accumulates ternary expression 'arg1 oper1 arg2 oper2 arg3' to variable 'name'
 
std::string stack_address (const DGVertex::Address &a) const
 Implementation of CodeContext::stack_address()
 
std::string macro_define (const std::string &name) const
 Implementation of CodeContext::macro_define()
 
std::string macro_define (const std::string &name, const std::string &value) const
 Implementation of CodeContext::macro_define()
 
virtual std::string macro_if (const std::string &name) const
 Implementation of CodeContext::macro_if()
 
virtual std::string macro_ifdef (const std::string &name) const
 Implementation of CodeContext::macro_ifdef()
 
virtual std::string macro_endif () const
 Implementation of CodeContext::macro_endif()
 
std::string comment (const std::string &statement) const
 Implementation of CodeContext::comment(statement)
 
std::string open_block () const
 Implementation of CodeContext::open_block()
 
std::string close_block () const
 Implementation of CodeContext::close_block()
 
std::string end_of_stat () const
 Implementation of CodeContext::end_of_stat()
 
std::string value_to_pointer (const std::string &val) const
 Implementation of CodeContext::value_to_pointer()
 
SafePtr< ForLoopfor_loop (std::string &varname, const SafePtr< Entity > &less_than, const SafePtr< Entity > &start_at) const
 Implementation of CodeContext::for_loop()
 
std::string inteval_type_name (const std::string &task) const
 Implementation of CodeContext::inteval_type_name()
 
std::string inteval_spec_type_name (const std::string &task) const
 Implementation of CodeContext::inteval_spec_type_name()
 
std::string inteval_gen_type_name () const
 Implementation of CodeContext::inteval_spec_type_name()
 
- Public Member Functions inherited from libint2::CodeContext
const SafePtr< CompilationParameters > & cparams () const
 Returns the CompilationParameters used to create this context.
 
void turn_comments (bool on)
 turn comments on and off (the default is on)
 
bool comments_on () const
 returns true if to print comments
 
virtual void reset ()
 this function resets the context to be used for the next source file
 
template<typename T >
std::string unique_name () const
 unique_name<T> returns a unique name for a variable of type T
 
template<typename T >
std::string type_name () const
 type_name<T> returns name for type T
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 
template<>
std::string type_name () const
 

Additional Inherited Members

- Protected Member Functions inherited from libint2::CodeContext
 CodeContext (const SafePtr< CompilationParameters > &cparams)
 Lone constructor takes CompilationParams.
 
unsigned int next_fp_index () const
 next fp index
 
unsigned int next_int_index () const
 next int index
 
- Static Protected Member Functions inherited from libint2::CodeContext
static std::string replace_chars (const std::string &S, const std::string &From, const std::string &To)
 replaces every appearance of From with To in S
 

Detailed Description

CppCodeContext is an implementation of CodeContext for C++.


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