Tweak cord formatting
This commit is contained in:
parent
605eb45626
commit
5d2d54ae0e
@ -318,7 +318,7 @@ CORD compile(env_t *env, ast_t *ast)
|
||||
CORD_appendf(&cord_func, "\treturn use_color ? \"\\x1b[0;1m%s\\x1b[m(\\x1b[2m...\\x1b[m)\" : \"%s(...)\";\n}",
|
||||
def->name, def->name);
|
||||
} else {
|
||||
CORD_appendf(&cord_func, "\treturn CORD_asprintf(use_color ? \"\\x1b[0;1m%s\\x1b[m(", def->name);
|
||||
CORD_appendf(&cord_func, "\treturn StrF(use_color ? \"\\x1b[0;1m%s\\x1b[m(", def->name);
|
||||
for (arg_ast_t *field = def->fields; field; field = field->next) {
|
||||
CORD_appendf(&cord_func, "%s=\\x1b[35m%%r\\x1b[m", field->name);
|
||||
if (field->next) cord_func = CORD_cat(cord_func, ", ");
|
||||
@ -379,7 +379,7 @@ CORD compile(env_t *env, ast_t *ast)
|
||||
for (ast_list_t *target = assign->targets; target; target = target->next)
|
||||
CORD_appendf(&code, "%r = $%ld;\n", compile(env, target->ast), i++);
|
||||
|
||||
CORD expr_cord = "CORD_asprintf(\"";
|
||||
CORD expr_cord = "StrF(\"";
|
||||
for (ast_list_t *target = assign->targets; target; target = target->next)
|
||||
expr_cord = CORD_cat(expr_cord, target->next ? "%r, " : "%r");
|
||||
expr_cord = CORD_cat(expr_cord, "\"");
|
||||
|
10
nextlang.h
10
nextlang.h
@ -40,13 +40,13 @@
|
||||
|
||||
CORD as_cord(void *x, bool use_color, const char *fmt, ...);
|
||||
|
||||
#define CORD_asprintf(...) ({ CORD $c; CORD_sprintf(&$c, __VA_ARGS__); $c; })
|
||||
#define StrF(...) ({ CORD $c; CORD_sprintf(&$c, __VA_ARGS__); $c; })
|
||||
#define $var(var, val) __typeof(val) var = val
|
||||
#define $cord(x) _Generic(x, bool: x ? "yes" : "no", \
|
||||
int8_t: CORD_asprintf("%d", x), \
|
||||
int16_t: CORD_asprintf("%d", x), \
|
||||
int32_t: CORD_asprintf("%d", x), int64_t: CORD_asprintf("%ld", x), \
|
||||
double: CORD_asprintf("%g", x), float: CORD_asprintf("%g", x), \
|
||||
int8_t: StrF("%d", x), \
|
||||
int16_t: StrF("%d", x), \
|
||||
int32_t: StrF("%d", x), int64_t: StrF("%ld", x), \
|
||||
double: StrF("%g", x), float: StrF("%g", x), \
|
||||
CORD: x, \
|
||||
array_t: as_cord($stack(x), false, "[ ]"), \
|
||||
default: "???")
|
||||
|
2
util.c
2
util.c
@ -70,7 +70,7 @@ public char *mangle(const char *name)
|
||||
return mangled;
|
||||
}
|
||||
|
||||
CORD CORD_asprintf(const char *fmt, ...)
|
||||
CORD CORD_asprintf(CORD fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
2
util.h
2
util.h
@ -25,7 +25,7 @@
|
||||
char *heap_strn(const char *str, size_t len);
|
||||
char *heap_str(const char *str);
|
||||
char *heap_strf(const char *fmt, ...);
|
||||
CORD CORD_asprintf(const char *fmt, ...);
|
||||
CORD CORD_asprintf(CORD fmt, ...);
|
||||
#define CORD_appendf(cord, fmt, ...) CORD_sprintf(cord, "%r" fmt, *(cord) __VA_OPT__(,) __VA_ARGS__)
|
||||
|
||||
#define asprintfa(...) ({ char *_buf = alloca(snprintf(0, 0, __VA_ARGS__)); sprintf(_buf, __VA_ARGS__); _buf; })
|
||||
|
Loading…
Reference in New Issue
Block a user