static    char    sccsid[]="%Z% %M% %I% %E% %U%";
/*************************************************/
/*  Program name                                 */
/*       int       col_mn_tr_exec                */
/* --------------------------------------------- */
/*  (I/O)                                        */
/*       Out        0   :Normal                  */
/*                 -1   :AbNormal                */
/* --------------------------------------------- */
/*  Function :                                   */
/*     Paragraph タグの処理を行う。              */
/* --------------------------------------------- */
/*************************************************/
#include "colmn.h"

extern condList  CLcList;	/* 情報リスト */
extern tableRoot CLtbl;		/* 解析するタグ及び文字が格納される領域*/
extern CLNCB     CLSTCB;	/* タグの構文解析を行うための領域 */

/*********************************************/
/*                                           */
/*********************************************/
int col_mn_tr_exec()
{
	static char *_fn_="col_mn_tr_exec";
	int rc,min_prm,ok_prm;
	char *p,c,*p0;
	qSubCommand *sc;

	if (CLcList.cmd.cid == C_CALL) min_prm = 1;
	else min_prm = 2;

	rc = CLcList.cmd.sub_cid = 0;
	if (CLcList.cmd.prmnum > 0) {
		ok_prm = 1;
		p0 = p = CLcList.cmd.prmp[0]->prp;
		if ((c=*p)=='<' || c=='>') {
			p++;
#if 0
			if ((c=*p) == '<') {
				ERROROUT2(FORMAT(155),_fn_,p0);	/* %s(%s)は指定できません。*/
				rc = ECL_TR_EXEC;
			}
			else {
#else
				c = *p;
#endif
#if 0
				if (!c) ok_prm = 2;
				if (CLcList.cmd.prmnum < ok_prm) {
					ERROROUT1(FORMAT(42),_fn_);	/* %s: パラメータが足りません。*/
					rc = ECL_TR_EXEC;
				}
				else if (CLcList.cmd.prmnum > ok_prm) {
						/* %s: 余分なパラメータ[%s]があります。*/
					ERROROUT2(FORMAT(43),_fn_,CLcList.cmd.prmp[ok_prm+1]->prp);
					rc = ECL_TR_EXEC;
				}
				else
#endif
				CLcList.cmd.sub_cid = CS_REDIRECT;
		/*	}	*/
		}
	}

	if (!rc && CLcList.cmd.sub_cid!=CS_REDIRECT) {
		if (CLcList.cmd.prmnum < min_prm) {
			ERROROUT1(FORMAT(42),_fn_);
			rc = ECL_TR_EXEC;
		}
		else if (CLcList.cmd.cid == C_EXEC) {
			if (!(sc = cl_tr_sc_set_scno(0,0x01,0x80))) {
				ERROROUT1(FORMAT(86),p);	/* col_mn_tr_exec: 手続き種別[%s]が誤っています。 */
				rc = ECL_TR_EXEC;
			}
		}
	}

	if (!rc && !(rc = cl_make_leaf())) rc = cl_push();

	return rc;
}
#if 0
/*********************************************/
/*                                           */
/*********************************************/
int ColMnTrInteractive()
{
	int rc;

	if (!(rc = cl_make_leaf())) rc = cl_push();

	return rc;
}
#endif
