#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <inttypes.h>
#include <stdint.h>
#include "m_token.h"
#include "m_ms.h"
Defines | |
#define | MY_LL "ll" |
Functions | |
libmangle_gc_context_t * | libmangle_generate_gc (void) |
void | libmangle_release_gc (libmangle_gc_context_t *gc) |
uMToken * | gen_tok (libmangle_gc_context_t *gc, enum eMToken kind, enum eMSToken subkind, size_t addend) |
void | libmangle_dump_tok (FILE *fp, uMToken *p) |
uMToken * | chain_tok (uMToken *l, uMToken *add) |
uMToken * | gen_value (libmangle_gc_context_t *gc, enum eMSToken skind, uint64_t val, int is_signed, int size) |
uMToken * | gen_name (libmangle_gc_context_t *gc, enum eMSToken skind, const char *name) |
uMToken * | gen_dim (libmangle_gc_context_t *gc, enum eMSToken skind, uint64_t val, const char *non_tt_param, int fSigned, int fNegate) |
uMToken * | gen_unary (libmangle_gc_context_t *gc, enum eMSToken skind, uMToken *un) |
uMToken * | gen_binary (libmangle_gc_context_t *gc, enum eMSToken skind, uMToken *l, uMToken *r) |
char * | libmangle_sprint_decl (uMToken *r) |
void | libmangle_print_decl (FILE *fp, uMToken *r) |
#define MY_LL "ll" |
Chains uMTokens together.
[in] | l | uMtoken chain to link up with. |
[in] | add | uMtoken to add to chain. |
uMToken* gen_binary | ( | libmangle_gc_context_t * | gc, | |
enum eMSToken | skind, | |||
uMToken * | l, | |||
uMToken * | r | |||
) |
Generates a binary node token.
[in] | gc | Pointer to garbage collection context. |
[in] | skind | Token subKind. |
[in] | l | Left node element. |
[in] | r | Right node element. |
uMToken* gen_dim | ( | libmangle_gc_context_t * | gc, | |
enum eMSToken | skind, | |||
uint64_t | val, | |||
const char * | non_tt_param, | |||
int | fSigned, | |||
int | fNegate | |||
) |
Constructs a "dim" kind token.
[in] | gc | Pointer to garbage collection context. |
[in] | skind | Token subkind. |
[in] | val | Token numerical value. |
[in] | non_tt_param | pointer to decoded C++ template name. |
[in] | fSigned | Signedness of the numerical value. |
[in] | fNegate | 1 for "val" is negative digit. |
uMToken* gen_name | ( | libmangle_gc_context_t * | gc, | |
enum eMSToken | skind, | |||
const char * | name | |||
) |
Constructs a "name" kind token.
[in] | gc | Pointer to garbage collection context. |
[in] | skind | Token subkind. |
[in] | name | Pointer to name string. |
uMToken* gen_tok | ( | libmangle_gc_context_t * | gc, | |
enum eMToken | kind, | |||
enum eMSToken | subkind, | |||
size_t | addend | |||
) |
uMToken* gen_unary | ( | libmangle_gc_context_t * | gc, | |
enum eMSToken | skind, | |||
uMToken * | un | |||
) |
Constructs a "unary" kind token.
[in] | gc | Pointer to garbage collection context. |
[in] | skind | Token subkind. |
[in] | un | Pointer to leaf element. |
uMToken* gen_value | ( | libmangle_gc_context_t * | gc, | |
enum eMSToken | skind, | |||
uint64_t | val, | |||
int | is_signed, | |||
int | size | |||
) |
Constructs a "value" kind token.
[in] | gc | Pointer to garbage collection context. |
[in] | skind | Token subkind. |
[in] | val | Sets the value on token, |
[in] | is_signed | Signed bit of val. |
[in] | size | Width of val. |
void libmangle_dump_tok | ( | FILE * | fp, | |
uMToken * | p | |||
) |
libmangle_gc_context_t* libmangle_generate_gc | ( | void | ) |
Constructs a garbage collection context token.
void libmangle_print_decl | ( | FILE * | fp, | |
uMToken * | p | |||
) |
Prints C++ name to file descriptor.
[in] | fp | Output file descriptor. |
[in] | p | Token containing information about the C++ name. |
void libmangle_release_gc | ( | libmangle_gc_context_t * | gc | ) |
Releases memory tracked by context.
[in] | gc | Garbage collection context to work on. |
char* libmangle_sprint_decl | ( | uMToken * | r | ) |
Get pointer to decoded C++ name string. Use free() to release returned string.
[in] | r | C++ name token. |