[0.3.4]

* enhanced the AWK interpreter to be more compatible to AWK
  - no more semicolon needed to terminate a statement with ASE_AWK_NEWLINE on.
* removed the ASE_AWK_STRCONCAT option.
* added the ASE_AWK_BXOR option.

[0.3.3]

* enhanced the AWK interpreter to allow multiple BEGIN/END blocks.
* enhanced the parser to handle ("abc" ++ k) as ("abc" . ++k) when
  ASE_AWK_IMPLICIT is on.

* fixed a memory leak bug in the following context.
	BEGIN {
		d = 90;
		x[30] = d;
		/* Reference count for d was not properly decremented
		 * when a map slot is assigned with the same value as 
		 * the previous value. */
		x[30] = d; 
	}

* fixed a control-flow bug in the following context.
        function error() { exit (1); }
	function getx()
	{
		if (x == 2) error();
		return x++;
	}
	function gety() { return y++; }
        BEGIN {
		x = 0;
		y = 0;
		print getx() + gety(); 
		print getx() + gety();
		/* this following line should not have been printed as
		 * exit() is executed in getx(). */
		print getx() + gety(); 
		print getx() + gety();
        }

* redefined the variable scope
* removed ASE_AWK_UNIQUEFN and ASE_AWK_SHADING by refining the scoping rule
* fixed a bug in handling >> when ASE_AWK_SHIFT is off

* added ASE_AWK_EVARRED
* added five operators - <<=, >>=, &=, ^=, |=

[0.3.2]

* fixed a build problem for x64 target in MSVC2005

[0.3.1]

* added to the awk interpreter the capibility to manipulate global variables 
    - added ase_awk_addglobal, ase_awk_delglobal (awk/parse.c)
    - added Awk::addGlobal, Awk::deleteGlobal (awk/Awk.hpp, awk/Awk.cpp)
    - added Awk::Run::setGlobal, Awk::Run::getGlobal (awk/Awk.hpp, awk/Awk.cpp)
    - added Awk::AddGlobal, Awk::DeleteGlobal (net/Awk.hpp, net/Awk.cpp)
    - added Awk::Run::SetGlobal, Awk::Run::GetGlobal (net/Awk.hpp, net/Awk.cpp)
    - enhanced ase_awk_getglobalname
* added three new options - ASE_AWK_RESET, ASE_AWK_MAPTOVAR, ASE_AWK_PABLOCK

* enhanced Awk::dispatchFunction to set a more accurate error code (awk/Awk.cpp)
* enhanced the JNI binding to integrate most of the changes so far.

* fixed a bug 
    - memory leak if a null statement or a block with no statements are 
      present in an AWK program. (awk/parse.c)
    - memery leak if a return value is set by an intrinsic function
      but it ends up with an error. (awk/run.c - eval_call)

* changed the access modifier for the Awk::Source::Source from public
  to protected.
* renamed ase_awk_addbfn & ase_awk_delbfn to ase_awk_addfunc & ase_awk_delfunc 
  respectively.

* started the source code documentation of awk/Awk.hpp.
* enhanded test programs.

[0.3.0]

* added ase_awk_setword to enable customization of keywords and
  intrinsic function names.
* added ase_awk_seterrmsg to set the error message to be any string given
* added setWord/unsetWord method to the awk c++ class (awk/Awk.cpp)
* added setErrorString method to the awk c++ class (awk/Awk.cpp)
* added setWord/unsetWord method to the awk java class (awk/Awk.java)
* added the error code ASE_AWK_ELXDIG to indicate a wrong digit in
  octal number tokenization. 
* added setWord/unsetWord method to the awk com module (com/Awk.cpp)
* added the .NET interface to the awk interpreter (net/Awk.cpp net/StdAwk.cpp)

* changed the wrong macro name WIN32 to _WIN32 in utl/stdio.h
* changed test/awk/Awk.cpp to include an option(-w) to utilize
  the setWord method.
* changed test/awk/AseAwk.java to include an option(-w) to utilize
  the setWord method.

* enhanced awk/map.c to support automatic rehashing

[0.2.0]

* fixed bug (nextofile shown as nextfile in source output)
* fixed bug (nextofile not allowed in the BEGIN and END block)
* fixed bug (ASE_MALLOC/ASE_FREE defined wrongly causing sample programs
             to crash in the debug mode when compiled with MSVC/C++.
* fixed bug (the first character of the next record lost when RS are
             multiple characters)
* fixed bug (the last field of the last record lost when RS are 
             multiple characters)

* added awk c++ classes (awk/Awk.hpp awk/Awk.cpp awk/StdAwk.hpp awk/StdAwk.cpp)
* added c++ sample program (test/awk/Awk.cpp)

* changed test/awk/AseAwk.java to be funtionally identical to test/awk/Awk.cpp
* changed the way to invoke the main function (utl/main.h utl/main.c)

[0.1.0]

* initial release