improved REAL constant and string constant stab generation

This commit is contained in:
ceriel 1990-08-10 18:01:50 +00:00
parent c7a5b07da7
commit 36b11dc296

View file

@ -340,16 +340,28 @@ stb_string(df, kind)
adds_db_str(sprint(buf, "c%ld;", df->con_const.TOK_INT));
break;
case T_REAL:
addc_db_str('r');
if (! df->con_const.TOK_REAL) {
char buf2[FLT_STRLEN];
flt_flt2str(&df->con_const.TOK_RVAL, buf2, FLT_STRLEN);
adds_db_str(sprint(buf, "r%s;", buf2));
adds_db_str(buf2);
}
else adds_db_str(sprint(buf, "r%s;", df->con_const.TOK_REAL));
else adds_db_str(df->con_const.TOK_REAL);
addc_db_str(';');
break;
case T_STRING:
adds_db_str(sprint(buf, "s'%s';", df->con_const.TOK_STR));
case T_STRING: {
register char *p = df->con_const.TOK_STR;
adds_db_str("s'");
while (*p) {
if (*p == '\'' || *p == '\\') {
addc_db_str('\\');
}
addc_db_str(*p++);
}
adds_db_str("';");
}
break;
case T_ENUMERATION:
addc_db_str('e');