2003-06-09  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>

	* Added the Visit method to classes: AST, ArrayLiteral, ASTList,
	Block, DebugBreak, Eval, ForIn, FunctionDeclaration,
	FunctionExpression, Import, Package, ScriptBlock, Throw, Try,
	With, 
	
	That method will be the driver that will allow classes
	that implement the Visitor interface do a walk through the AST's
	elements, in particular the Semantic Analizer and the Code
	Generator. Every class that inherits from AST will have a Visit
	method, that method will receive a Visitor and a object as
	parameters, the only thing that it'll do is letting the Visitor
	call the respective method VisitX, where X is the name of the
	currently visited class.
	
	* ASTList.cs:Added constructor, Add, Visit, ToString  methods.

	* FunctionDeclaration.cs: Added constructor, Visit and ToString
	methods.
	
	* jscript-lexer-parser.g: Added a ASTList as a parameter to the
	program (the main entry of the parser). Also added as parameters: 
		- An AST to source_element.
		- A Statement to statement.
		- A VariableStatement to variable_statement.
		- A VariableStatement to variable_declaration_list.
		- A FormalParamerList by formal_parameter_list.
		- A ASTList by function_body.
	
	And now some rules return objects:
		- A VariableDeclaration by variable_declaration.
		- A Functiondeclaration by function_declaration.

	* driver.cs: Added the construction of the AST of the EcmaScript
	program.

	* Visitor.cs: Added this file. It's the visitor interface. 

	* VariableDeclaration.cs: Added this class, it's the AST
	representation of a variable declaration.

	* Statement.cs: Added this file. It's the logical representation
	of a Statement.

	* VariableStatement.cs: Added this class. It's the AST
	representation of a chain of variable declarations.
	
	* FormalParameterList.cs: The function declaration needs to store
	its parameter, we will put them on this class.

	* SemanticAnalizer.cs: Added this class. I'll use the Visitor pattern in order to
	implement the semantic analysis and code generation
	phases. SemanticAnalizer and CodeGenerator will implement the
	Visitor interface, they will walk a program's
	AST tree and do their respective work.

	* IdentificationTable.cs: Added this class. The SymbolTable will be used
	by the SemanticAnalyzer in order to keep track of the variable
	declaration encountered, etc..

	* SymbolTable.cs: A simple hashtable but for commodity i'll call
	it this way.

	
2003-05-03  Cesar Lopez Nataren  <cesar@ciencias.unam.mx>

	* jscript-lexer-parser.g:
	- Deleted the assignment_operator COMPOUND_ASSIGNMENT, and added
	MULTIPLICATION_ASSIGN, DIVISION_ASSIGN, REMAINDER_ASSIGN,
	ADDITION_ASSIGN, SUBSTRACTION_ASSIGN, SIGNED_LEFT_SHIFT_ASSIGN,
	SIGNED_RIGHT_SHIFT_ASSIGN, UNSIGNED_RIGHT_SHIFT_ASSIGN,
	BITWISE_AND_ASSIGN, BITWISE_OR_ASSIGN.
	- Changed INTERROGATION to CONDITIONAL.
	- Changed TRIANGLE to BITWISE_XOR.
	- Changed SLASH to DIVISION.
	- Changed PERCENT to REMAINDER.
	- Changed ADMIRATION to LOGICAL_NOT
	- Added BITWISE_NOT (~).
	- Added the INCREMENT and DECREMENT rules for
	left_hand_side_expression.
	- Increased lexer lookup from 2 to 4.
	- Redefined the definitions of: L_THAN, G_THAN, MINUS, TIMES,
	BITWISE_AND, BITWISE_OR,
	- Added operator: EQUALS, DOES_NOT_EQUALS, STRICT_EQUALS,
	REMAINDER, UNSIGNED_RIGHT_SHIFT.
	- Added the recursion rules for equality_expression.
	- Added the recursion rules for shift_expression.
	- Now we skip tabs.
	- The most important thing, added support for expressions like:
	sdf.[hgh], cool!

2003-04-20	Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* driver.cs: 
	- Erased the Context class, it was used for the first
	test of the print_statement and Reflection.Emit. As I erased the
	Program, SourceElements, SourceElement from the ANTLR grammar (for
	the rework of the AST tied to the MS JScript public API), I erased
	some uses in here.
	- Erased the methods: EmitJScript0Type, EmitJScript0Cons,
	EmitGlobalCode, EmitJScript0, EmitJScriptMainType,
	EmitJScriptMainCons, EmitJScriptMainFunction, EmitJScriptMain,
	Emit.

	* jscript-lexer-parser.g: 
	- Erased the references to the classes Program, SourceElements,
	SourceElement, Statement, FunctionDeclaration and erased
	print_statement rule. 

	* JSCriptLexer.cs JScriptParser.cs and the other files generated
	by antlr, reflect changes from the grammar changes.

2003-04-19	Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>
	* Added stubs for the classes:
	ASTList.cs 
	ActivationObject.cs 
	ActiveXObjectConstructor.cs 
	ArrayConstructor.cs 
	ArrayLiteral.cs 
	ArrayObject.cs 
	AssemblyCustomAttributeList.cs 
	BaseVsaEngine.cs 
	BinaryOp.cs 
	Binding.cs 
	Block.cs 
	BooleanConstructor.cs 
	BooleanObject.cs 
	Closure.cs 
	Context.cs 
	DateConstructor.cs 
	DateObject.cs 
	DebugBreak.cs 
	Empty.cs 
	EnumeratorConstructor.cs 
	EnumeratorObject.cs 
	ErrorConstructor.cs 
	ErrorObject.cs 
	Eval.cs 
	ForIn.cs 
	FunctionConstructor.cs 
	FunctionDeclaration.cs 
	FunctionExpression.cs 
	FunctionObject.cs 
	GlobalObject.cs 
	GlobalScope.cs 
	IActivationObject.cs 
	IRedirectOutput.cs 
	IVsaScriptScope.cs 
	Import.cs 
	JSBuiltIn.cs 
	JSField.cs 
	JSFunctionAttribute.cs 
	JSFunctionAttributeEnum.cs 
	JSLocalField.cs 
	JSObject.cs 
	JSToken.cs 
	JSVariableField.cs 
	LenientGlobalObject.cs 
	MathObject.cs 
	NumberConstructor.cs 
	NumberObject.cs 
	ObjectConstructor.cs 
	Package.cs 
	RegExpConstructor.cs 
	RegExpObject.cs 
	ScriptBlock.cs 
	ScriptFunction.cs 
	ScriptObject.cs 
	StringConstructor.cs 
	StringObject.cs 
	Throw.cs 
	Try.cs 
	UnaryOp.cs 
	VBArrayConstructor.cs 
	VsaEngine.cs 
	With.cs 	
	

2003-04-11	Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* jscript-lexer-parser.g:
	- Added rules for: continue_statement, break_statement,
	return_statement, throw statement (all of them do not ensure that
	no LineSeparator appears between the keyword on the left and the
	identifier, expression or semicolon on the right, that must be fixed).
	- Added single line comments rule.

2003-04-08	Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* jscript-lexer-parser.g: Added syntatic rule for:
	- if_statement.
	- while and for-in subrules of iteration_statement.
	- Added array_literal - got tricky - I just could get the simplest rule going :)
	- Added elision.

	
2003-04-08	Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* jscript-lexer-parser.g:
	- Syntatic rule for iteration_statement.
	- "do" subrule for it.
	- Added ((L_THAN | G_THAN | LE_THAN | GE_THAN | "instanceof" |
	"in") relational_expression | )	rule to relational_expression.
	-Added function_expression syntatic rule.
	- Added STRING_LITERAL to literal rules.
	- "Less/Greater or equal than" lexer rule.

2003-04-03	Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* jscript-lexer-parser.g: Added switch_statement rule, case_block, case_clauses, case_clause, default_clause, labelled_statement, try_statement, catch_exp, finally_exp.

2003-04-01    Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* jscript-lexer-parser.g: Added the grammar rules for: with_statement, object_literal, ( expression ), property_name_and_value_list, property_name and expression.
	

2003-03-30    Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* Added a README file. Explains the dependencies and build process.

2003-03-30   Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>

	* Added this ChangeLog file.
	
	* ast.cs: Added this file. Contains the classes used for building
	the EcmaScript 's AST.

	* JScript*: These are the files generated by antlr (the parser generator). 

	* TODOAttribute.cs: Changed the namespace in order to use it freely on Microsoft.JScript.

	* driver.cs: Added this file. Contains the compiler entry point. And some Reflection.Emit methods,
	that will be moved to other file in the future.

	* jscript-lexer-parser.g: The EcmaScript's antlr grammar.	
