Пример #1
0
void
makelattr(char *p, char *q)	/* "locus" attribute; x and y coordinate lists via varnames */
{
	YYSTYPE val;
	val.p = p;
	makeattr(XLIST, 0, val);
	val.p = q;
	makeattr(YLIST, 0, val);
}
Пример #2
0
void
makeoattr(int type, obj *o)	/* obj* attr */
{
	YYSTYPE val;
	val.o = o;
	makeattr(type, 0, val);
}
Пример #3
0
void
makefattr(int type, int sub, double f)	/* float attr */
{
	YYSTYPE val;
	val.f = f;
	makeattr(type, sub, val);
}
Пример #4
0
void
makedattr(char *name)		/* dash pattern (array of dash/space widths) */
{
	int	n;
struct	symtab	*p;
	YYSTYPE	val;

	if (name) {
		if ((p = lookup(name)) == NULL) {
			yyerror("no variable named %s", name);
			return;
		}
		n = p->s_dim+1;
	}
	else {
		n = nexpr;
		nexpr = 0;
	}
	if ((val.a = (float *)malloc(sizeof(float)*(n+1))) == NULL)
		yyerror("out of room in makedattr");
	else {
		val.a[0] = (float)n;
		while (n--)
			val.a[n+1] = (name? p->s_val.a[n] : exprlist[n]);
	}
	makeattr(DASHPAT, 0, val);
}
Пример #5
0
void
makeiattr(int type, int i)	/* int attr */
{
	YYSTYPE val;
	val.i = i;
	makeattr(type, 0, val);
}
Пример #6
0
void
makevattr(char *p)	/* varname attribute */
{
	YYSTYPE val;
	val.p = p;
	makeattr(VARNAME, 0, val);
}
Пример #7
0
void
maketattr(int sub, char *p)	/* text attribute: takes two */
{
	YYSTYPE val;
	val.p = p;
	makeattr(TEXTATTR, sub, val);
}
Пример #8
0
Attr *makesattr(char *s)		/* make an Attr cell containing s */
{
	Attr *ap = makeattr(STRING, sizexpr, s, just, sizeop);
	just = sizeop = 0;
	sizexpr = 0.0;
	return ap;
}
Пример #9
0
void
maketattr(int sub, char *p)	/* text attribute: takes two */
{
	YYSTYPE val;
	val.p = p;
	if (sub == 0)
		sub = def_textattr;
	else if (sub & (CENTER|LJUST|RJUST))
		def_textattr = (def_textattr & ~(CENTER|LJUST|RJUST)) | sub;
	else if (sub & (ABOVE|BELOW))
		def_textattr = (def_textattr & ~(ABOVE|BELOW)) | sub;
	makeattr(TEXTATTR, sub, val);
}
Пример #10
0
Attr *
makefattr(int type, double fval)	/* set double in attribute */
{
	return makeattr(type, fval, (char *) 0, 0, 0);
}