Re: antlr

George Neuner <gneuner2@comcast.net>
Wed, 23 Mar 2016 02:56:00 -0400

          From comp.compilers

Related articles
antlr ruben@mrbrklyn.com (ruben safir) (2016-03-13)
Re: antlr gneuner2@comcast.net (George Neuner) (2016-03-15)
Re: antlr ruben@mrbrklyn.com (ruben safir) (2016-03-22)
Re: antlr gneuner2@comcast.net (George Neuner) (2016-03-23)
| List of all articles for this month |

From: George Neuner <gneuner2@comcast.net>
Newsgroups: comp.compilers
Date: Wed, 23 Mar 2016 02:56:00 -0400
Organization: A noiseless patient Spider
References: 16-03-001 16-03-004 16-03-005
Injection-Info: miucha.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="30794"; mail-complaints-to="abuse@iecc.com"
Keywords: PCCTS, tools
Posted-Date: 25 Mar 2016 14:10:36 EDT

On Tue, 22 Mar 2016 23:54:19 -0400, ruben safir <ruben@mrbrklyn.com>
wrote:


>On Tue, 15 Mar 2016 10:53:25 -0400, George Neuner wrote:
>
>> Antlr now is supported mainly on Stackoverflow.com and via a Google
>> group. see http://www.antlr.org/support.html
>
>Lets try usenet
>
>I have two grammars, one with white space
>
>WS : [ \n\t\r]+ ->skip;
>
>
>and one, or two actually, for comments
>COMMENT: '#' .*? '\n' -> channel(HIDDEN);
>COMMENT2: '/*' .*? '*/' -> channel(HIDDEN); //This pulls through
> //linefeeds?
>
>What is the practical difference between the channel(HIDDEN) and the skip


"skip" just throws away the match. There is no token produced for
anything that is skipped.


"channel" is a bit more complicated.


Antlr uses named streams - "channels" - to communicate between the
lexer and parser. The parser only draws tokens from one stream at a
time (but you can change which stream it follows).


There are two built in channels: DEFAULT and HIDDEN. The parser
(unless told otherwise) listens to DEFAULT. Tokens sent to HIDDEN are
not parsed, but are still available to be inserted back into output
later. This is useful for, e.g., source->source transformations
preserving comments.


You can define other channels for different purposes, e.g., an
embedded DSL could be handled by a separate parser.


Unfortunately a useful example would be complicated.




The online documentation tracks the state of the latest version, but
the best source for insight into how Antlr works is Terence's book.


George


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.