static    char    sccsid[]="%Z% %M% %I% %E% %U%";
/*************************************************/
/*  Program name                                 */
/*       int       col_mn_tr_end_proc            */
/* --------------------------------------------- */
/*  (I/O)                                        */
/*       Out        0   :Normal                  */
/*                 -1   :AbNormal                */
/* --------------------------------------------- */
/*  Function :                                   */
/*     Equote no shori.                          */
/* --------------------------------------------- */
/*************************************************/
#include "colmn.h"

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

/*********************************************/
/*                                           */
/*********************************************/

int col_mn_tr_end_proc()
{
	int  rc,cmdid,cmd;
	char *name;

	name = "col_mn_tr_end_proc";
	if (CLcList.cmd.prmnum > 0) {
		ERROROUT1(FORMAT(41),name);
		return ( ECL_TR_ENDPROC );
	}

	cmdid = CLcList.cmd.cid;
	if (cmdid == C_ENDPROC) cmd = C_PROC;
	else if (cmdid == C_ENDFUNC) cmd = C_FUNCTION;
	else cmd = C_CLASS;
	rc = cl_nest_tag(1);
	if (rc == -1) {
		ERROROUT2(FORMAT(76),name,cl_gets_cmd_name(cmd));	/* "%s: %sがありません。 */
		return ECL_TR_ENDPROC;
	}
	if (rc != cmd) {
		ERROROUT2(FORMAT(77),name,cl_gets_cmd_name(rc));	/* %s: %sとの対応が取れていません。 */
		return ECL_TR_ENDPROC;
	}
/*	for(;;)
	{	*/
		if (CLSTCB.nestLev2) {
			rc = cl_nest_tag(2);
			if (rc == -1) return rc;
			else {
			/*	if (rc=cl_change_tree( CLSTCB.nestLev2 )) return (rc);
				cl_search_nest( 2 );
				ERROROUT1(FORMAT(78),name);*/
				ERROROUT2(FORMAT(79),name,cl_gets_cmd_name(rc));	/* %s: %sがENDしていません。 */
				return ECL_TR_ENDPROC;
			}
		}
/*		else
		{
			break;
		}
	}	*/

	if (rc = cl_make_leaf()) return rc;
	if (rc = cl_push()) return rc;
	rc = cl_nest_tag(1);
	if (rc == -1) return ECL_TR_ENDPROC;
	else {
		rc=cl_change_tree(CLSTCB.nestLev1);
	/*	if (rc) return (rc);	*/
		cl_search_nest(1);
	}
	return NormalEnd;
}
