Subject: Re: 1.34

From: Zheng Gengbing <[email-masked]>
Date: Thu, 2 May 1996 19:42:51 +0800 (EAT)

Hi,

	I will report some problems I encounted  during my merge of hpf2dep,
which maybe helpful for you to adjust each other's program accordingly.

	1.  About  namelist_stmt:
		the tag of the root of the LLND is NAME_LIST , instead of
		COMM_LIST,which is only  appeared in common_stmt .

	2.  Add  INTRIN_FUNC_CALL to indicate the intrinsic func call .
	    This is the same as FUNC_CALL . Zhang GuanSong ,please add this
	    to unparser. This will reduced most of the warinings in the 
	    unparse of hpfcc.

	3.  Fatal error :
	     Since enddo cannot allowed in do construct ,
		nonblock do construct can not be passed. that's because
		the do_term_action_stmt cannot be continue stmt.
                such as:
                do 10 , i=1,49
                 do 10, j=1,50

                10 enddo          // cannot be continue stmt .

	4.  Why STAR_OP ?
	    NON_LEN_OP & LEN_OP seem can do the job .
            Adding STAR_OP will bring great trouble to our parse of the AST. 
	    I think we can do some other compromise .

	5.  rule :data_stmt_value , this is the problem mentioned before.

	6.  rule :actual_arg_spec_list , this llnd is wrong built .
                  NAMELIST_LIST is changed to EXPR_LIST .

	7.  rule : actual_arg_spec , Zheng Qang reverse the llnd1 and llnd2,
		he said this is good for unparse . But this will change the
		ll.h from ,
	struct   KEYWORD_ARG_S  {
        PTR_SYMB    null;

        PTR_LLND    expr;  /* for the arg expression */
        PTR_LLND    keyword;   /* for the keyword string */
        }; 
	to
	struct   KEYWORD_ARG_S  {
        PTR_SYMB    null;
        
        PTR_LLND    keyword;   /* for the keyword string */
	PTR_LLND    expr;  /* for the arg expression */

	}

		I have not made up my mind if to do so . Can unparse really
		cannot overcome this difficulty ?

	8.

	Since this time the work of merge is more difficult than the last one ,
I worried that more bugs will occure . During merging , I must try to 
understand the modification made by both sides first , and do the merge .

***************************************************************************
*     Zheng Gengbin                 *                                     *
*                                   *                                     *
*  Dept. of Computer Science        *  Phone:  86-10-2585088              *
*         & Technology              *  Email:                             *
*                                   *      [email-masked]   *
*  Peking University P.R.China      *  Mail:                              *
*                                   *      Room 1077 ,Building 47,        *
*                                   *      Peking University, P.R.China   *
***************************************************************************

---

From: Zheng Gengbing <[email-masked]>
Date: Fri, 3 May 1996 11:39:10 +0800 (EAT)

Hi,

	Please give your opioions to me as soon as possible ! So that I will
do job better .

	Below is the problems continued :
	
	8.    Do control variable is contained in the BFND :
		cur_bfnd->entry.Template.symbol ,
		not in the llnd of DDOT .

	9.    End where , else where can not carry a label .

	10.   boz_literal_constant:
               Since the value of BINARY_VAL , OCTN_VAL , HEX_VAL are stored
 	       as  llnd->entry.string_val , so
		you can unparse directly , no matter ' or " 
		for example :
		B'010' :                  B"010" :
		llnd->entry.string_val   llnd->entry.string_val
                = "B'010'"               = "B"010""

		In order to save the string value , I modified 
             readnodes.c & writenodes.c and dumpdepnode accordingly, 
          because the old version of R/W and dumpdep save binary , hex as 
          integer ,which will bring trouble both to  hpfcc and unparse .  
	     now you can use the dumped dep file to see the result .