Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #1678

Re: antlr

From George Neuner <gneuner2@comcast.net>
Newsgroups comp.compilers
Subject Re: antlr
Date 2016-03-23 02:56 -0400
Organization A noiseless patient Spider
Message-ID <16-03-006@comp.compilers> (permalink)
References <16-03-001@comp.compilers> <16-03-004@comp.compilers> <16-03-005@comp.compilers>

Show all headers | View raw


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

Back to comp.compilers | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

antlr ruben safir <ruben@mrbrklyn.com> - 2016-03-13 05:01 -0400
  Re: antlr George Neuner <gneuner2@comcast.net> - 2016-03-15 10:53 -0400
    Re: antlr ruben safir <ruben@mrbrklyn.com> - 2016-03-22 23:54 -0400
      Re: antlr George Neuner <gneuner2@comcast.net> - 2016-03-23 02:56 -0400

csiph-web