Groups | Search | Server Info | Login | Register


Groups > comp.compilers > #195

Parsing C#-like generics

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!news.ripco.com!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!news.misty.com!news.iecc.com!nerds-end
From "Harold Aptroot" <harold.aptroot@gmail.com>
Newsgroups comp.compilers
Subject Parsing C#-like generics
Date Mon, 11 Jul 2011 20:22:34 +0200
Organization A noiseless patient Spider
Lines 24
Sender news@iecc.com
Approved comp.compilers@iecc.com
Message-ID <11-07-019@comp.compilers> (permalink)
NNTP-Posting-Host news.iecc.com
X-Trace gal.iecc.com 1310468666 52054 64.57.183.58 (12 Jul 2011 11:04:26 GMT)
X-Complaints-To abuse@iecc.com
NNTP-Posting-Date Tue, 12 Jul 2011 11:04:26 +0000 (UTC)
Keywords parse, question
Posted-Date 12 Jul 2011 07:04:26 EDT
X-submission-address compilers@iecc.com
X-moderator-address compilers-request@iecc.com
X-FAQ-and-archives http://compilers.iecc.com
Xref x330-a1.tempe.blueboxinc.net comp.compilers:195

Show key headers only | View raw


Hi,

I'm having some trouble parsing generics when mixed with comparisons. The
way I try to do it, there is an ambiguity between LessThan and a "list of
types between angle brackets".
For example, x<x>(x<x) should be syntactically OK, and it should be parsed
to a function call x with a type parameter list < x > and a single argument
which is the expression x<x (ok not really, I threw in semantics here to
make it clearer, the actual result should just be an AST).
My parser generator (GOLD parsing system) complains about a shift-reduce
error, and the parser it produces doesn't want to parse any expression with
a LessThan in it because it believes that to be a incomplete type list
(lacking a closing > )

I know it is actually inherently ambiguous, because t<t2>(t3) could mean two
things:
- LessThan(t, BiggerThan(t2, t3)
- invoke t<t2> with argument t3
In that case I want to pick option two.
For t<t2>t3 I want to pick option one, not report "missing ( "

Can this be done with an LALR parser at all? If so, how?

harold

Back to comp.compilers | Previous | NextNext in thread | Find similar


Thread

Parsing C#-like generics "Harold Aptroot" <harold.aptroot@gmail.com> - 2011-07-11 20:22 +0200
  Re: Parsing C#-like generics Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2011-07-12 13:25 +0100
    Re: Parsing C#-like generics BGB <cr88192@hotmail.com> - 2011-07-14 13:13 -0700
  Re: Parsing C#-like generics BGB <cr88192@hotmail.com> - 2011-07-12 16:39 -0700
  Re: Parsing C#-like generics "Ben L. Titzer" <ben.titzer@gmail.com> - 2011-07-13 10:19 -0700

csiph-web