Commit bd7310b9 authored by POTTIER Francois's avatar POTTIER Francois

Changed the license of the Generator from QPL to GPL.

MenhirLib remains under LGPL with a linking exception.
MenhirSdk is considered part of the Generator.
Updated the header of every source file under version control.
parent d6896bb7
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
SHELL := bash SHELL := bash
.PHONY: all test clean package check api export tag opam local unlocal pin unpin .PHONY: all test clean headache package check api export tag opam local unlocal pin unpin
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
...@@ -59,9 +59,6 @@ DATE := $(shell /bin/date +%Y%m%d) ...@@ -59,9 +59,6 @@ DATE := $(shell /bin/date +%Y%m%d)
PACKAGE := menhir-$(DATE) PACKAGE := menhir-$(DATE)
CURRENT := $(shell pwd) CURRENT := $(shell pwd)
TARBALL := $(CURRENT)/$(PACKAGE).tar.gz TARBALL := $(CURRENT)/$(PACKAGE).tar.gz
HEADACHE := headache
SRCHEAD := $(CURRENT)/header
LIBHEAD := $(CURRENT)/lgpl-header
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
...@@ -89,6 +86,34 @@ MENHIRLIB_FILES := $(shell for m in $(MENHIRLIB_MODULES) ; do \ ...@@ -89,6 +86,34 @@ MENHIRLIB_FILES := $(shell for m in $(MENHIRLIB_MODULES) ; do \
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
# Propagating an appropriate header into every file.
# This requires a version of headache that supports UTF-8; please use
# https://github.com/fpottier/headache
# This used to be done at release time and not in the repository, but
# it is preferable to do in it the repository too, for two reasons: 1-
# the repository is (or will be) publicly accessible; and 2- this makes
# it easier to understand the line numbers that we sometimes receive as
# part of bug reports.
# Menhir's standard library (standard.mly) as well as the source files
# in MenhirLib carry the "library" license, while every other file
# carries the "regular" license.
HEADACHE := headache
SRCHEAD := $(CURRENT)/headers/regular-header
LIBHEAD := $(CURRENT)/headers/library-header
headache:
@ cd src && find . -regex ".*\.ml\(i\|y\|l\)?" \
-exec $(HEADACHE) -h $(SRCHEAD) "{}" ";"
@ for file in src/standard.mly $(MENHIRLIB_FILES) ; do \
$(HEADACHE) -h $(LIBHEAD) $$file ; \
done
# -------------------------------------------------------------------------
# Creating a tarball for distribution. # Creating a tarball for distribution.
package: clean package: clean
...@@ -100,16 +125,6 @@ package: clean ...@@ -100,16 +125,6 @@ package: clean
@ cp -fr src/*.ml{,i,y,l,pack} src/*.messages src/Makefile src/*.META $(PACKAGE)/src @ cp -fr src/*.ml{,i,y,l,pack} src/*.messages src/Makefile src/*.META $(PACKAGE)/src
@ grep -v my_warnings src/_tags > $(PACKAGE)/src/_tags @ grep -v my_warnings src/_tags > $(PACKAGE)/src/_tags
@ $(MAKE) -C $(PACKAGE)/demos clean @ $(MAKE) -C $(PACKAGE)/demos clean
# Insert headers.
# Note that standard.mly as well as the source files in MenhirLib carry the
# "library" license, while every other file carries the regular "source code"
# license.
@ echo "-> Inserting headers."
@ cd $(PACKAGE) && find . -regex ".*\.ml\(i\|y\|l\)?" \
-exec $(HEADACHE) -h $(SRCHEAD) "{}" ";"
@ cd $(PACKAGE) && for file in src/standard.mly $(MENHIRLIB_FILES) ; do \
$(HEADACHE) -h $(LIBHEAD) $$file ; \
done
# Set the version number into the files that mention it. These # Set the version number into the files that mention it. These
# include version.ml, StaticVersion.{ml,mli}, version.tex, META. # include version.ml, StaticVersion.{ml,mli}, version.tex, META.
@ echo "-> Setting version to $(DATE)." @ echo "-> Setting version to $(DATE)."
......
This diff is collapsed.
Menhir
François Pottier, INRIA Paris-Rocquencourt
Yann Régis-Gianas, PPS, Université Paris Diderot
Copyright 2005-2015 Institut National de Recherche en Informatique
et en Automatique. All rights reserved. This file is distributed
under the terms of the Q Public License version 1.0, with the change
described in file LICENSE.
Menhir
François Pottier, Inria Paris
Yann Régis-Gianas, PPS, Université Paris Diderot
Copyright Inria. All rights reserved. This file is distributed under the
terms of the GNU Library General Public License version 2, with a
special exception on linking, as described in the file LICENSE.
Menhir
François Pottier, Inria Paris
Yann Régis-Gianas, PPS, Université Paris Diderot
Copyright Inria. All rights reserved. This file is distributed under the
terms of the GNU General Public License version 2, as described in the
file LICENSE.
Menhir
François Pottier, INRIA Paris-Rocquencourt
Yann Régis-Gianas, PPS, Université Paris Diderot
Copyright 2005-2015 Institut National de Recherche en Informatique
et en Automatique. All rights reserved. This file is distributed
under the terms of the GNU Library General Public License, with the
special exception on linking described in file LICENSE.
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* The Boolean lattice. *) (* The Boolean lattice. *)
type property = type property =
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
include Fix.PROPERTY with type property = bool include Fix.PROPERTY with type property = bool
val union: property -> property -> property val union: property -> property -> property
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* An ocamlyacc-style, or Menhir-style, parser requires access to (* An ocamlyacc-style, or Menhir-style, parser requires access to
the lexer, which must be parameterized with a lexing buffer, and the lexer, which must be parameterized with a lexing buffer, and
to the lexing buffer itself, where it reads position information. *) to the lexing buffer itself, where it reads position information. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* An ocamlyacc-style, or Menhir-style, parser requires access to (* An ocamlyacc-style, or Menhir-style, parser requires access to
the lexer, which must be parameterized with a lexing buffer, and the lexer, which must be parameterized with a lexing buffer, and
to the lexing buffer itself, where it reads position information. *) to the lexing buffer itself, where it reads position information. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
open Grammar open Grammar
let print_dependency_graph() = let print_dependency_graph() =
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* Build and print the forward reference graph of the grammar. There is an edge (* Build and print the forward reference graph of the grammar. There is an edge
of a nonterminal symbol [nt1] to every nonterminal symbol [nt2] that occurs of a nonterminal symbol [nt1] to every nonterminal symbol [nt2] that occurs
in the definition of [nt1]. *) in the definition of [nt1]. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* The module [Driver] serves to offer a unified API to the parser, (* The module [Driver] serves to offer a unified API to the parser,
which could be produced by either ocamlyacc or Menhir. *) which could be produced by either ocamlyacc or Menhir. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
open EngineTypes open EngineTypes
(* The LR parsing engine. *) (* The LR parsing engine. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
open EngineTypes open EngineTypes
(* The LR parsing engine. *) (* The LR parsing engine. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* This file defines several types and module types that are used in the (* This file defines several types and module types that are used in the
specification of module [Engine]. *) specification of module [Engine]. *)
......
(**************************************************************************) (******************************************************************************)
(* *) (* *)
(* Fix *) (* Menhir *)
(* *) (* *)
(* Author: François Pottier, INRIA Paris-Rocquencourt *) (* François Pottier, Inria Paris *)
(* Version: 20101206 *) (* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *) (* *)
(* The copyright to this code is held by Institut National de Recherche *) (* Copyright Inria. All rights reserved. This file is distributed under the *)
(* en Informatique et en Automatique (INRIA). All rights reserved. This *) (* terms of the GNU General Public License version 2, as described in the *)
(* file is distributed under the license CeCILL-C (see file LICENSE). *) (* file LICENSE. *)
(* *) (* *)
(**************************************************************************) (******************************************************************************)
(* -------------------------------------------------------------------------- *) (* -------------------------------------------------------------------------- *)
......
(**************************************************************************) (******************************************************************************)
(* *) (* *)
(* Fix *) (* Menhir *)
(* *) (* *)
(* Author: François Pottier, INRIA Paris-Rocquencourt *) (* François Pottier, Inria Paris *)
(* Version: 20101206 *) (* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *) (* *)
(* The copyright to this code is held by Institut National de Recherche *) (* Copyright Inria. All rights reserved. This file is distributed under the *)
(* en Informatique et en Automatique (INRIA). All rights reserved. This *) (* terms of the GNU General Public License version 2, as described in the *)
(* file is distributed under the license CeCILL-C (see file LICENSE). *) (* file LICENSE. *)
(* *) (* *)
(**************************************************************************) (******************************************************************************)
(* This code is described in the paper ``Lazy Least Fixed Points in ML''. *) (* This code is described in the paper ``Lazy Least Fixed Points in ML''. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
module Make module Make
(M : Fix.IMPERATIVE_MAPS) (M : Fix.IMPERATIVE_MAPS)
(P : sig (P : sig
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
module Make module Make
(M : Fix.IMPERATIVE_MAPS) (M : Fix.IMPERATIVE_MAPS)
(P : sig (P : sig
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* --------------------------------------------------------------------------- *) (* --------------------------------------------------------------------------- *)
(* Lists. *) (* Lists. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* This module offers general-purpose functions on lists and streams. *) (* This module offers general-purpose functions on lists and streams. *)
(* --------------------------------------------------------------------------- *) (* --------------------------------------------------------------------------- *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* Abstract syntax of the language used for code production. *) (* Abstract syntax of the language used for code production. *)
type interface = type interface =
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* Input-output utilities. *) (* Input-output utilities. *)
(* ------------------------------------------------------------------------- *) (* ------------------------------------------------------------------------- *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* Input-output utilities. *) (* Input-output utilities. *)
(* [try/finally] has the same semantics as in Java. *) (* [try/finally] has the same semantics as in Java. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
open General open General
(* This signature describes the incremental LR engine. *) (* This signature describes the incremental LR engine. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(** This module implements infinite arrays, that is, arrays that grow (** This module implements infinite arrays, that is, arrays that grow
transparently upon demand. *) transparently upon demand. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(** This module implements infinite arrays. **) (** This module implements infinite arrays. **)
type 'a t type 'a t
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* ---------------------------------------------------------------------------- *) (* ---------------------------------------------------------------------------- *)
(* The identity of the current input file. *) (* The identity of the current input file. *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU General Public License version 2, as described in the *)
(* file LICENSE. *)
(* *)
(******************************************************************************)
(* This module keeps track of which input file is currently being read. It (* This module keeps track of which input file is currently being read. It
defines a type [input_file] of input files, which is used to record the defines a type [input_file] of input files, which is used to record the
origin of certain elements (productions, declarations, etc.). *) origin of certain elements (productions, declarations, etc.). *)
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* This signature defines the format of the tables that are produced (in (* This signature defines the format of the tables that are produced (in
addition to the tables described in [TableFormat]) when the command line addition to the tables described in [TableFormat]) when the command line
switch [--inspection] is enabled. It is used as an argument to switch [--inspection] is enabled. It is used as an argument to
......
(******************************************************************************)
(* *)
(* Menhir *)
(* *)
(* François Pottier, Inria Paris *)
(* Yann Régis-Gianas, PPS, Université Paris Diderot *)
(* *)
(* Copyright Inria. All rights reserved. This file is distributed under the *)
(* terms of the GNU Library General Public License version 2, with a *)
(* special exception on linking, as described in the file LICENSE. *)
(* *)
(******************************************************************************)
(* -------------------------------------------------------------------------- *) (* -------------------------------------------------------------------------- *)
(* The type functor. *) (* The type functor. *)
......