Re: What is a Parser Skeleton?

2023-04-13 Thread Johannes Veit
Your response time is awesome :)
Thanks a lot, I think I have all the info I need.

If not, I come back to you.


Adieu and have a nice time,
Johannes Veit

Hans Åberg  schrieb am Mi., 12. Apr. 2023, 13:24:

> [Please cc the Bison list, as others can follow the issue and tune in if
> needed.]
>
> > On 12 Apr 2023, at 11:18, Johannes Veit  wrote:
> >
> > Hello and sorry for the long pause and tanks for your explanation!It
> makes sense, but I don’t see a proper connection to the Bison Exception.
> >  In my understanding of the text, the exception comes in place, when I
> (as a user of bison) going to build an own parser generator using bison.
> …
> > My interpretation is, that it is more than protecting the rights of the
> skeletons, it is rather a protection against a forked* parser generator
> under e.g. proprietary terms.
> > *forked=>I know, that it is not forking in the sense of forking a repo.
> What I mean is: using bison to generate it, instead of writing it with own
> hands
>
> In my interpretation, there are two parts:
>
> The skeleton file contains handwritten parts which are subject to
> copyright, and in normal use is copied over to the generated parser. So one
> wants to avoid the full GPL to apply, thereby restricting the copyright of
> the program it is a part of. The same thing is used for C/C++ libraries:
> you can write and compile, if you so will, proprietary programs using GCC
> and distribute them without GPL applying to them.
>
> In addition, for special use, one may copy the whole skeleton, modify it,
> and include it in a program, as though it was LGPL, but not if that program
> is in itself a parser generator that generats parsers; then the full GPL
> will apply for that program.
>
> This latter, to make ones own edited skeleton file, I do not recommend
> unless it is really needed, because it may change between Bison versions,
> and it is hard to keep it in sync. So it is better trying to get special
> feature into the Bison project.
>
>
>


Re: What is a Parser Skeleton?

2023-04-12 Thread Hans Åberg
[Please cc the Bison list, as others can follow the issue and tune in if 
needed.]

> On 12 Apr 2023, at 11:18, Johannes Veit  wrote:
> 
> Hello and sorry for the long pause and tanks for your explanation!It makes 
> sense, but I don’t see a proper connection to the Bison Exception.
>  In my understanding of the text, the exception comes in place, when I (as a 
> user of bison) going to build an own parser generator using bison.
…
> My interpretation is, that it is more than protecting the rights of the 
> skeletons, it is rather a protection against a forked* parser generator under 
> e.g. proprietary terms.
> *forked=>I know, that it is not forking in the sense of forking a repo. What 
> I mean is: using bison to generate it, instead of writing it with own hands

In my interpretation, there are two parts:

The skeleton file contains handwritten parts which are subject to copyright, 
and in normal use is copied over to the generated parser. So one wants to avoid 
the full GPL to apply, thereby restricting the copyright of the program it is a 
part of. The same thing is used for C/C++ libraries: you can write and compile, 
if you so will, proprietary programs using GCC and distribute them without GPL 
applying to them.

In addition, for special use, one may copy the whole skeleton, modify it, and 
include it in a program, as though it was LGPL, but not if that program is in 
itself a parser generator that generats parsers; then the full GPL will apply 
for that program.

This latter, to make ones own edited skeleton file, I do not recommend unless 
it is really needed, because it may change between Bison versions, and it is 
hard to keep it in sync. So it is better trying to get special feature into the 
Bison project.





Re: What is a Parser Skeleton?

2023-02-23 Thread Hans Åberg


> On 23 Feb 2023, at 11:25, Johannes Veit  wrote:
> 
> Hello Mr. Åberg and thanks a lot for the explanation.
> 
> I attached a pdf where I (try to) explain the Bison exception. 
> Could you please verify if it is correct?

It is the Bison license exception that is referred to, I believe: Copyright 
applies to essentially creatively unique parts, but not to machine processed 
parts. For example, in an editor, what you write is copyrightable, but writer 
of the editor cannot claim copyright of that material for the electronic 
processing.

Now, Bison processes the grammar one writes, using an algorithm like LALR, and 
generates output which is not in itself copyrightable by the Bison copyright 
holder. However, that output is combined with the material in the skeleton 
file, which Bison now uses M4 for, in the past a simpler type of processor. 
That skeleton material is copyrightable and forwarded to the output, and 
therefore the Bison copyright holders must decide what copyright should apply.

For situations, GNU has developed the LGPL [1], which does not impose full the 
GPL license on such material that in nature is like machine processed, but 
formally not.

https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License





Re: What is a Parser Skeleton?

2023-02-10 Thread Hans Åberg


> On 10 Feb 2023, at 13:52, Johannes Veit  wrote:
> 
> "Parser Skeleton" is crucial for understanding the Bison Exception
> , but I didn't find a
> proper explanation of that term.
> 
> So either:
> Where can I find a proper explanation of "Parser Skeleton"?
> Or:
> What is a "Parser Skeleton"?

It is M4 code used as a template, details from Bison, to write the generated 
parser.