xlate:
	proc;
	/* translate an M-expression to S-expression form */
	if accum = 'label' then
		do;
		line = line || '(LABEL';
		call scan();
		if accum = '[' then
			call scan();
		else
			call syntax();
		call x_var();
		call x_exp();
		if accum = ']' then
			call scan();
		else
			call syntax();
		line = line || ')';
		end;
	else
	if accum = 'lambda' then
		do;
		line = line || '(LAMBDA ';
		call scan();
		if accum = '[' then
			call scan();
		else
			call syntax();
		call x_formal();
		call xx();
		if accum = ']' then
			call scan();
		else
			call syntax();
		end;
	else
		do;
		line = line ||'(';
		call x_func();
		if accum = '[' then
			call scan();
		else
			call syntax();
			do while (accum ^= ']');
			call x_arg();
			end;
		end;
