} else if (c=='\'' || c=='\"') { //character or string literal
array_char string = array_new(tl);
s = read_cstring(&string, s, e, c, mq);
if (s<e) s++; //advance past endquote (if available)
add(.type = c=='\'' ? TOK_CHAR : TOK_STRING,
{.string = string});
} else if (c=='\'' || c=='\"') { //character or string literal
array_char string = array_new(tl);
s = read_cstring(&string, s, e, c, mq);
if (s<e) s++; //advance past endquote (if available)
add(.type = c=='\'' ? TOK_CHAR : TOK_STRING,
{.string = string});