help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: inserting into tab.h, after %union


From: Hans Aberg
Subject: Re: inserting into tab.h, after %union
Date: Tue, 5 Dec 2006 09:57:21 +0100

On 4 Dec 2006, at 22:59, Joel E. Denny wrote:

On Mon, 4 Dec 2006, Hans Aberg wrote:

On 4 Dec 2006, at 20:01, Joel E. Denny wrote:

Well, maybe I'm wasting your time, but I hope that helps you to get a
better feel for the names than my original post did.

I think you need to explain these much better, simply because wordings like "this is the right place to put stuff like" is too unspecific to be useful.

In the specific email to which you're replying, I did not use that phrase. In the manual, I use a similar phrase to summarize the abstract concepts
of the directives, but I also explain the exact functionality of the
directives in great detail. Have you read the new manual section in CVS
yet?

I read the summary, and it said me nothing. I want to quickly know were to put the stuff, not paving my way through pages and pages to find out something that is trivial.

My intent was to get my programs working for current Bison, now that I can use %define, but reality prevents me from attaining it.

Since tab.cpp is often referred to
as the "code file", these names are actually quite easy to remember, in my
opinion.

I haven't heard the name "code file". I thought they were named "header" and
"source" in C/C++ lingo.

In Open Group Yacc lingo, it's called the "code file":

  http://www.opengroup.org/onlinepubs/009695399/utilities/yacc.html

I do not mean to say this is common C/C++ lingo. In C/C++ lingo, the term
"source file" is ambiguous in my opinion.

In the traditional Yacc setup, I think one dos not use a header file, but is doing a #inlcude on the lexer .c file. So perhaps "code file" means any file containing code, not speficially the header/code setup.

I do not know what are the best names of these commnads, but the use if %code and %code-top did not say anything. And the other poster feels the same, and Paul did not knwo what all these names are for. There seems to be a problem.

%requires and %provides insert code into tab.hpp before and after the union definition. Thus, %requires declares code that's required by the union. %provides declares code (containing declarations and definitions)
to be provided to external modules.

The problems with names like these, is that comon usage is to regulate
versioning.

Nearly every word in English is overloaded, and we have to pick something.
There's been no better suggestion so far in my opinion.

So what were the other suggestions?

So I think names like "semantic-definition-preamble", "semantic-
definition-postamble", or something like that, will be better. :-)

Those names are too specific.  My previous email did not explain all
potential uses of %requires and %provides because Jeff expressed a
specific interest in the union.

I am more interested in getting to know were the code is placed. I am wary about autmated approaches, because the exact setup has not yet been worked out. You and Akim seem to have worked mainly with the C- äpöe subset of C++, which result in too limited solutions if commands are automated like this.

Those names are also low-level. While, this doesn't bother me too much,
the other developers have objected to low-level names repeatedly in my
previous proposals. Actually, I do like that the current directive names give some hint of the reason why the directives exist... rather than just
hinting at their low-level functionality.

My worry is that this will only work with parser specific commands, as then it refers to the grammar language. But when working with different output languages, high level approaches may cause problems.

  Hans Aberg






reply via email to

[Prev in Thread] Current Thread [Next in Thread]