RE: [Cobolforgcc-devel] yacc/bison question
Status: Pre-Alpha
Brought to you by:
timjosling
|
From: William M. K. <wm...@ix...> - 2001-06-11 18:53:08
|
FYI - even in the draft COBOL Standard "file-sharing/record-locking" is in
the Processor Dependent list. Therefore, I would suggest (?) that it be
placed in the "later" category, and that any work on 200x features
concentrate on those features that are REQUIRED (at least first).
> -----Original Message-----
> From: cob...@li...
> [mailto:cob...@li...]On Behalf Of Tim
> Josling
> Sent: Sunday, June 10, 2001 9:42 PM
> To: cob...@li...
> Subject: Re: [Cobolforgcc-devel] yacc/bison question
>
>
> Matthew,
>
> Good to hear from you.
>
> There is no LOCK MODE in COBOL 85, so you can just omit it (for
> now). It is only in COBOL 2002.
>
> The problem appears to be due to the fact that the LOCK could be
> the start of a LOCK ON MULTIPLE or the start of a second
> occurrence of the LOCK MODE clause.
>
> You basically have the right answer. Function set_up_magic_tokens
> will need to be updated to change the first LOCK to a magic token
> like LOCK_magic_starts_whole_clause. The logic for this would be
> if it is not followed by ON, RECORD or RECORDS it must be the
> first one.
>
> If this makes no sense, please send me *all* the files.
>
> Are you in a position to do a copyright assignment to the free
> software foundation for this work. I will attach the files which
> explain it all. Without the assignments we will not be able to
> have the compiler incorporated into the official GCC. Please have
> a look.
>
> Tim Josling
>
> Matthew Vanecek wrote:
> >
> > Tim,
> > I was working on my file i/o grammar this weekend, and ran into some
> > issues with the LOCK MODE clause. I've kinda got it figured out, but
> > I'm not certain that it's the correct way:
> >
> > I've got a clause:
> >
> > LOCK [MODE IS] {MANUAL | AUTOMATIC} [[WITH] LOCK ON {RECORD | RECORDS}]
> >
> > The two LOCKs were causing reduce/reduce errors. I finally ended up
> > sticking a "LOCK_ON" token in cobctok.def to alleviate the ambiguity for
> > bison/yacc. I'm a little worried about the kvalue, however. I've set
> > it to "LOCK ON". I'd like to figure out a way to delete that token, and
> > still not have any shift/reduce or reduce/reduce errors.
> >
> > Here's the relevant bit from my file.tpl:
> >
> > lock_mode_clause:
> > LOCK opt_mode opt_is manual_or_auto_kw opt_lock_on_clause {
> > RSN($1, "Lock Mode not yet supported");
> > }
> > ;
> >
> > manual_or_auto_kw:
> > MANUAL
> > | AUTOMATIC
> > ;
> >
> > opt_lock_on_clause:
> > /* nothing */
> > | with_lock_on
> > ;
> >
> > with_lock_on:
> > opt_with lock_on
> > ;
> >
> > lock_on:
> > LOCK_ON record_or_records
> > ;
> >
> > record_or_records:
> > RECORD
> > | RECORDS
> > ;
> >
> > If I change the "LOCK_ON" to "LOCK ON", I get a reduce/reduce error. I
> > would rather not have any errors, but I'm still a little dubious about a
> > "LOCK_ON" token.
> >
> > Thoughts?
> > --
> > Matthew Vanecek
> > perl -e 'print
> > $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
> >
> ******************************************************************
> **************
> > For 93 million miles, there is nothing between the sun and my shadow
> > except me.
> > I'm always getting in the way of something...
> >
> > -----------------------------------------------------------------
> > Part 1.2Type: application/pgp-signature
|