SYM = -2,
NUM = -3,
EOF = -4,
+ STR = -5,
};
static int
case SYM: return fmtprint(f, "'%s'", sname);
case NUM: return fmtprint(f, "%g", sval);
case EOF: return fmtprint(f, "EOF");
+ case STR: return fmtprint(f, "%#q", sname);
default: return fmtprint(f, "%d", n);
}
}
*p = 0;
return SYM;
}
+ if(c == '\''){
+ for(p = sname; c = Bgetc(bp), c != '\'' || Bgetc(bp) == '\''; )
+ if(p < sname + sizeof(sname) - 1)
+ *p++ = c;
+ Bungetc(bp);
+ *p = 0;
+ return STR;
+ }
return c;
}
return VH;
e->data = smprint("%g", sval);
return VMULT;
+ case STR:
+ e->data = strdup(sname);
+ return VMULT;
default:
error(lineno, "unexpected %T", t);
return VZ;
else
signal(s->name);
break;
+ case STR:
+ signal(sname);
+ break;
case CMD:
if(strcmp(sname, "TPE") == 0)
goto end;
int i;
fmtinstall('T', Tfmt);
+ quotefmtinstall();
ARGBEGIN {
default: usage();