void
lex_init (void)
{
- ds_init (NULL, &put_tokstr, 64);
+ ds_init (&put_tokstr, 64);
if (!lex_get_line ())
unexpected_eof ();
}
{
assert (put_token != 0);
token = put_token;
- ds_replace (&tokstr, ds_value (&put_tokstr));
- strncpy (tokid, ds_value (&put_tokstr), 8);
+ ds_replace (&tokstr, ds_c_str (&put_tokstr));
+ strncpy (tokid, ds_c_str (&put_tokstr), 8);
tokid[8] = 0;
tokval = put_tokval;
put_token = 0;
save_token (void)
{
put_token = token;
- ds_replace (&put_tokstr, ds_value (&tokstr));
+ ds_replace (&put_tokstr, ds_c_str (&tokstr));
put_tokval = tokval;
}
negative numbers into two tokens. */
if (*cp == '-')
{
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
while (isspace ((unsigned char) *prog))
prog++;
/* Parse the number, copying it into tokstr. */
while (isdigit ((unsigned char) *prog))
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
if (*prog == '.')
{
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
while (isdigit ((unsigned char) *prog))
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
}
if (*prog == 'e' || *prog == 'E')
{
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
if (*prog == '+' || *prog == '-')
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
while (isdigit ((unsigned char) *prog))
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
}
/* Parse as floating point. */
- tokval = strtod (ds_value (&tokstr), &tail);
+ tokval = strtod (ds_c_str (&tokstr), &tail);
if (*tail)
{
msg (SE, _("%s does not form a valid number."),
- ds_value (&tokstr));
+ ds_c_str (&tokstr));
tokval = 0.0;
ds_clear (&tokstr);
- ds_putchar (&tokstr, '0');
+ ds_putc (&tokstr, '0');
}
token = T_NUM;
}
/* Copy id to tokstr. */
- ds_putchar (&tokstr, toupper ((unsigned char) *prog++));
+ ds_putc (&tokstr, toupper ((unsigned char) *prog++));
while (CHAR_IS_IDN (*prog))
- ds_putchar (&tokstr, toupper ((unsigned char) *prog++));
+ ds_putc (&tokstr, toupper ((unsigned char) *prog++));
/* Copy tokstr to tokid, truncating it to 8 characters. */
- strncpy (tokid, ds_value (&tokstr), 8);
+ strncpy (tokid, ds_c_str (&tokstr), 8);
tokid[8] = 0;
- token = check_id (ds_value (&tokstr), ds_length (&tokstr));
+ token = check_id (ds_c_str (&tokstr), ds_length (&tokstr));
break;
default:
save_token ();
token = T_ID;
ds_replace (&tokstr, id);
- strncpy (tokid, ds_value (&tokstr), 8);
+ strncpy (tokid, ds_c_str (&tokstr), 8);
tokid[8] = 0;
}
\f
const char *
lex_entire_line (void)
{
- return ds_value (&getl_buf);
+ return ds_c_str (&getl_buf);
}
/* As lex_entire_line(), but only returns the part of the current line
/* Remove C-style comments begun by slash-star and terminated by
star-slash or newline. */
quote = comment = 0;
- for (cp = ds_value (&getl_buf); *cp; )
+ for (cp = ds_c_str (&getl_buf); *cp; )
{
/* If we're not commented out, toggle quoting. */
if (!comment)
/* Strip trailing whitespace and terminal dot. */
{
size_t len = ds_length (&getl_buf);
- char *s = ds_value (&getl_buf);
+ char *s = ds_c_str (&getl_buf);
/* Strip trailing whitespace. */
while (len > 0 && isspace ((unsigned char) s[len - 1]))
as necessary. */
if (getl_interactive != 2 && getl_mode == GETL_MODE_BATCH)
{
- char *s = ds_value (&getl_buf);
+ char *s = ds_c_str (&getl_buf);
if (s[0] == '+' || s[0] == '-' || s[0] == '.')
s[0] = ' ';
put_token = '.';
}
- prog = ds_value (&getl_buf);
+ prog = ds_c_str (&getl_buf);
}
\f
/* Token names. */
{
case T_ID:
case T_NUM:
- return xstrdup (ds_value (&tokstr));
+ return xstrdup (ds_c_str (&tokstr));
break;
case T_STRING:
int hexstring = 0;
char *sp, *dp;
- for (sp = ds_value (&tokstr); sp < ds_end (&tokstr); sp++)
+ for (sp = ds_c_str (&tokstr); sp < ds_end (&tokstr); sp++)
if (!isprint ((unsigned char) *sp))
{
hexstring = 1;
*dp++ = '\'';
if (!hexstring)
- for (sp = ds_value (&tokstr); *sp; )
+ for (sp = ds_c_str (&tokstr); *sp; )
{
if (*sp == '\'')
*dp++ = '\'';
*dp++ = (unsigned char) *sp++;
}
else
- for (sp = ds_value (&tokstr); sp < ds_end (&tokstr); sp++)
+ for (sp = ds_c_str (&tokstr); sp < ds_end (&tokstr); sp++)
{
*dp++ = (((unsigned char) *sp) >> 4)["0123456789ABCDEF"];
*dp++ = (((unsigned char) *sp) & 15)["0123456789ABCDEF"];
{
token = T_NUM;
tokval = -tokval;
- ds_replace (&tokstr, ds_value (&tokstr) + 1);
+ ds_replace (&tokstr, ds_c_str (&tokstr) + 1);
save_token ();
token = '-';
}
"multiple of %d."),
gettext (base_name), ds_length (&tokstr), cpb);
- p = ds_value (&tokstr);
+ p = ds_c_str (&tokstr);
for (i = 0; i < nb; i++)
{
int value;
value = value * base + v;
}
- ds_value (&tokstr)[i] = (unsigned char) value;
+ ds_c_str (&tokstr)[i] = (unsigned char) value;
}
ds_truncate (&tokstr, nb);
break;
}
- ds_putchar (&tokstr, *prog++);
+ ds_putc (&tokstr, *prog++);
}
prog++;
int warned = 0;
for (i = 0; i < ds_length (&tokstr); i++)
- if (ds_value (&tokstr)[i] == 0)
+ if (ds_c_str (&tokstr)[i] == 0)
{
if (!warned)
{
"characters. Replacing with spaces."));
warned = 1;
}
- ds_value (&tokstr)[i] = ' ';
+ ds_c_str (&tokstr)[i] = ' ';
}
}
break;
case T_STRING:
- fprintf (stderr, "STRING\t\"%s\"\n", ds_value (&tokstr));
+ fprintf (stderr, "STRING\t\"%s\"\n", ds_c_str (&tokstr));
break;
case T_STOP: