Re: Articles/books that discuss separating the context-free part of a language from the context-sensitive part?

glen herrmannsfeldt <gah@ugcs.caltech.edu>
Mon, 20 May 2013 03:17:58 +0000 (UTC)

          From comp.compilers

Related articles
Articles/books that discuss separating the context-free part of a lang costello@mitre.org (Costello, Roger L.) (2013-05-17)
Re: Articles/books that discuss separating the context-free part of a gah@ugcs.caltech.edu (glen herrmannsfeldt) (2013-05-18)
Re: Articles/books that discuss separating the context-free part of a ademakov@gmail.com (Aleksey Demakov) (2013-05-18)
Re: Articles/books that discuss separating the context-free part of a genew@telus.net (Gene Wirchenko) (2013-05-19)
Re: Articles/books that discuss separating the context-free part of a gah@ugcs.caltech.edu (glen herrmannsfeldt) (2013-05-20)
Re: Articles/books that discuss separating the context-free part of a anton@mips.complang.tuwien.ac.at (2013-05-20)
Re: Articles/books that discuss separating the context-free part of a genew@telus.net (Gene Wirchenko) (2013-05-20)
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: Mon, 20 May 2013 03:17:58 +0000 (UTC)
Organization: Aioe.org NNTP Server
References: 13-05-010 13-05-011 13-05-015
Keywords: parse, errors
Posted-Date: 20 May 2013 15:03:51 EDT

Gene Wirchenko <genew@telus.net> wrote:


(snip, I wrote)
>>somewhere near where the problem is. For languages with reserved works,
>>it is nice to say exactly what the problem is. It gets more


> It is nice for any language. When parsing string, I tend to
> avoid complex regexes for the same reason. If I build an FSA, I can
> often get specific on what the error is.


Yes, but there are some errors that you only get when there are
reserved words, when you use the word in the wrong context.


If you say:


      for = 1;


in Java or C, the compiler could note that you used the reserved
word in the wrong context, instead of, for example, an invalid
'for' statement.


>>interesting without reserved words. Yesterday, following a post
>>in comp.lang.fortran I tried:


>>TYPE :: DEEP
>> TYPE(DEEP) :: POINTER
>>END TYPE


>>When compiling it, the error message, pointing right to the
>>word POINTER, say "must have POINTER attribute".


>>Fortunately it only took me a few seconds to figure out, and then
>>laugh at it. But yes, you can get funny messages without reserved
>>words.


> Could you explain what the error was? I do not know modern
> Fortran.


POINTER is the name of the variable, which doesn't have the
same-named attribute. It could be:


            TYPE(DEEP), POINTER :: POINTER


(since Fortran doesn't have reserved words).


Where the variable POINTER has the POINTER attribute.


Though when I tried:


            TYPE(TYPE) :: TYPE


it didn't work.


-- glen


Post a followup to this message

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