Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

more::lang Namespace Reference

C++ language and compiler details. More...

Compounds

Typedefs

Enumerations

Functions

Variables


Detailed Description

C++ language and compiler details.

Access to structure data and functions based on runtime descriptions. Code generation, compilation and linkage.


Typedef Documentation

typedef void(* more::lang::fn_ptr_t)()
 

Type used for function pointers with unknown prototype.

typedef int_least16_t more::lang::int16_t
 

typedef int_least32_t more::lang::int32_t
 

typedef int_least8_t more::lang::int8_t
 

typedef int_least16_t more::lang::int_fast16_t
 

typedef int_least32_t more::lang::int_fast32_t
 

typedef int_least8_t more::lang::int_fast8_t
 

typedef signed char more::lang::int_least8_t
 

a signed integer at least 8 bits wide.

typedef long more::lang::intmax_t
 

typedef int more::lang::intptr_t
 

typedef uint_least16_t more::lang::uint16_t
 

typedef uint_least32_t more::lang::uint32_t
 

typedef uint_least8_t more::lang::uint8_t
 

typedef uint_least16_t more::lang::uint_fast16_t
 

typedef uint_least32_t more::lang::uint_fast32_t
 

typedef uint_least8_t more::lang::uint_fast8_t
 

typedef unsigned char more::lang::uint_least8_t
 

an unsigned integer at least 8 bits wide.

typedef unsigned long more::lang::uintmax_t
 

typedef unsigned int more::lang::uintptr_t
 


Enumeration Type Documentation

enum more::lang::lang_t
 

An enum type to identify a programming language.

Enumeration values:
lang_undefined 
lang_c 
lang_cxx 
lang_scheme 
lang_java 
lang_shell 
lang_perl 
lang_f77 
lang_f90 
lang_end 


Function Documentation

ct_type const* arithmetic_result_type (  ct_type const *    x,
ct_type const *    y
) 
 

Return result type of a binary arithmetic operation on x and y, or 0 if invalid.

The result is detemined by type promotion and coversion rule.

package* bits_package (    ) 
 

std::string c_header_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

std::string c_source_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

template<typename T>
ct_type const* ct_type_of (  T    x )  [inline]
 

Return type ct_type descriptor of T.

template<typename T>
ct_type const* ct_type_of (    )  [inline]
 

Returns the ct_type descriptor of T.

If T is not a builtin type, or a pointer to or array of such, register_ct_type_of must be called once first with the same type argument to register the type descriptor.

std::string cxx_header_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

std::string cxx_source_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

std::string dlopen_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

bool equal (  location *    locn0,
location *    locn1
)  [inline]
 

bool equal (  resolver *    h0,
resolver *    h1
)  [inline]
 

bool equal (  ct_type const *    t0,
ct_type const *    t1
)  [inline]
 

Return true if t0 and t1 are equal, taking into account CV qualifiers.

std::string header_file_name (  std::string const &    bname,
lang_t    lang,
std::string const &    dir = "."
) 
 

std::string language_name (  lang_t    lang ) 
 

std::string library_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

std::string ltobject_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

cx_expr* make_assignment (  cx_expr *    dst,
cx_expr *    src
) 
 

cx_expr* make_bitand (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_bitlsh (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_bitnot (  cx_expr *    ) 
 

cx_expr* make_bitor (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_bitrsh (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_bitxor (  cx_expr *   ,
cx_expr *   
) 
 

cx_block* make_block (    )  [inline]
 

cx_expr* make_break (    ) 
 

cx_call* make_call (  cx_expr *    fn,
...   
) 
 

Return the representation of a function call to fn.

The arguments is a (cx_expr*)0-terminated VA list of cx_expr*.

cx_expr* make_cast (  ct_type const *   ,
cx_expr *   
) 
 

cx_expr* make_deref_expr (  cx_expr *    ) 
 

cx_expr* make_difference (  cx_expr *    x,
cx_expr *    y
) 
 

cx_expr* make_do_while (  cx_expr *    blk,
cx_expr *    cond
) 
 

cx_expr* make_element_expr (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_equal (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_expr (  char const *    pattern,
ct_type const *   ,
...   
) 
 

Create a C expression.

For each "%!" in pattern, there shall be one cx_expr* VA argument. The VA list need not be 0-terminated, and is not checked. Use a more specific make_... function if available.

cx_expr* make_less (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_lesseq (  cx_expr *   ,
cx_expr *   
) 
 

cx_expr* make_literal (  char const *    x )  [inline]
 

cx_expr* make_literal (  unsigned long    x )  [inline]
 

cx_expr * more::lang::make_literal (  long    x )  [inline]
 

cx_expr* make_literal (  unsigned int    x )  [inline]
 

cx_expr* make_literal (  int    x )  [inline]
 

cx_expr* make_literal (  char    x )  [inline]
 

cx_expr* make_modulus (  cx_expr *    x,
cx_expr *    y
) 
 

cx_expr* make_negation (  cx_expr *    x ) 
 

cx_expr* make_not (  cx_expr *    ) 
 

cx_expr* make_product (  cx_expr *    x,
cx_expr *    y
) 
 

ct_proto* make_proto (  ct_type const *    arg0,
...   
) 
 

Make a prototype with given arguments and result type.

The argument types are listed first, followed by the result type, followed by (ct_type*)0.

cx_expr* make_quotient (  cx_expr *    x,
cx_expr *    y
) 
 

cx_expr* make_return (    ) 
 

cx_expr* make_return (  cx_expr *    x ) 
 

cx_expr* make_stmt (  char const *    pattern,
...   
) 
 

Same as make_expr(pattern, ct_type_of<void>(), ...).

Use a more specific make_... function if available.

cx_expr* make_sum (  cx_expr *    x,
cx_expr *    y
) 
 

cx_expr* make_while (  cx_expr *    cond,
cx_expr *    blk
) 
 

bool parse_header (  rt_package *    dest,
char const *    hdr
) 
 

std::string program_file_name (  std::string const &    bname,
std::string const &    dir = "."
) 
 

template<typename T>
void register_ct_type_of (  ct_type const *    t )  [inline]
 

Provide a type descriptor t for the type T.

package* self_package (    ) 
 

An anonymous package containing the symbols of the running program.

Precondition:
The program must be compiled with -export-dynamic or -dlopen self (see the Libtool documentation).
Exceptions:
std::runtime_error  if dlopen-ing itself is not possible.

std::string source_file_name (  std::string const &    bname,
lang_t    lang,
std::string const &    dir = "."
) 
 


Variable Documentation

template more::lang::cx_literal<char const*>
 

template more::lang::cx_literal<char>
 

template more::lang::cx_literal<int>
 

template more::lang::cx_literal<long double>
 

template more::lang::cx_literal<long>
 

template more::lang::cx_literal<unsigned int>
 

template more::lang::cx_literal<unsigned long>
 


Generated on Sat Sep 7 19:12:46 2002 for more with Doxygen 1.2.13.1. Doxygen 1.2.13.1 is written and copyright 1997-2002 by Dimitri van Heesch.