[comp.lang.modula2] Modula-2 grammar

Scott.Rankin@p14.f15.n114.z1.fidonet.org (Scott Rankin) (12/05/90)

Hello All,

    A little while ago, Cornelia Boldyreff was nice enough to post an almost 
complete grammar for Modula-2 in yacc.  I started using this grammar and found 
it has one big hole and a couple of other smaller holes in it.  

    Does anyone out there have either a corrected version of this grammar or 
some other complete machine readable Modula-2 grammar that they could send to 
me?  Pretty please!  I can fix it myself, but I'm under really NASTY time 
pressure and any help will be GREATLY appreciated.  Thanks in advance.

    BTW: if no one responds, I'll fix it myself and post the fixes here if 
anyone else wants them.  If you do want them, let me know.  Later

                                                                Scott
Fidonet:  1:114/15.14
Internet: Scott_Rankin@p14.f15.n114.z1.fidonet.org
 


--  
uucp: uunet!m2xenix!puddle!114!15.14!Scott.Rankin
Internet: Scott.Rankin@p14.f15.n114.z1.fidonet.org

Patrick.Verkaik@p11.f39.n512.z2.fidonet.org (Patrick Verkaik) (12/08/90)

Hello Scott,

 >     Does anyone out there have either a corrected version
 > of this grammar or some other complete machine readable
 > Modula-2 grammar that they could send to me?  Pretty

I have the (_probably_ complete) Modula-2 syntax in EBNF notation here in a 
book, so if that's what you mean and if no one else responds I 
could type it and put it in a message to you...

Patrick


--  
uucp: uunet!m2xenix!puddle!2!512!39.11!Patrick.Verkaik
Internet: Patrick.Verkaik@p11.f39.n512.z2.fidonet.org

Ben.Stuyts@p6.f202.n281.z2.fidonet.org (Ben Stuyts) (12/08/90)

In a message of <04 Dec 90 18:53:47>, Scott Rankin (1:114/15.14) writes:

 SR>     A little while ago, Cornelia Boldyreff was nice enough to post 
 SR> an almost complete grammar for Modula-2 in yacc.

 SR>     Does anyone out there have either a corrected version of this 
 SR> grammar or some other complete machine readable Modula-2 grammar 
 SR> that they could send to me?

 SR>     BTW: if no one responds, I'll fix it myself and post the fixes 
 SR> here if anyone else wants them.  If you do want them, let me know.  

I've noticed the same problems. I'd be interested in the fixes.

Thanks,
Ben


--  
uucp: uunet!m2xenix!puddle!2!281!202.6!Ben.Stuyts
Internet: Ben.Stuyts@p6.f202.n281.z2.fidonet.org

reid@CTC.CONTEL.COM (Tom Reid x4505) (12/12/90)

=  >     Does anyone out there have either a corrected version
=  > of this grammar or some other complete machine readable
=  > Modula-2 grammar that they could send to me?  Pretty
=
A student and I are working on a Modula-2-to-Ada translator and pretty
well have the kinks worked out of the PIM, 3rd Ed., Corrected EBNF
syntax.  There are at least four places it is ambiguous - all needing
left factoring (e.g., Dsgntr is in the FIRST set of the Assign and
ProcCall right-hand-sides of Statement).

Another more difficult example is that
	QualId ::= Id { "." Id } and
	Dsgntr ::= QualId { "." Id | "[" ExprList "]" | "^" }
is ambiguous.  Fortunately, our translator writer system has a sense
of humor at the moment which allows this and the semantics are right.

In fact, all of the problems seem to have QualId lurking somewhere.  We
about have this ironed out and I will send it out in a message when
it is.

I have found it amusing that the cross reference listing that accompanies
the PIM 3 EBNF wasn't extended to calculating the selector sets and
verifying LL1.  Either that or including the LL1 grammar that the his
parser was "really" generated from.

Warning - just because we think that we have an LL1 EBNF grammar does not
guarantee that it matches any particular vendors source programs :->

Incidently, the recursive descent parser created from the EBNF breaks the
FST compiler because it exceeds 64K characters.  Score one for table-
driven things.

Tom.

Thomas F. Reid, Ph. D.                   (703)818-4505 (work)
Contel Technology Center                 (703)742-8720 (home)
15000 Conference Center Drive            Net: reid@ctc.contel.com
P.O. Box 10814
Chantilly, Va.  22021-3808

Kaare.Rasmussen@f15.n231.z2.fidonet.org (Kaare Rasmussen) (12/13/90)

Hello Scott

 SR> anyone else wants them.  If you do want them, let me know.  Later

I think we are quite a few who want them. When you finish them, 100%
correct, it would be *VERY* nice to have.

With regards Kaare


--  
uucp: uunet!m2xenix!puddle!2!231!15!Kaare.Rasmussen
Internet: Kaare.Rasmussen@f15.n231.z2.fidonet.org

Patrick.Verkaik@p11.f39.n512.z2.fidonet.org (Patrick Verkaik) (12/15/90)

Hello Jon,

 > However, they weren't talking about EBNF, they were talking
 > about something  that could be fed to YACC to generate a
 > new compiler.

O well, slight misunderstanding ;-)
BTW What is YACC?

Patrick


--  
uucp: uunet!m2xenix!puddle!2!512!39.11!Patrick.Verkaik
Internet: Patrick.Verkaik@p11.f39.n512.z2.fidonet.org

Jon.Guthrie@p15.f20.n226.z1.fidonet.org (Jon Guthrie) (12/17/90)

 > Incidently, the recursive descent parser created from the EBNF breaks the
 > FST compiler because it exceeds 64K characters.  

That's odd.  The recursive-descent parser I wrote works just fine when  
compiled with FST.  (At least it properly parses itself.) 

I guess my first question would be: WHAT exceeds 64K characters?  The parser  
itself?  The symbol table?  The stack space?  The input file?


--  
uucp: uunet!m2xenix!puddle!226!20.15!Jon.Guthrie
Internet: Jon.Guthrie@p15.f20.n226.z1.fidonet.org

Eric.Mckinney@p1.f17.n382.z2.fidonet.org (Eric Mckinney) (12/18/90)

 On 14-Dec-90, Patrick Verkaik allegedly said:

 PV> BTW What is YACC?

It's a UNIX tool that allows you to create a compiler from a grammar
structure.  A VERY nifty little tool.

Eric

PS - I believe that YACC is an acronym for Yet Another Compiler Compiler.
However, this could be just a rumor...


--  
uucp: uunet!m2xenix!puddle!2!382!17.1!Eric.Mckinney
Internet: Eric.Mckinney@p1.f17.n382.z2.fidonet.org

reid@CTC.CONTEL.COM (Tom Reid x4505) (12/20/90)

=  > Incidently, the recursive descent parser created from the EBNF breaks the
=  > FST compiler because it exceeds 64K characters.
=
= That's odd.  The recursive-descent parser I wrote works just fine when
= compiled with FST.  (At least it properly parses itself.)
=
= I guess my first question would be: WHAT exceeds 64K characters?  The parser
= itself?  The symbol table?  The stack space?  The input file?
=
=
= --
= uucp: uunet!m2xenix!puddle!226!20.15!Jon.Guthrie
= Internet: Jon.Guthrie@p15.f20.n226.z1.fidonet.org
=

The *generated* parser.  The code generation module is not the most
efficient and the generated module runs at about 70K bytes.  FST
chokes on >64K under the excuse that nobody should ever write one
that big.  Another compiler writer who forgets about automatically
code generation.

Tom.

Ian.Green@f9.n153.z1.fidonet.org (Ian Green) (12/26/90)

   Where can I procure this parser generator for Modula-2? North American 
source prefered. Leave a phone number, as well as the rest of the stuff.

Thanks,
Ian Green



--  
uucp: uunet!m2xenix!puddle!153!9!Ian.Green
Internet: Ian.Green@f9.n153.z1.fidonet.org

news@m2xenix.psg.com (Randy Bush) (12/27/90)

Ian.Green@f9.n153.z1.fidonet.org (Ian Green) writes:
> Where can I procure this parser generator for Modula-2? North American 
> source prefered. Leave a phone number, as well as the rest of the stuff.

Dr. Grosch's system is available for FidoNet file .REQuest as GROSCH.ZOO from
1:105/42 (PEP/V.42bis), 1:105/66 (V.42bis), and 1:105/6 (2400).  It's about
725KB. 

randy
-- 
..!{uunet,qiclab,intelhf,bucket}!m2xenix!news

Jon.Guthrie@p15.f20.n226.z1.fidonet.org (Jon Guthrie) (12/27/90)

 >   Where can I procure this parser generator for Modula-2? North American 
 >source prefered. Leave a phone number, as well as the rest of the stuff.

It's not clear what you're asking for.  There are three parts to this.  To  
build a compiler, you need a lexical analyzer (LEX, FLEX, or the like) a  
compiler generator (YACC or Bison, most likely) and the source file that  
contains the grammar.  (I captured the file with the grammar in it, but I  
understand there are errors.)

Since YACC (or Bison, which is a YACC clone) is an old Unix utility and since  
it generates C source for the compilers, the first places I looked were the  
usual places I look when I'm trying to find C programs.

The Austin Code Works has them ($35 for Bison and BYACC, $25 for FLEX) as does  
a place called Networks ($30 for Bison, $15 for Flex) at 80-47 88 Road,  
Woodhaven, NY 11421 (201) 206-0320.  They're also available from the C User's  
Group (2601 Iowa St., Lawrence, KS 66046; 913-841-1631) Bison for MS-DOS is on 
disk 285 and FLEX is on disk 290.  Both are available for $8 each (to  
nonmembers.  $5 for members, but who's going to admit to being a member of  
the C User's Group on the Modula-2 echo/newsgroup?)

The programs are also available on just about any large files BBS.  I  
downloaded my copies locally, but I can't remember just where.  (It was either  
the Phoenix 614-863-9611 or it was Utilities Exchange 614-442-6696.  Neither  
of these BBSes are part of FidoNet.) 



--  
uucp: uunet!m2xenix!puddle!226!20.15!Jon.Guthrie
Internet: Jon.Guthrie@p15.f20.n226.z1.fidonet.org

news@m2xenix.psg.com (Randy Bush) (01/05/91)

> GROSCH is about 700K I seem to remember.  Randy Bush has it at 1:105/42
> or 1:105/6 I think.  Not sure what name you FREQ though.

GROSCH.ZOO about 725kb

1:105/42 PEP/V.42
1:105/66 V.42
1:105/6  2400

-- 
..!{uunet,qiclab,intelhf,bucket}!m2xenix!news