[antlr-interest] Re: How to make antlr parse this
lgcraymer
lgc at mail1.jpl.nasa.gov
Thu Apr 15 21:10:33 PDT 2004
Try something like
compilationUnit
:
( ( (javaDocComment)* package )=> (javaDocComment)* package
|
)
(javaDocComment | import)*
( (invariantCondition)* typeDefinition)*
EOF
;
--Loring
--- In antlr-interest at yahoogroups.com, Jon Schewe <jpschewe at m...> wrote:
> I asked this question back in October of 2000 and never got an answer.
> I've worked on it on and off (mostly off) since then and have not come
> up with an answer. I've updated to antlr 2.7.3 hoping that it'd be
> better at this, but still haven't gotten it working.
>
> So here's the question again to see if anyone else can figure it out.
>
> The structure of the file is as follows:
>
> compilationUnit
> :
> (javadocComment)*
> (package)?
> (javadocComment | import)*
> ( (invariantCondition)* typeDefinition)*
> EOF
>
> /**
> This is a javadoc comment that we're not looking for any conditions
> in.
> **/
> javadocComment
> : JAVADOC_OPEN ( INVARIANT_CONDITION | PRE_CONDITION | POST_CONDITION
> | ASSERT_CONDITION )* JAVADOC_CLOSE
> ;
>
> /**
> This is a javadoc comment that we're looking for invariants in.
> **/
> invariantCondition
> : JAVADOC_OPEN ( iv:INVARIANT_CONDITION { addInvariant(iv); } |
> PRE_CONDITION | POST_CONDITION | ASSERT_CONDITION )* JAVADOC_CLOSE
> ;
>
> Basically it's a Java grammar, where the javadoc comments are
> important. I've gotten past the lexer by using two lexers, one for
> inside comments and one for everything else. That gives me a nice token
> stream, but I just can't seem to get past the top rule above. If I
> don't allow comments anywhere above typeDefinition and require that
> typeDefiniation exists, it'll compile and go. However I want to allow
> comments above typeDefinition and I want to allow a file that's
> commented out with single line comments (thus no type definition).
>
> Thanks for any help you can provide.
> --
> Jon Schewe | http://mtu.net/~jpschewe
> GPG signature at http://mtu.net/~jpschewe/gpg.sig.html
> For I am convinced that neither death nor life, neither angels
> nor demons, neither the present nor the future, nor any
> powers, neither height nor depth, nor anything else in all
> creation, will be able to separate us from the love of God that
> is in Christ Jesus our Lord. - Romans 8:38-39
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/antlr-interest/
<*> To unsubscribe from this group, send an email to:
antlr-interest-unsubscribe at yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list