2005-02-03  Valentin David  <valentin.david@gmail.com>

	* test/prop1-asfix.str, test/prop1-asfix.meta:
	New. Check that asfix concrete syntax works fine including the
	layout matching.

	* test/PropStratego.sdf: Add layout variables.
	* test/Makefile.am: Update.

	* parse/meta-explode.str:
	Fix --asfix option. Disable layout deleting into ToBuild trees.

2005-01-12  Martin Bravenboer <martin.bravenboer@gmail.com>

	* parse/parse-stratego.str: use sglri for parsing: the stratego
	compiler now uses the fancy error reporting of sglri.
	
2005-01-02  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Identifiers.sdf: allow a / separator between parts
	of a ModName. Allowing the / provides basic support for
	hierarchical module names, e.g. 'module jls/conversions/Boxing'
	and 'imports jls/conversions/Boxing'.
	
2004-10-16  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Identifiers.sdf: disabling the heurstic filters
	revealed a problem in the Stratego syntax definition: _ can be an
	indentifier as well as a wildcard. I've added a reject of "_" to
	Id.
	
2004-10-16  Martin Bravenboer <martin.bravenboer@gmail.com>

	* parse/parse-stratego.str: refactoring, documentation, etc.

	* parse/parse-stratego.str: use binary output for meta-explode and
	stratego-desugar.

	* parse/parse-stratego.str: added support for HeuristicFilters
	meta data: HeuristicFilters(Off) will enable the -fi and -fe
	filters of sglr.

	* parse/parse-stratego.str: no more warning of no Syntax is
	available in a meta file.

2004-09-25  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Strategies.sdf: added the if-then construct: if s1
	then s2 end.

	* parse/stratego-desugar.str: desugaring of if-then.

2004-09-02  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Terms.sdf: added the AnnoTail construct, which
	allows you to compose annotations in a way similar to lists: 
	t{a, b, c | tail}.

	* parse/stratego-desugar.str: desugaring of AnnoTail.

2004-07-27  Martin Bravenboer <martin.bravenboer@gmail.com>

	* parse/stratego-desugar.str: improved desugaring of StratRules
	without conditions.
	
2004-06-29  Martin Bravenboer <martin.bravenboer@gmail.com>

	Improved pretty-printing of Stratego using the sdf2parenthesize
	generator.

	* parse/Makefile.am:

	- pp-stratego now uses stratego-parenthesize to place parentheses
	at the required locations only.

	- LDADD += $(SSL_LIBS) for alles tools.

	* pp/Stratego-pretty.pp: removed brute-force parentheses in
	several pretty print rules.

	* parse/pp-stratego.str: invokes the stratego-parenthesize
	strategy in the generated Stratego module stratego-parenthesize.

	* parse/stratego-ensugar.str:

	- do not assiocate Seq left. This is not right assoc and it is not
	needed if your parenthesize implementation is powerful enough.

	- removed the hand-written parenthesize stuff.

	- stratego-ensugar can be compiled separately
	
2004-05-26  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Layout.sdf: *) in /* */ is now allowed and vice
	versa. This allows commenting strategies that contain *), for
	example in x(t*).

2004-04-28  Arthur van Dam  <adam@cs.uu.nl>

	* syn/Stratego-Strategies.sdf: Introduced the switch-case(-otherwise)
	construct.

	Syntax:
	  switch s0
	    case s1 : s1'
	    case s2 : s2'
	    // ...
	    otherwise : s' // otherwise branch is optional
	  end

	Semantics:
	s0 will be applied to the current term from right before the switch.
	Its result will be the input term for each case-condition strategy si.
	The body strategies of the case branches, si', will be applied to the
	current term from right before the switch.
	The case branches will be applied in their normal order until a case
	condition succeeds. If a body strategy of a selected case branch
	fails, no backtracking to other (next) branches occurs, the entire
	switch then fails. Other branches will only be selected if all
	previous case-condition strategies failed.
	The optional default branch can only occur at the end and directly
	applies its body strategy s'. 

	* parse/stratego-desugar.str: Desugaring of switch construct.

	Desugaring of the above example:
	    ?t
	  ; s0 => t0
	  ; (where(<s1> t0)
	     < <s1'> t
	     + (where(<s2> t0)
	        < <s2'> t
	        +
	           // ...
	           + <s'> t // or fail if no otherwise branch
	          )
	       )
	    )

	Note that no unbinding occurs on backtracking (STR-9), so do not use
	the same variables for matching in multiple branches.

	* test/switch-semantics-test.str: Tests various properties of switch
	blocks.

2004-04-14  Eelco Visser  <visser@cs.uu.nl>

	* sig/Stratego-MetaTransition.str: meta-transition markers in
	separate module

2004-04-11  Arthur van Dam  <adam@cs.uu.nl>

	* syn/Stratego-DynamicRules.sdf: Small fixes/additions.

	* syn/StrategoStratego.sdf: Concrete syntax for new dynamic rules.

2004-04-11  Martin Bravenboer  <martin.bravenboer@gmail.com>

	* syn/Stratego-DynamicRules.sdf: Syntax for new dynamic rules.
	It is imported by Stratego.sdf.

	* syn/Stratego-Strategies.sdf: All syntax for old 'legacy' dynamic
	rules removed, only `extend/override' rules moved to Stratego-
	DynamicRules.sdf for compatibility purposes, the rest fits within
	the new syntax.

2004-04-10  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/*: generate the renamed SDF modules.

	* syn/Stratego.sdf: removed Stratego-Script from syntax
	definition.
	
2004-04-07  Martin Bravenboer <martin.bravenboer@gmail.com>

	* test/strategies.testsuite: ParseUnit testsuite for
	Strategies. Especially the if-then-else construct is now
	tested thoroughly.

	* syn/Stratego-Strategies.sdf: Improved if-then-else: The first
	implementation was wrong: if-then-else should not be in the
	priority chain. It should be in a right-associativy group with all
	strategy operators.

	* syn/StrategoForTesting.sdf: SDF module for testing
	Stratego. This module defines more sorts, which is required for
	testing smaller parts of a syntax definition.
	
2004-04-06  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Strategies.sdf: add the if-then-else
	strategy. Semantics:

        |[ if s1 then s2 else s3 ]| -> |[ where(s1) < s2 + s3 ]|

	The priority is somewhat ugly since we cannot define priorities
	for specific arguments. "s1; if then else" was for example reject
	if the if-then-else production was just given the lowest
	priority. Workaround: separate sort StrategyElse. The injection of
	Strategy to StrategyElse has the lowest priority.

	* sig/stratego-ext.str: removed

2004-03-22  Martin Bravenboer <martin.bravenboer@gmail.com>

	* syn/Stratego-Identifiers.sdf: removed lexical follow restriction
	of . for Id.

2004-02-22   Merijn de Jonge  <mdejonge@cs.uu.nl>

	* Makefile.am: added autoxt.m4 to EXTRA_DIST

	* Makefile.am: added line: ACLOCAL_AMFLAGS = -I . such that
	autoreconf can find autoxt.m4

2004-02-22  Merijn de Jonge  <mdejonge@cs.uu.nl>
	* added syn/Stratego-Core.{def,tbl} to EXTRA_DIST

2004-02-13  Martin Bravenboer <martin.bravenboer@gmail.com>

	* parse/parse-stratego.str: invoke implode-asfix with -b.
	
	* parse/parse-stratego.str: optionally use a TopSort("...") meta
	property in the .meta file. This should solve the problems of
	parsing a Stratego module as some sort of the object language.
	
2004-01-20  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Strategies.sdf: Syntax for 'extend rules' and
	'extend override rules'.

2003-12-19  Eelco Visser  <visser@cs.uu.nl>

	* Pretty-printing external definitions

	* parse/stratego-ensugar.str: ensugaring PrimT

2003-12-13  Martin Bravenboer <martin.bravenboer@gmail.com>

	* parse/stratego-ensugar.str: added ensugaring of
	annotations. stratego-desugar desugars annotations to one
	annotation, which is a list of annotations. This desugaring must
	be undone by strateg-ensugar. We should have a testsuite that
	compares the execution of Stratego programs and the program after
	applying pp-stratego.
	
2003-12-12  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Strategies.sdf: Support 'external' strategy
	definitions.  These are definitions of the form 'external
	f(as1|as2)' or 'external f(as1|as2) = s' and indicate a strategy
	that is implemented externally. It can be compiled with the normal
	calling convention for strategies and will be renamed in the same
	way to f_n_m with n the number of strategy parameters and m the
	number of term parameters. The second form allows the
	specification of a strategy body for the definition. This can be
	used by the compiler to inline some applications of the strategy
	operator, but no implementation is generated for such definitions.
	External definitions can not be overloaded.

2003-12-05  Martin Bravenboer  <martin.bravenboer@gmail.com>

	* parse/parse-stratego.str: parse-stratego applies pack-sdf and
	must no longer apply asfix-yield.

	Are there more place where pack-sdf is used?

2003-09-30  Valentin David  <valentin@lrde.epita.fr>

	* parse/meta-explode.str: cleanup layouts when concrete syntax parts
	are treated as AsFix.
	
	* parse/parse-stratego.str: deal with --asfix option.

	* test/Makefile.am: Update.

2003-09-16  Martin Bravenboer  <mbravenb@cs.uu.nl>

	* parse/meta-explode.str: added explosion of int terms to
	trm-explode.

2003-09-15  Martin Bravenboer  <mbravenb@cs.uu.nl>

	* parse/stratego-ensugar.str: implemented ensugaring of Cons/Nil
	to List and ListTail.

2003-08-27  Eelco Visser  <visser@cs.uu.nl>

	* Made restricted version of the Stratego syntax under the name
	Stratego-Core. The idea is that the back-end of the compiler only
	processes modules in this restricted language.  The user language
	should be an extension with sugar of the core language. A few
	refactorings have been applied to the syntax definition of the
	core constructs such as: explicit annotations on all term
	constructors; pulling together of id, string, and variable
	constructor.

2003-08-24  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Strategies.sdf: Allow list variables as
	formal term arguments.

2003-08-20  Martin Bravenboer  <mbravenb@cs.uu.nl>

  * parse/meta-explode.str: in str-explode a string should
    be exploded to a Match, not a Cong (solution suggested by Eelco)

  * parse/meta-explode.str: in str-explode allow a FromApp as an alias of
    FromStrategy (should be disabled if you don't agree).

2003-08-12  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Identifiers.sdf: Distinghuish lower and upper case
	identifiers for use in sort expressions.

	* syn/Stratego-Signatures.sdf: A constant type uses a Sort instead
	of a Term. Extended syntax of sorts.

2003-07-31  Eelco Visser  <visser@cs.uu.nl>

	* test/PropStratego.sdf: using WithAnno instead of Anno.

2003-07-30  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Strategies.sdf: delimit let with end to avoid ambiguities

2003-07-18  Eelco Visser  <visser@cs.uu.nl>

	* pp/Stratego-pretty.pp, parsed/stratego-ensugar: Improved
	pretty-printing by placing parentheses in stratego-ensugar instead
	of in pretty-print table. Sequences are associated to the left to
	produce nice straight sequence of strategies. Note that just using
	Stratego-pretty.pp is not sufficient to get correct pretty-printing!
	Use pp-stratego instead. Also note that pp-stratego has a -a or
	--abstract option in order to pretty-print a generated abstract
	syntax tree rather than a concrete syntax text.
	

2003-07-13  Eelco Visser  <visser@cs.uu.nl>

	* parse/meta-explode.str: WithAnno is considered a special constructor
	(like ToTerm) that should be used to annotate a term in concrete
	syntax. Anno was used for this purpose, but that was a bug, because
	of the clash with the Anno constructor in Stratego itself.

2003-07-11  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Strategies.sdf: Syntax for quoted constructors.

	* syn/Stratego-Terms.sdf: Syntax for quoted constructors.

	* syn/Stratego-Signatures.sdf: Syntax for quoted constructors
	and injections.

	* syn/Stratego-Strategies.sdf: Syntax extension: terms can be
	passed directly to strategies using f(s1,...,sn|t1,...,tn).
	Strategies can be passed to primitives using
	prim("f",s1,...,sn|t1,...,tn). 

	* parse/pp-stratego.str: pretty-print annotations on ast with
	--annotations option.

2003-07-10  Eelco Visser  <visser@cs.uu.nl>

	* Added module Stratego-Amb.sdf for productions that generate
	abstract syntax, but which should not actually be used for
	parsing because of ambiguities. In particular: Cong(x, [...])
	which is actually parsed as a Call(x, [...]). The distinction
	between actual calls and congruences is made in the front-end.

2003-06-01  Eelco Visser  <visser@cs.uu.nl>

	* parse/pp-stratego.str: Added abstract syntax interface to
	pp-stratego.

2003-05-28  Eelco Visser  <visser@cs.uu.nl>

	* parse/stratego-desugar.str, syn/Stratego-Strategies.sdf: characters
	can also be used as congruences (of course).

2003-05-28  Martin Bravenboer <martin@mbravenboer.org>

  * syn/Stratego-Constants.sdf: allow newlines in String
    literals. This allows you to use String literals spanning
    multiple lines.

  * syn/Stratego-Lex.sdf and Main.sdf: removed because they
    are never used. Especially the Stratego-Lex module
    was confusing.

2003-05-12  Martin Bravenboer <martin@mbravenboer.org>

  * syn/Stratego-Strategies.sdf,
    parse/stratego-desugar.sdf,  
    pp/Stratego-pretty.pp: Changed TupleCong to EmptyTupleCong
    Reported by Rob Vermass.

2003-03-17  Martin Bravenboer <martin@mbravenboer.org>

  * pp/Stratego-pretty.pp: Fixed Con, reported by Rob Vermaas.

2003-02-28  Martin Bravenboer <martin@mbravenboer.org>

  * pp/Stratego-pretty.pp: Added SRule, reported by Rob Vermaas.

2003-02-25  Martin Bravenboer <martin@mbravenboer.org>

  * pp/Stratego-pretty.pp: Added AnnoCong and StrategyCurly,
    reported by Rob Vermaas.

2003-02-05  Martin Bravenboer <martin@mbravenboer.org>

  * syn/StrategoStratego.sdf: Added some quotations and
  anti-quotations for using concrete syntax for signatures.

2003-02-05  Eelco Visser  <visser@cs.uu.nl>

	* parse/parse-stratego.str: Shifted name of default syntax from
	get-meta to get-syntax.

2003-01-14  Eelco Visser  <visser@cs.uu.nl>

	* parse/meta-explode.str: Support for ToBuild and FromApp to write
	ASP style quotation and antiquotation.

2003-01-02  Eelco Visser  <visser@cs.uu.nl>

	* sig/Makefile.am : .str file explicit target for sdf-to-sig, otherwise make
	doesn't know they have been created

2003-01-01  Eelco Visser  <visser@cs.uu.nl>

	* syn/StrategoStratego.sdf: removed ~ StrategoTerm -> Id injection, since
	it caused wrong parses; use ~id: instead.

2002-12-30  Eelco Visser  <visser@cs.uu.nl>

	* syn/meta-explode.str: presentation for use in book

2002-12-22  Eelco Visser  <visser@cs.uu.nl>

	* syn/StrategoStratego.sdf: ~term*:

	* parse/meta-explode.str: main -> meta-explode

	* parse/parse-stratego.str: Refactored using XTC

2002-12-21  Eelco Visser  <visser@cs.uu.nl>

	* syn/StrategoStratego.sdf: Cleaned up definitions of concrete
	syntax injections. The |[ ... ]| quotation marks should be used
	instead of [[ ... ]]. The latter are still defined, but will be
	phased out.

	* pp/astratego2text.str: Using XTC

	* syn/Stratego-Strategies.sdf: Make rule without scope (SRule) into
	a strategy by means of parentheses: (t1 -> t2 where s) is a strategy.
	This was already the case in the abstract syntax. Primitives and
	calls can both have terms *and* strategies as arguments. This has
	not been implemented in the compiler yet.

2002-12-18  Eelco Visser  <visser@cs.uu.nl>

	* syn/StrategoStratego.sdf: added |[ ... ]| style injections

	* syn/StrategoRenamed.sdf: Renaming of ID

2002-12-16  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego-Terms.sdf: Priority definition for annotations

	* parse/stratego-desugar.str: Desugaring of contexts

	* Makefile.am (SUBDIRS): Removed chec_dist target

2002-12-11  Eelco Visser  <visser@cs.uu.nl>

	* pp/: Removing stratego.pp from CVS repository
	* sig/: Adding generated signature to CVS repository for bootstrapping

2002-12-09  Eelco Visser  <visser@cs.uu.nl>

	* using autoxt

	* parse/: Improved stratego-desugar

	* syn/: Split up syntax definition in smaller modules

2002-12-08  Eelco Visser  <visser@cs.uu.nl>

	* pp/Stratego-pretty.pp: pretty-printing characters

	* parse/stratego-desugar.str: Desugaring character constants

	* syn/Stratego.sdf: Syntax of character constants

2002-12-07  Eelco Visser  <visser@cs.uu.nl>

	* Renamed parse-cmod into parse-stratego, which now also deals
	with non-concrete syntax modules. Completed stratego-desugar.

2002-12-01  Eelco Visser  <visser@cs.uu.nl>

	* syn/Stratego.sdf: Annotation congruences, list of terms as annotation

2002-09-19  Eelco Visser  <visser@acm.org>

	* syn/Stratego.sdf: Added sort ID as the combination of Id and LId
	to allow list variables declared in term variable scopes.

2002-09-17  Eelco Visser  <visser@acm.org>

	* Added syntax for list variables

	* parse/meta-explode.r: Improved explosion of list meta variables.

2002-08-04  Eelco Visser  <visser@acm.org>

	* sig/Makefile.am: Install Stratego.rtree instead of Stratego.r
	such that users don't have to modify the installation directory
	to parse the file

2002-06-11  Eelco Visser  <visser@acm.org>

	* parse/parse-cmod.r, parse/parse-cmod.config.src: verbosity
	levels

2002-06-09  Eelco Visser  <visser@acm.org>

	* stratego-front is a new package that extends the Stratego
	Compiler with support for concrete syntax.

	
