Added standalone Tea compiler - teak
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 25 Sep 2015 03:51:15 +0100
changeset 16 17a2d1d9f205
parent 15 10a95d798b36
child 17 ee807ff2f897
Added standalone Tea compiler - teak It allows for compilation of .tea files from the command line.
compiler/Make.proto
compiler/Make.spec
compiler/TArgumentBinding.st
compiler/TAutomaticType.st
compiler/TBinding.st
compiler/TBlockBinding.st
compiler/TBlockType.st
compiler/TClassBinding.st
compiler/TClassDefinition.st
compiler/TCompilationUnitDefinition.st
compiler/TCompiler.st
compiler/TCompilerContext.st
compiler/TCompilerError.st
compiler/TCompilerExamples.st
compiler/TCompilerOptions.st
compiler/TCompilerPass.st
compiler/TConstantBinding.st
compiler/TEnvironment.st
compiler/TEnvironmentProvider.st
compiler/TFilesystemProvider.st
compiler/TFormatter.st
compiler/TFunctionBinding.st
compiler/TLLVMCodeGenerator.st
compiler/TLocalBinding.st
compiler/TMetaDefinition.st
compiler/TMethodBinding.st
compiler/TMethodDefinition.st
compiler/TMethodDefinitionTests.st
compiler/TNamespaceBinding.st
compiler/TNamespaceDefinition.st
compiler/TObjectWithProperties.st
compiler/TParser.st
compiler/TParserTests.st
compiler/TProgramNodeVisitor.st
compiler/TScope.st
compiler/TSemanticAnalyser.st
compiler/TSemanticAnalyserTests.st
compiler/TSimpleType.st
compiler/TSimpleTypeNode.st
compiler/TSourceReader.st
compiler/TSourceReaderTests.st
compiler/TSpecialFormNode.st
compiler/TType.st
compiler/TTypeNode.st
compiler/TTypeSpecNode.st
compiler/TTypechecker.st
compiler/TTypecheckerTests.st
compiler/TValueBinding.st
compiler/TVariableBinding.st
compiler/abbrev.stc
compiler/bc.mak
compiler/cli/Make.proto
compiler/cli/Make.spec
compiler/cli/Makefile.init
compiler/cli/TCompilerCommand.st
compiler/cli/abbrev.stc
compiler/cli/autopackage/default.apspec
compiler/cli/bc.mak
compiler/cli/bmake.bat
compiler/cli/builder/baseline.rbspec
compiler/cli/builder/package.deps.rake
compiler/cli/cli.nsi
compiler/cli/cliWinRC.rc
compiler/cli/jv_tea_compiler_cli.st
compiler/cli/mingwmake.bat
compiler/cli/modules.c
compiler/cli/modules.stx
compiler/cli/vcmake.bat
compiler/jv_tea_compiler.st
compiler/libInit.cc
--- a/compiler/Make.proto	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/Make.proto	Fri Sep 25 03:51:15 2015 +0100
@@ -108,6 +108,7 @@
 	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../llvm_s && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
@@ -130,7 +131,6 @@
 $(OUTDIR)TClassDefinition.$(O) TClassDefinition.$(H): TClassDefinition.st $(INCLUDE_TOP)/stx/goodies/ring/RGBehaviorDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGClassDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGClassDescriptionDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGGlobalDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TCompilationUnitDefinition.$(O) TCompilationUnitDefinition.$(H): TCompilationUnitDefinition.st $(INCLUDE_TOP)/stx/goodies/ring/RGAbstractContainer.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TCompiler.$(O) TCompiler.$(H): TCompiler.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TCompilerError.$(O) TCompilerError.$(H): TCompilerError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TEnvironmentProvider.$(O) TEnvironmentProvider.$(H): TEnvironmentProvider.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TFormatter.$(O) TFormatter.$(H): TFormatter.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBFormatter.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -146,6 +146,8 @@
 $(OUTDIR)TTypeSpecNode.$(O) TTypeSpecNode.$(H): TTypeSpecNode.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)jv_tea_compiler.$(O) jv_tea_compiler.$(H): jv_tea_compiler.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
 $(OUTDIR)TBinding.$(O) TBinding.$(H): TBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)TCompilerOptions.$(O) TCompilerOptions.$(H): TCompilerOptions.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TCompilerPass.$(O) TCompilerPass.$(H): TCompilerPass.st $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TEnvironment.$(O) TEnvironment.$(H): TEnvironment.st $(INCLUDE_TOP)/jv/tea/compiler/TNamespaceDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGAbstractContainer.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGContainer.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGNamespace.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TFilesystemProvider.$(O) TFilesystemProvider.$(H): TFilesystemProvider.st $(INCLUDE_TOP)/jv/tea/compiler/TEnvironmentProvider.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -156,7 +158,7 @@
 $(OUTDIR)TBlockType.$(O) TBlockType.$(H): TBlockType.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TType.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TClassBinding.$(O) TClassBinding.$(H): TClassBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TBinding.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TFunctionBinding.$(O) TFunctionBinding.$(H): TFunctionBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TBinding.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)/jv/tea/compiler/TCompilerPass.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)/jv/llvm_s/LLVMAtomicOrdering.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMAtomicRMWBinOp.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMAttribute.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMByteOrdering.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMCallConv.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMDLLStorageClass.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMIntPredicate.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TCompilerPass.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TNamespaceBinding.$(O) TNamespaceBinding.$(H): TNamespaceBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TBinding.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TSemanticAnalyser.$(O) TSemanticAnalyser.$(H): TSemanticAnalyser.st $(INCLUDE_TOP)/jv/tea/compiler/TCompilerPass.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TSimpleType.$(O) TSimpleType.$(H): TSimpleType.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TType.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/compiler/Make.spec	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/Make.spec	Fri Sep 25 03:51:15 2015 +0100
@@ -54,7 +54,6 @@
 	TClassDefinition \
 	TCompilationUnitDefinition \
 	TCompiler \
-	TCompilerContext \
 	TCompilerError \
 	TEnvironmentProvider \
 	TFormatter \
@@ -70,6 +69,8 @@
 	TTypeSpecNode \
 	jv_tea_compiler \
 	TBinding \
+	TCompilerContext \
+	TCompilerOptions \
 	TCompilerPass \
 	TEnvironment \
 	TFilesystemProvider \
@@ -100,7 +101,6 @@
     $(OUTDIR_SLASH)TClassDefinition.$(O) \
     $(OUTDIR_SLASH)TCompilationUnitDefinition.$(O) \
     $(OUTDIR_SLASH)TCompiler.$(O) \
-    $(OUTDIR_SLASH)TCompilerContext.$(O) \
     $(OUTDIR_SLASH)TCompilerError.$(O) \
     $(OUTDIR_SLASH)TEnvironmentProvider.$(O) \
     $(OUTDIR_SLASH)TFormatter.$(O) \
@@ -116,6 +116,8 @@
     $(OUTDIR_SLASH)TTypeSpecNode.$(O) \
     $(OUTDIR_SLASH)jv_tea_compiler.$(O) \
     $(OUTDIR_SLASH)TBinding.$(O) \
+    $(OUTDIR_SLASH)TCompilerContext.$(O) \
+    $(OUTDIR_SLASH)TCompilerOptions.$(O) \
     $(OUTDIR_SLASH)TCompilerPass.$(O) \
     $(OUTDIR_SLASH)TEnvironment.$(O) \
     $(OUTDIR_SLASH)TFilesystemProvider.$(O) \
--- a/compiler/TArgumentBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TArgumentBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TArgumentBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TArgumentBinding methodsFor:'accessing'!
 
--- a/compiler/TAutomaticType.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TAutomaticType.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Types'
 !
 
+!TAutomaticType class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TAutomaticType methodsFor:'comparing'!
 
 = anotherType
--- a/compiler/TBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TBinding methodsFor:'accessing'!
 
--- a/compiler/TBlockBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TBlockBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TBlockBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TBlockBinding methodsFor:'testing'!
 
 isMethodBlock
--- a/compiler/TBlockType.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TBlockType.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Types'
 !
 
+!TBlockType class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TBlockType class methodsFor:'instance creation'!
 
 parameters: parameterTypes returning: returnType
--- a/compiler/TClassBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TClassBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TClassBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TClassBinding class methodsFor:'instance creation'!
 
 clazz: aTClassDefinition
--- a/compiler/TClassDefinition.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TClassDefinition.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TClassDefinition class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TClassDefinition methodsFor:'accessing'!
 
 binding
--- a/compiler/TCompilationUnitDefinition.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TCompilationUnitDefinition.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TCompilationUnitDefinition class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TCompilationUnitDefinition methodsFor:'accessing'!
 
 classes
@@ -71,3 +102,10 @@
     "Created: / 14-09-2015 / 10:32:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!TCompilationUnitDefinition class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/compiler/TCompiler.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TCompiler.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler'
 !
 
+!TCompiler class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TCompiler class methodsFor:'compilation'!
 
--- a/compiler/TCompilerContext.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TCompilerContext.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,14 +1,45 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
 
-Object subclass:#TCompilerContext
-	instanceVariableNames:'environment unit module'
+TObjectWithProperties subclass:#TCompilerContext
+	instanceVariableNames:'options environment unit'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Languages-Tea-Compiler'
 !
 
+!TCompilerContext class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TCompilerContext methodsFor:'accessing'!
 
 environment
@@ -19,13 +50,19 @@
     environment := aTNamespaceDefinition.
 !
 
-module
-    module isNil ifTrue:[ 
-        module := LLVMModule newWithName: unit name.
+options
+    options isNil ifTrue:[ 
+        options := TCompilerOptions new 
     ].
-    ^ module
+    ^ self.
+
+    "Created: / 24-09-2015 / 16:17:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
 
-    "Modified: / 30-08-2015 / 09:25:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+options: aTCompilerOptions
+    options := aTCompilerOptions
+
+    "Created: / 24-09-2015 / 16:17:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 unit
@@ -36,6 +73,27 @@
     unit := aTCompilationUnit.
 ! !
 
+!TCompilerContext methodsFor:'accessing - llvm'!
+
+llvmModule
+    | module |
+
+    module := self propertyAt: #llvmModule ifAbsentPut: [ nil ].
+    module isNil ifTrue:[ 
+        module := LLVMModule newWithName: unit name.
+        self llvmModule: module.
+    ].
+    ^ module.
+
+    "Created: / 24-09-2015 / 16:18:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+llvmModule: anLLVMModule
+    ^ self propertyAt: #llvmModule put: anLLVMModule
+
+    "Created: / 24-09-2015 / 17:05:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !TCompilerContext methodsFor:'error reporting'!
 
 reportSemanticError: message
--- a/compiler/TCompilerError.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TCompilerError.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,3 +22,21 @@
 	category:'Languages-Tea-Compiler-Exceptions'
 !
 
+!TCompilerError class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
--- a/compiler/TCompilerExamples.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TCompilerExamples.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Examples'
 !
 
+!TCompilerExamples class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TCompilerExamples class methodsFor:'asserting'!
 
 isTestSelector:aSelector
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/TCompilerOptions.st	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,98 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+"{ Package: 'jv:tea/compiler' }"
+
+"{ NameSpace: Smalltalk }"
+
+TObjectWithProperties subclass:#TCompilerOptions
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Tea-Compiler'
+!
+
+!TCompilerOptions class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
+!TCompilerOptions methodsFor:'accessing'!
+
+optionAt: option
+    ^ self propertyAt: option
+
+    "Created: / 24-09-2015 / 16:12:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+optionAt: option default: default
+    ^ self propertyAt: option ifAbsent:[ default ]
+
+    "Created: / 24-09-2015 / 16:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+optionAt: option put: value
+    ^ self propertyAt: option put: value
+
+    "Created: / 24-09-2015 / 16:13:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerOptions methodsFor:'options'!
+
+emitIR
+    ^ self optionAt: #emitIR default: false
+
+    "Created: / 24-09-2015 / 16:38:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+emitIR: aBoolean
+    self optionAt: #emitIR put: aBoolean
+
+    "Created: / 24-09-2015 / 16:39:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+output
+    ^ self optionAt: #output default: nil
+
+    "Created: / 24-09-2015 / 16:38:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+output: aSgtring
+    self optionAt: #output put: aSgtring.
+
+    "Created: / 24-09-2015 / 16:38:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerOptions class methodsFor:'documentation'!
+
+version
+    ^ 'Path: jv/tea/compiler/TCompilerOptions.st, Version: 1.0, User: jv, Time: 2015-09-25T03:26:11.669+01'
+!
+
+version_HG
+    ^ 'Path: jv/tea/compiler/TCompilerOptions.st, Version: 1.0, User: jv, Time: 2015-09-25T03:26:11.669+01'
+! !
+
--- a/compiler/TCompilerPass.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TCompilerPass.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Internals'
 !
 
+!TCompilerPass class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TCompilerPass class methodsFor:'running'!
 
 runOn: anObject
--- a/compiler/TConstantBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TConstantBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TConstantBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TConstantBinding class methodsFor:'instance creation'!
 
--- a/compiler/TEnvironment.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TEnvironment.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TEnvironment class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TEnvironment methodsFor:'accessing'!
 
 provider
--- a/compiler/TEnvironmentProvider.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TEnvironmentProvider.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Model-Provider'
 !
 
+!TEnvironmentProvider class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TEnvironmentProvider methodsFor:'accessing'!
 
--- a/compiler/TFilesystemProvider.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TFilesystemProvider.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Model-Provider'
 !
 
+!TFilesystemProvider class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TFilesystemProvider class methodsFor:'instance creation'!
 
@@ -49,6 +79,12 @@
     ^ unit classes detect:[:class | class name = name ] ifNone:[ nil ]
 
     "Created: / 14-09-2015 / 15:10:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classpath
+    ^ classpath
+
+    "Created: / 24-09-2015 / 16:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !TFilesystemProvider methodsFor:'initialization'!
--- a/compiler/TFormatter.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TFormatter.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-AST'
 !
 
+!TFormatter class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TFormatter methodsFor:'visitor-double dispatching'!
 
 acceptSimpleTypeNode: aTSimpleTypeNode
--- a/compiler/TFunctionBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TFunctionBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TFunctionBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TFunctionBinding methodsFor:'accessing'!
 
 parameterTypes
--- a/compiler/TLLVMCodeGenerator.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TLLVMCodeGenerator.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -5,10 +18,29 @@
 TCompilerPass subclass:#TLLVMCodeGenerator
 	instanceVariableNames:'function asm'
 	classVariableNames:'SelectorSpecialCharMappingTable'
-	poolDictionaries:''
+	poolDictionaries:'LLVMAtomicOrdering LLVMAtomicRMWBinOp LLVMAttribute
+		LLVMByteOrdering LLVMCallConv LLVMDLLStorageClass
+		LLVMIntPredicate'
 	category:'Languages-Tea-Compiler-Internals'
 !
 
+!TLLVMCodeGenerator class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TLLVMCodeGenerator class methodsFor:'initialization'!
 
@@ -92,13 +124,13 @@
         allocas := anRBVariableNode scope llvmAllocas.
         block := asm block.
         asm block: allocas.
-        value := asm alloca: (binding type asLLVMTypeInModule: context module)  as: binding name.
+        value := asm alloca: (binding type asLLVMTypeInModule: context llvmModule)  as: binding name.
         asm block: block.
     ].
     binding llvmValue: value.
 
     "Created: / 02-09-2015 / 08:43:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-09-2015 / 21:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 16:18:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !TLLVMCodeGenerator methodsFor:'visitor-double dispatching'!
@@ -191,10 +223,10 @@
 !
 
 acceptLiteralNode: aLiteralNode
-    ^ aLiteralNode binding asLLVMValueInModule: context module.
+    ^ aLiteralNode binding asLLVMValueInModule: context llvmModule.
 
     "Created: / 31-08-2015 / 10:13:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 31-08-2015 / 12:20:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 16:17:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 acceptMessageNode: aMessageNode
@@ -202,18 +234,18 @@
 
     receiver := self visitNode: aMessageNode receiver.
     arguments := aMessageNode arguments collect: [:argument | self visitNode: argument ].
-    methodFunction := aMessageNode binding asLLVMValueInModule: context module.  
+    methodFunction := aMessageNode binding asLLVMValueInModule: context llvmModule.  
 
     ^ asm call: methodFunction _: { receiver } , arguments
 
     "Created: / 31-08-2015 / 10:13:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 15-09-2015 / 07:14:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 16:17:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 acceptMethodNode: aMethodNode 
     | allocas entry |
 
-    function := aMethodNode binding asLLVMValueInModule: context module.
+    function := aMethodNode binding asLLVMValueInModule: context llvmModule.
     allocas := function addBasicBlockNamed: 'allocas'.
     entry := function addBasicBlockNamed: 'entry'.
     aMethodNode scope llvmAllocas: allocas.
@@ -224,7 +256,7 @@
     asm br: entry.
 
     "Created: / 31-08-2015 / 09:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-09-2015 / 22:32:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 16:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 acceptOptimizedNode: anOptimizedNode 
@@ -234,9 +266,12 @@
 !
 
 acceptPragmaNode: aPragmaNode
-    self notYetImplemented
+    aPragmaNode selector = 'primitive:' ifTrue:[ 
+        self acceptPrimitiveNode: aPragmaNode  
+    ].
 
     "Created: / 31-08-2015 / 10:13:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 18:53:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 acceptPrimitiveNode: aPragmaNode
@@ -256,13 +291,13 @@
         ].
     ].
     emitMethodNode selector:(String streamContents: [ :s | emitMethodNode arguments size timesRepeat:[s nextPutAll:'_:'] ]).
-    emitMethod := Compiler compile: emitMethodNode formattedCode forClass: UndefinedObject install: false.
+    emitMethod := Compiler compile: emitMethodNode formattedCode forClass: self class install: false.
     emitMethod
         valueWithReceiver: nil
         arguments: { asm } , ((1 to: function numArgs) collect: [ :i | function parameterAt: i ])
 
     "Created: / 22-09-2015 / 18:03:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-09-2015 / 06:27:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 18:58:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 acceptReturnNode: aReturnNode 
--- a/compiler/TLocalBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TLocalBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TLocalBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TLocalBinding methodsFor:'printing & storing'!
 
 printOn:aStream
--- a/compiler/TMetaDefinition.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TMetaDefinition.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TMetaDefinition class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TMetaDefinition methodsFor:'accessing'!
 
 binding
--- a/compiler/TMethodBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TMethodBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TMethodBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TMethodBinding class methodsFor:'instance creation'!
 
--- a/compiler/TMethodDefinition.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TMethodDefinition.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TMethodDefinition class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TMethodDefinition methodsFor:'accessing'!
 
--- a/compiler/TMethodDefinitionTests.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TMethodDefinitionTests.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model-Tests'
 !
 
+!TMethodDefinitionTests class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TMethodDefinitionTests methodsFor:'tests'!
 
 test_01
--- a/compiler/TNamespaceBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TNamespaceBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TNamespaceBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TNamespaceBinding class methodsFor:'instance creation'!
 
--- a/compiler/TNamespaceDefinition.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TNamespaceDefinition.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TNamespaceDefinition class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TNamespaceDefinition methodsFor:'accessing'!
 
 binding
--- a/compiler/TObjectWithProperties.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TObjectWithProperties.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Internals'
 !
 
+!TObjectWithProperties class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TObjectWithProperties methodsFor:'accessing-properties'!
 
 hasProperty: aKey
--- a/compiler/TParser.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TParser.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-AST'
 !
 
+!TParser class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TParser class methodsFor:'parsing'!
 
 parseMethod: aString 
--- a/compiler/TParserTests.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TParserTests.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-AST-Tests'
 !
 
+!TParserTests class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TParserTests methodsFor:'tests'!
 
 test_blockargs
--- a/compiler/TProgramNodeVisitor.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TProgramNodeVisitor.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-AST'
 !
 
+!TProgramNodeVisitor class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TProgramNodeVisitor methodsFor:'visiting'!
 
--- a/compiler/TScope.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TScope.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TScope class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TScope class methodsFor:'instance creation'!
 
 node: node
--- a/compiler/TSemanticAnalyser.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSemanticAnalyser.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -11,6 +24,22 @@
 
 !TSemanticAnalyser class methodsFor:'documentation'!
 
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+!
+
 documentation
 "
     This is the very first pass on the code. Its responsibility is:
--- a/compiler/TSemanticAnalyserTests.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSemanticAnalyserTests.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Internals-Tests'
 !
 
+!TSemanticAnalyserTests class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TSemanticAnalyserTests methodsFor:'running'!
 
--- a/compiler/TSimpleType.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSimpleType.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Types'
 !
 
+!TSimpleType class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TSimpleType class methodsFor:'instance creation'!
 
 named: aString
--- a/compiler/TSimpleTypeNode.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSimpleTypeNode.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-AST'
 !
 
+!TSimpleTypeNode class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TSimpleTypeNode methodsFor:'accessing'!
 
 name
--- a/compiler/TSourceReader.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSourceReader.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model'
 !
 
+!TSourceReader class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TSourceReader class methodsFor:'reading'!
 
 read: aStringOrFilenameOrStream
--- a/compiler/TSourceReaderTests.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSourceReaderTests.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Model-Tests'
 !
 
+!TSourceReaderTests class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TSourceReaderTests methodsFor:'tests'!
 
 test_01
--- a/compiler/TSpecialFormNode.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TSpecialFormNode.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -11,6 +24,22 @@
 
 !TSpecialFormNode class methodsFor:'documentation'!
 
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+!
+
 documentation
 "
     TSpecialNode
--- a/compiler/TType.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TType.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Types'
 !
 
+!TType class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TType methodsFor:'comparing'!
 
--- a/compiler/TTypeNode.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TTypeNode.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-AST'
 !
 
+!TTypeNode class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TTypeNode class methodsFor:'accessing'!
 
 formatterClass
--- a/compiler/TTypeSpecNode.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TTypeSpecNode.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-AST'
 !
 
+!TTypeSpecNode class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TTypeSpecNode class methodsFor:'accessing'!
 
 formatterClass
--- a/compiler/TTypechecker.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TTypechecker.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Internals'
 !
 
+!TTypechecker class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TTypechecker methodsFor:'visiting'!
 
--- a/compiler/TTypecheckerTests.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TTypecheckerTests.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Internals-Tests'
 !
 
+!TTypecheckerTests class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TTypecheckerTests methodsFor:'tests - bindings'!
 
 test_binding_01
--- a/compiler/TValueBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TValueBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,24 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TValueBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
 !TValueBinding class methodsFor:'queries'!
 
 isAbstract
--- a/compiler/TVariableBinding.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/TVariableBinding.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'Languages-Tea-Compiler-Bindings'
 !
 
+!TVariableBinding class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !TVariableBinding class methodsFor:'instance creation'!
 
--- a/compiler/abbrev.stc	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/abbrev.stc	Fri Sep 25 03:51:15 2015 +0100
@@ -4,23 +4,29 @@
 TClassDefinition TClassDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
 TCompilationUnitDefinition TCompilationUnitDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
 TCompiler TCompiler jv:tea/compiler 'Languages-Tea-Compiler' 0
-TCompilerContext TCompilerContext jv:tea/compiler 'Languages-Tea-Compiler' 0
 TCompilerError TCompilerError jv:tea/compiler 'Languages-Tea-Compiler-Exceptions' 1
 TCompilerExamples TCompilerExamples jv:tea/compiler 'Languages-Tea-Compiler-Examples' 1
 TEnvironmentProvider TEnvironmentProvider jv:tea/compiler 'Languages-Tea-Compiler-Model-Provider' 0
 TFormatter TFormatter jv:tea/compiler 'Languages-Tea-Compiler-AST' 0
 TMetaDefinition TMetaDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
 TMethodDefinition TMethodDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
+TMethodDefinitionTests TMethodDefinitionTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1
 TNamespaceDefinition TNamespaceDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
 TObjectWithProperties TObjectWithProperties jv:tea/compiler 'Languages-Tea-Compiler-Internals' 0
 TParser TParser jv:tea/compiler 'Languages-Tea-Compiler-AST' 0
+TParserTests TParserTests jv:tea/compiler 'Languages-Tea-Compiler-AST-Tests' 1
 TProgramNodeVisitor TProgramNodeVisitor jv:tea/compiler 'Languages-Tea-Compiler-AST' 0
+TSemanticAnalyserTests TSemanticAnalyserTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1
 TSourceReader TSourceReader jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
+TSourceReaderTests TSourceReaderTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1
 TSpecialFormNode TSpecialFormNode jv:tea/compiler 'Languages-Tea-Compiler-AST' 0
 TTypeNode TTypeNode jv:tea/compiler 'Languages-Tea-Compiler-AST' 0
 TTypeSpecNode TTypeSpecNode jv:tea/compiler 'Languages-Tea-Compiler-AST' 0
+TTypecheckerTests TTypecheckerTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1
 jv_tea_compiler jv_tea_compiler jv:tea/compiler '* Projects & Packages *' 3
 TBinding TBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0
+TCompilerContext TCompilerContext jv:tea/compiler 'Languages-Tea-Compiler' 0
+TCompilerOptions TCompilerOptions jv:tea/compiler 'Languages-Tea-Compiler' 0
 TCompilerPass TCompilerPass jv:tea/compiler 'Languages-Tea-Compiler-Internals' 0
 TEnvironment TEnvironment jv:tea/compiler 'Languages-Tea-Compiler-Model' 0
 TFilesystemProvider TFilesystemProvider jv:tea/compiler 'Languages-Tea-Compiler-Model-Provider' 0
@@ -43,8 +49,3 @@
 TVariableBinding TVariableBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0
 TArgumentBinding TArgumentBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0
 TLocalBinding TLocalBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0
-TMethodDefinitionTests TMethodDefinitionTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1
-TParserTests TParserTests jv:tea/compiler 'Languages-Tea-Compiler-AST-Tests' 1
-TSemanticAnalyserTests TSemanticAnalyserTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1
-TSourceReaderTests TSourceReaderTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1
-TTypecheckerTests TTypecheckerTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1
--- a/compiler/bc.mak	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/bc.mak	Fri Sep 25 03:51:15 2015 +0100
@@ -58,6 +58,7 @@
 	pushd ..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\llvm_s & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
@@ -77,7 +78,6 @@
 $(OUTDIR)TClassDefinition.$(O) TClassDefinition.$(H): TClassDefinition.st $(INCLUDE_TOP)\stx\goodies\ring\RGBehaviorDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGClassDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGClassDescriptionDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGGlobalDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TCompilationUnitDefinition.$(O) TCompilationUnitDefinition.$(H): TCompilationUnitDefinition.st $(INCLUDE_TOP)\stx\goodies\ring\RGAbstractContainer.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TCompiler.$(O) TCompiler.$(H): TCompiler.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TCompilerError.$(O) TCompilerError.$(H): TCompilerError.st $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TEnvironmentProvider.$(O) TEnvironmentProvider.$(H): TEnvironmentProvider.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TFormatter.$(O) TFormatter.$(H): TFormatter.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBFormatter.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -93,6 +93,8 @@
 $(OUTDIR)TTypeSpecNode.$(O) TTypeSpecNode.$(H): TTypeSpecNode.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)jv_tea_compiler.$(O) jv_tea_compiler.$(H): jv_tea_compiler.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
 $(OUTDIR)TBinding.$(O) TBinding.$(H): TBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)TCompilerOptions.$(O) TCompilerOptions.$(H): TCompilerOptions.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TCompilerPass.$(O) TCompilerPass.$(H): TCompilerPass.st $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TEnvironment.$(O) TEnvironment.$(H): TEnvironment.st $(INCLUDE_TOP)\jv\tea\compiler\TNamespaceDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGAbstractContainer.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGContainer.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGNamespace.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TFilesystemProvider.$(O) TFilesystemProvider.$(H): TFilesystemProvider.st $(INCLUDE_TOP)\jv\tea\compiler\TEnvironmentProvider.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -103,7 +105,7 @@
 $(OUTDIR)TBlockType.$(O) TBlockType.$(H): TBlockType.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TType.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TClassBinding.$(O) TClassBinding.$(H): TClassBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TBinding.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TFunctionBinding.$(O) TFunctionBinding.$(H): TFunctionBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TBinding.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)\jv\tea\compiler\TCompilerPass.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)\jv\llvm_s\LLVMAtomicOrdering.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMAtomicRMWBinOp.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMAttribute.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMByteOrdering.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMCallConv.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMDLLStorageClass.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMIntPredicate.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TCompilerPass.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TNamespaceBinding.$(O) TNamespaceBinding.$(H): TNamespaceBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TBinding.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TSemanticAnalyser.$(O) TSemanticAnalyser.$(H): TSemanticAnalyser.st $(INCLUDE_TOP)\jv\tea\compiler\TCompilerPass.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TSimpleType.$(O) TSimpleType.$(H): TSimpleType.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TType.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/Make.proto	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,225 @@
+# $Header$
+#
+# automagically generated from the projectDefinition: jv_tea_compiler_cli.
+#
+# -------------- no need to change anything below ----------
+#
+# This makefile generates some standalone demo applications
+#
+#    make
+#       generates teak
+#
+
+TOP=../../../../stx
+INCLUDE_TOP=$(TOP)/..
+
+# set to a dummy file name (like FORCE=@@@FORCE-BUILD@@@) to force the build of prereq packages
+FORCE=
+.PHONY: $(FORCE)
+
+PACKAGE=jv:tea/compiler/cli
+SUBDIRS=
+SUPPRESS_LOCAL_ABBREVS="yes"
+NOAUTOLOAD=1
+NOSUBAUTOLOAD=1
+
+LOCALINCLUDES= -I$(INCLUDE_TOP)/jv/tea/compiler -I$(INCLUDE_TOP)/stx/libbasic
+LOCALDEFINES=
+GLOBALDEFINES=
+MAIN_DEFINES=-DIGNORE_IMAGE -DNO_DISPLAY
+
+RCSSOURCES=Make.proto *.st
+LINKSOURCES=Make.proto *.st
+
+DELIVERBINARIES=
+
+APPNAME=libjv_tea_compiler_cli
+LIBNAME=libjv_tea_compiler_cli
+STCLOCALOPT='-package=$(PACKAGE)' -I. -headerDir=. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=.  -varPrefix=$(LIBNAME)
+
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C-libraries that should be pre-linked with the class-objects
+LD_OBJ_LIBS=
+LOCAL_SHARED_LIBS=
+
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C targets or libraries should be added below
+LOCAL_EXTRA_TARGETS=
+
+OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
+
+
+
+
+
+LIBLIST = $(REQUIRED_LIBS)
+
+# required libs:
+#
+
+REQUIRED_LIBS= libstx_libbasic \
+
+
+REQUIRED_LIBOBJS= $(TOP)/libbasic/libstx_libbasic$(O_EXT) \
+
+
+REQUIRED_LINK_LIBOBJS= libstx_libbasic$(O_EXT) \
+
+
+REQUIRED_SUPPORT_DIRS=RESOURCEFILES
+
+SUBPROJECT_LIBS=
+
+
+target: ALL
+
+all::   prereq ALL_NP
+
+# like ALL, but not prereqs
+ALL_NP:: exe $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) $(SETUP_RULE)
+
+exe:    teak registerApplication
+
+teak: $(APP_DIRS_TO_MAKE) $(APP_LIBOBJS) $(REQUIRED_LIBOBJS) $(OBJS)
+	$(MAKE) link_teak
+
+
+link_teak:
+	$(MAKE) NON_GUI_APPLICATION \
+		    TARGET=teak \
+		    APPLICATION_CLASSES="$(COMMON_CLASSES) $(UNIX_CLASSES)" \
+		    APPLICATION_OBJS="$(OBJS)" \
+		    APPLICATION_LIBLIST="$(REQUIRED_LIBS)" \
+		    APPLICATION_LIBOBJS="$(REQUIRED_LIBOBJS)" \
+		    APPLICATION_LINK_LIBOBJS="$(REQUIRED_LINK_LIBOBJS)" \
+		    STARTUP_CLASS="TCompilerCommand" \
+		    STARTUP_SELECTOR="start" \
+		    MAIN_DEFINES="-DIGNORE_IMAGE -DNO_DISPLAY"
+
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
+	$(MAKE) FORCE=@@@FORCE-BUILD@@@ $(REQUIRED_LIBOBJS)
+
+#
+# a self installable delivery
+#
+# backward compatible fallback
+setup::
+	@if test -d autopackage; then \
+	    makepackage; \
+	else \
+	    echo "Error: make setup not yet available in this unix"; \
+	    exit 1; \
+	fi
+
+#
+# for linux, this uses autopackage
+#
+setup_linux:
+	@if test -d autopackage; then \
+	    makepackage; \
+	else \
+	    echo "Error: missing autopackage directory"; \
+	    exit 1; \
+	fi
+
+#
+# for mac, a dmg is generated
+#
+setup_macosx:   "TeaCompiler_dmg"
+	-rm "TeaCompiler.dmg"
+	hdiutil create -fs HFSX -layout SPUD "TeaCompiler.dmg" -srcfolder "TeaCompiler_dmg" -format UDZO -volname "TeaCompiler" -quiet
+
+app: "TeaCompiler_dmg"
+
+"TeaCompiler_dmg": $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) 
+	@-rm -rf "TeaCompiler_dmg"
+	@-mkdir "TeaCompiler_dmg"
+	@-mkdir "TeaCompiler_dmg/TeaCompiler.app"
+	@-mkdir "TeaCompiler_dmg/TeaCompiler.app/Contents"
+	@-mkdir "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS"
+	cp "teak" "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/TeaCompiler"
+	@-mkdir "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/."
+	-cp -r *.so "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/."
+	-cp -r symbols.stc "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/."
+	-cp -r *.stx "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/."
+	-cp -r *.rc "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/."
+	-cp -r resources "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/."
+
+
+SOURCEFILES: teak_SOURCES \
+	stx_SOURCES
+
+
+
+
+RESOURCEFILES: teak_RESOURCES teak_BITMAPS  \
+	stx_RESOURCES stx_STYLES stx_BITMAPS
+
+
+teak_RESOURCES: 
+	mkdir -p resources/jv/tea/compiler/cli
+	-cp ../resources/*.rs ../resources/*.style resources/jv/tea/compiler/cli/..
+
+teak_BITMAPS: 
+	mkdir -p resources/jv/tea/compiler/cli/bitmaps
+	-cp *.ico *.gif *.png resources/jv/tea/compiler/cli/bitmaps
+
+
+stx_RESOURCES: \
+	libbasic_RESOURCES
+
+stx_STYLES: 
+
+stx_BITMAPS:
+
+libbasic_RESOURCES: 
+	mkdir -p resources/stx/libbasic
+	-cp $(TOP)/libbasic/resources/*.* resources/stx/libbasic
+
+
+libstx_libbasic.so: $(TOP)/libbasic/libstx_libbasic.so
+	ln -sf $(TOP)/libbasic/libstx_libbasic.so .
+
+$(TOP)/libbasic/libstx_libbasic.so: $(TOP)/libbasic/makefile $(FORCE)
+	@if [ -f "$(TOP)/libbasic/.NOSOURCE" ]; then \
+	    echo "skip make in $(TOP)/libbasic (no source)"; \
+	else \
+	    cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "; \
+	fi
+
+$(TOP)/libbasic/makefile: $(TOP)/libbasic/Make.proto
+	$(TOP)/rules/stmkmf --cd $(TOP)/libbasic
+
+
+
+
+
+
+
+
+
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+jv_tea_compiler_cli.$(O): $(shell hg root)/.hg/dirstate
+endif
+
+
+
+
+clean::
+	-rm -f *.so teak.$(O)
+
+clobber:: clean
+	-rm -f teak *.img *.sav
+
+# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)TCompilerCommand.$(O) TCompilerCommand.$(H): TCompilerCommand.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/StandaloneStartup.$(H) $(STCHDR)
+$(OUTDIR)jv_tea_compiler_cli.$(O) jv_tea_compiler_cli.$(H): jv_tea_compiler_cli.st $(INCLUDE_TOP)/stx/libbasic/ApplicationDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
+
+# ENDMAKEDEPEND --- do not remove this line
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/Make.spec	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,65 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_tea_compiler_cli.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# This file contains specifications which are common to all platforms.
+#
+
+# Do NOT CHANGE THESE DEFINITIONS
+# (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
+#  to find the source code of a class and to find the library for a package)
+MODULE=jv
+MODULE_DIR=tea/compiler/cli
+PACKAGE=$(MODULE):$(MODULE_DIR)
+
+
+# Argument(s) to the stc compiler (stc --usage).
+#  -headerDir=. : create header files locally
+#                (if removed, they will be created as common
+#  -Pxxx       : defines the package
+#  -Zxxx       : a prefix for variables within the classLib
+#  -Dxxx       : defines passed to to CC for inline C-code
+#  -Ixxx       : include path passed to CC for inline C-code
+#  +optspace   : optimized for space
+#  +optspace2  : optimized more for space
+#  +optspace3  : optimized even more for space
+#  +optinline  : generate inline code for some ST constructs
+#  +inlineNew  : additionally inline new
+#  +inlineMath : additionally inline some floatPnt math stuff
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
+# STCLOCALOPTIMIZATIONS=+optspace3
+STCLOCALOPTIMIZATIONS=+optspace3
+
+
+# Argument(s) to the stc compiler (stc --usage).
+#  -warn            : no warnings
+#  -warnNonStandard : no warnings about ST/X extensions
+#  -warnEOLComments : no warnings about EOL comment extension
+#  -warnPrivacy     : no warnings about privateClass extension
+#  -warnUnused      : no warnings about unused variables
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCWARNINGS=-warn
+# STCWARNINGS=-warnNonStandard
+# STCWARNINGS=-warnEOLComments
+STCWARNINGS=-warnNonStandard
+
+COMMON_CLASSES= \
+	TCompilerCommand \
+	jv_tea_compiler_cli \
+
+
+
+
+COMMON_OBJS= \
+    $(OUTDIR_SLASH)TCompilerCommand.$(O) \
+    $(OUTDIR_SLASH)jv_tea_compiler_cli.$(O) \
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/Makefile.init	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,27 @@
+#
+# DO NOT EDIT
+#
+# make uses this file (Makefile) only, if there is no
+# file named "makefile" (lower-case m) in the same directory.
+# My only task is to generate the real makefile and call make again.
+# Thereafter, I am no longer used and needed.
+#
+# MACOSX caveat:
+#   as filenames are not case sensitive (in a default setup),
+#   we cannot use the above trick. Therefore, this file is now named
+#   "Makefile.init", and you have to execute "make -f Makefile.init" to
+#   get the initial makefile.  This is now also done by the toplevel CONFIG
+#   script.
+
+.PHONY: run
+
+run: makefile
+	$(MAKE) -f makefile
+
+#only needed for the definition of $(TOP)
+include Make.proto
+
+makefile: mf
+
+mf:
+	$(TOP)/rules/stmkmf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/TCompilerCommand.st	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,486 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+"{ Package: 'jv:tea/compiler/cli' }"
+
+"{ NameSpace: Smalltalk }"
+
+StandaloneStartup subclass:#TCompilerCommand
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Tea-Compiler'
+!
+
+TCompilerCommand class instanceVariableNames:'debugging includes options'
+
+"
+ The following class instance variables are inherited by this class:
+
+	StandaloneStartup - MutexHandle
+	Object - 
+"
+!
+
+!TCompilerCommand class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
+!TCompilerCommand class methodsFor:'initialization'!
+
+initialize
+
+    super initialize.
+    debugging := Transcript notNil and:[Transcript isView].    
+    self setupSignalHandlers.
+
+    "Created: / 06-11-2011 / 22:07:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-09-2015 / 18:42:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'compiling'!
+
+process: files
+    "Actually compile files using `options` and `includes`."
+
+    | env ctx compiler units |
+
+    env := TEnvironment new.
+    env provider classpath addAll: includes.
+
+    ctx := TCompilerContext new.
+    ctx options: options.
+    ctx environment: env.
+
+    compiler := TCompiler new.
+    compiler context: ctx.
+
+    files isEmpty ifTrue:[ 
+        TCompilerError raiseErrorString:'no input files'.
+    ].
+    units := OrderedCollection new: files size.
+    files do:[:filename | 
+        | file |
+
+        file := filename asFilename.
+        file isRegularFile ifFalse:[ 
+            TCompilerError raiseErrorString: ('file does not exist: %1' bindWith: filename).
+        ].
+        file isReadable ifFalse:[ 
+            TCompilerError raiseErrorString: ('file not readable: %1' bindWith: filename).
+        ].
+        file readingFileDo:[ :stream |
+            units add: (TSourceReader read: stream).
+        ].
+    ].
+    files with: units do:[:infile :unit | 
+        compiler compile: unit.
+        options output isNil ifTrue:[ 
+            | outfile |
+
+            outfile := infile asFilename withSuffix: (options emitIR ifTrue:[ 'll' ] ifFalse: [ 'bc' ]).
+            self write: ctx llvmModule as: outfile.
+            ctx llvmModule: nil.
+        ].
+    ].
+    options output notNil ifTrue:[ 
+        self write: ctx llvmModule as: options output.
+    ].
+
+    "Created: / 24-09-2015 / 16:46:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 18:45:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+write: anLLVMModule as: aString
+    options emitIR ifTrue:[ 
+        aString asFilename writingFileDo:[:s|anLLVMModule dumpOn: s].  
+    ] ifFalse:[ 
+        anLLVMModule writeBitcodeToFile: aString
+    ]
+
+    "Created: / 24-09-2015 / 17:06:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'debugging'!
+
+dumpProcess: aProcess
+    Stderr cr; cr
+
+    "Created: / 27-06-2013 / 23:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+dumpProcess: aProcess on: aStream
+    | ctx |
+    aStream cr; cr.
+    aStream nextPutAll: '== ['; nextPutAll: aProcess id printString; nextPutAll:'] '; nextPutAll: aProcess name; nextPutAll: ' =='; cr.
+    aStream cr.
+    aStream nextPutAll: '  State:   '; nextPutAll: aProcess state printString; cr.
+    aStream nextPutAll: '  Group:   '; nextPutAll: aProcess processGroupId printString; cr.
+    aStream nextPutAll: '  Creator: '; nextPutAll: aProcess processGroupId printString; cr.
+    aStream nextPutAll: '  Stack:   '; cr; cr.
+
+    aProcess == Processor activeProcess ifTrue:[ctx := thisContext] ifFalse:[ctx := aProcess suspendedContext].
+    [ ctx notNil ] whileTrue:[
+        aStream nextPutAll: '  '.
+        ctx fullPrintOn: aStream.
+        aStream cr.
+        ctx := ctx sender.
+    ].
+    aStream cr.
+
+    "
+        self dumpProcess: Processor activeProcess on: Transcript.
+    "
+
+    "Created: / 28-06-2013 / 01:00:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 09:14:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+dumpProcesses
+    self dumpProcessesOn: Stderr
+
+    "
+    self dumpProcessesOn: Transcript.
+    "
+
+    "Created: / 27-06-2013 / 23:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 28-06-2013 / 01:06:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+dumpProcessesOn: aStream
+    Process allInstancesDo:[:process|
+        process isDead ifFalse:[
+            self dumpProcess: process on: aStream
+        ]
+    ]
+
+    "Created: / 27-06-2013 / 23:42:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'defaults'!
+
+allowCoverageMeasurementOption
+
+    ^false "CoverageReport will do that"
+
+    "Created: / 13-01-2012 / 11:48:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+allowDebugOption
+
+    ^true
+
+    "Created: / 21-07-2011 / 09:48:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'multiple applications support'!
+
+applicationRegistryPath
+    "the key under which this application stores its process ID in the registry
+     as a collection of path-components.
+     i.e. if #('foo' 'bar' 'baz') is returned here, the current applications ID will be stored
+     in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID.
+     (would also be used as a relative path for a temporary lock file under unix).
+     Used to detect if another instance of this application is already running."
+
+    ^ #('jv' 'tea' 'compiler')
+
+    "Modified: / 01-09-2015 / 18:33:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+applicationUUID
+    "answer an application-specific unique uuid.
+     This is used as the name of some exclusive OS-resource, which is used to find out,
+     if another instance of this application is already running.
+     Under win32, a mutex is used; under unix, an exclusive file in the tempDir could be used."
+
+    ^ '8a084bc0-50cf-11e5-bf6b-606720e43e2c' asUUID
+
+    "Modified: / 01-09-2015 / 18:33:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'options'!
+
+cmdlineOptionEmitLLVMIR
+    ^CmdLineOption new
+        long: 'emit-llvm-ir';
+        description: 'Emit LLVM IR (.ll) instead of bitcode (.bc)';
+        action:[options emitIR: true];
+        yourself
+
+    "Created: / 24-09-2015 / 16:35:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 18:46:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+cmdlineOptionOutput
+    ^CmdLineOption new
+        short: $o;
+        long: 'output';
+        description: 'Place output in specified file';
+        action:[:file | options output: file];
+        yourself
+
+    "Created: / 24-09-2015 / 16:32:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'startup'!
+
+handleSIGTERM
+    self dumpProcesses.
+    debugging ifFalse:[
+        Smalltalk exit:127.
+    ].
+
+    "Created: / 27-06-2013 / 23:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-06-2013 / 01:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+handleSIGUSR2
+    self dumpProcesses
+
+    "Created: / 27-06-2013 / 23:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+setupSignalHandlers
+    "On UNIX, this sets up a custom signal handler on SIGUSR2 and SIGTERM that
+     dumps stacks on all threads"
+
+    | sigusr2 sigterm |
+
+    OperatingSystem isUNIXlike ifTrue:[
+        sigterm := Signal new.
+        sigterm handlerBlock: [:ex | self handleSIGTERM].
+        OperatingSystem operatingSystemSignal:OperatingSystem sigTERM install: sigterm.
+        OperatingSystem enableSignal: OperatingSystem sigTERM.
+
+        sigusr2 := Signal new.
+        sigusr2 handlerBlock: [:ex | self handleSIGUSR2].
+        OperatingSystem operatingSystemSignal:OperatingSystem sigUSR2 install: sigusr2.
+        OperatingSystem enableSignal: OperatingSystem sigUSR2.
+    ].
+
+    "
+    OperatingSystem sendSignal: OperatingSystem sigUSR2 to: OperatingSystem getProcessId
+    "
+
+    "Created: / 27-06-2013 / 20:57:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-06-2013 / 01:11:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 01-09-2015 / 18:34:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+setupToolsForDebug
+
+    super setupToolsForDebug.
+    debugging := true.
+
+    "Created: / 06-11-2011 / 22:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+start
+    Smalltalk silentLoading: true.
+    ^ super start.
+
+    "Created: / 22-01-2014 / 09:17:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+usage
+
+    Stderr nextPutAll:'usage: tc';
+           nextPutAll: '[options] [FILE1 [FILE2 [...]]]'; cr.
+
+    Stderr nextPutLine:'Common options:'; cr.
+
+    Stderr nextPutLine:'  --help .................. output this message'.
+"/    Stderr nextPutLine:'  --verbose ............... verbose startup'.
+"/    Stderr nextPutLine:'  --noBanner .............. no splash screen'.
+"/    Stderr nextPutLine:'  --newAppInstance ........ start as its own application process (do not reuse'.
+"/    Stderr nextPutLine:'                            a running instance)'.
+"/    self allowScriptingOption ifTrue:[
+"/        Stderr nextPutLine:'  --scripting portNr ...enable scripting via port (or stdin/stdOut if 0)'.
+"/    ].
+    self allowDebugOption ifTrue:[
+        Stderr nextPutLine:'  --debug ................. enable Debugger'.
+    ].
+    "/                 '  ......................... '
+    Stderr nextPutLine:'  -I<dir> ................. adds <dir> to the list of directories searched for'.
+    Stderr nextPutLine:'                            sources'.
+    Stderr nextPutLine:'  -o'.
+    Stderr nextPutLine:'  --output <file>  ........ place output to file <file>'.
+    Stderr nextPutLine:'  --emit-llvm-ir .......... emit LLVM IR (.ll) instead of LLVM bitcode (.bc, default)'.
+    debugging ifFalse:[
+        Smalltalk exit:1.
+    ].
+    "
+    self usage
+    "
+
+    "Created: / 13-01-2012 / 11:48:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-09-2015 / 16:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+usageForReportClass: class
+    | options |
+
+    "/ '.........................' size  25
+    options := CmdLineOption optionsFor: class new.
+    options := options reject:[:option | 'pF' includes: option short  ].
+    options notEmptyOrNil ifTrue:[
+        Stderr cr.
+        Stderr nextPutAll: class name; nextPutLine:' options:'; cr.
+        options do:[:option |                
+            | optlen |  
+
+            option short notNil ifTrue:[ 
+                Stderr nextPutAll: '  '.
+                Stderr nextPut: $-; nextPut: option short; space.
+                optlen := 2.
+                option hasParam ifTrue:[ 
+                    | paramName |
+
+                    paramName := 'val'.
+                    Stderr nextPut:$<; nextPutAll: paramName; nextPut:$>; space.
+                    optlen := optlen + 3 + paramName size.
+                ].
+            ].
+            option long notNil ifTrue:[ 
+                 option short notNil ifTrue:[ 
+                    Stderr cr.
+                ].
+                Stderr nextPutAll: '  --'.
+                Stderr nextPutAll: option long.
+                optlen := option long size + 2.
+                option hasParam ifTrue:[ 
+                    | paramName |
+
+                    paramName := 'val'.
+                    Stderr nextPut:$=; nextPut:$<; nextPutAll: paramName; nextPut:$>.
+                    optlen := optlen + 3 + paramName size.
+                ].
+                Stderr space.
+            ].
+            Stderr next: (26 - 1"space" -2"--" - optlen) put: $..    
+            Stderr space.
+            option description notNil ifTrue:[
+                Stderr nextPutAll: option description
+            ].
+            Stderr cr.
+        ]
+    ]
+
+    "
+    ReportRunner usageForReportClass: TestReport.
+    "
+
+    "Created: / 27-05-2014 / 16:42:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 16-06-2014 / 11:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!TCompilerCommand class methodsFor:'startup-to be redefined'!
+
+main:argv0
+    "Process command line arguments"
+
+    | argv parser i files |
+
+
+    argv := argv0 asOrderedCollection.
+    argv isEmpty ifTrue:[ 
+        self usage.
+    ].
+    argv remove: '--abortOnSEGV' ifAbsent:[nil].
+    parser := CmdLineParser new.
+    CmdLineOptionError autoload.
+    includes := OrderedCollection new.
+    options := TCompilerOptions new.
+    [
+        "/ Parse -I as they cannot be handled by option parser, sigh
+        i := 1.
+        [ i <= argv size ] whileTrue:[ 
+            | option |
+
+            option := argv at: i.
+            (option = '-I') ifTrue:[ 
+                i = argv size ifTrue:[ 
+                    Stderr nextPutAll:'Error: -I must be followed by path'.
+                ] ifFalse:[ 
+                    includes add: (argv at: i + 1)
+                ].
+                argv removeAtIndex: i + 1. 
+                argv removeAtIndex: i.
+            ] ifFalse:[ 
+                (option startsWith: '-I') ifTrue:[ 
+                    | include |
+
+                    include := option copyFrom: 3.
+                    include isEmptyOrNil ifTrue:[ 
+                        Stderr nextPutAll:'Error: -I must be followed by path'.
+                    ] ifFalse:[ 
+                        includes add: include.
+                    ].  
+                    argv removeAtIndex: i.
+                ] ifFalse:[ 
+                    i := i + 1.
+                ].
+            ]
+        ].
+        files := parser parse: argv for: self.
+    ] on:CmdLineOptionError do:[:ex|
+        Stderr nextPutLine:'Error when processing options: ', ex description.
+        debugging ifFalse:[
+            ex suspendedContext fullPrintAllOn: Stderr.
+            Stderr nextPutLine:'Exiting'.
+            Smalltalk exit:1.
+        ] ifTrue:[
+            ex pass
+        ]
+    ].
+
+    debugging ifFalse:[ 
+        NoHandlerError emergencyHandler:(NoHandlerError abortingEmergencyHandler)
+    ].
+
+    [
+        self process: files.
+        debugging ifFalse:[
+            Smalltalk exit:0.
+        ].
+    ] on: Error do:[:ex|
+        Stderr nextPutAll:'Error when compiling: '.
+        Stderr nextPutAll:ex description; cr.
+        ex suspendedContext printAllOn:Stderr.
+        debugging ifFalse:[
+            Smalltalk exit:1.
+        ] ifTrue:[
+            ex pass
+        ]
+    ]
+
+    "Modified: / 24-09-2015 / 16:40:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+
+TCompilerCommand initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/abbrev.stc	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,5 @@
+# automagically generated by the project definition
+# this file is needed for stc to be able to compile modules independently.
+# it provides information about a classes filename, category and especially namespace.
+TCompilerCommand TCompilerCommand jv:tea/compiler/cli 'Languages-Tea-Compiler' 4
+jv_tea_compiler_cli jv_tea_compiler_cli jv:tea/compiler/cli '* Projects & Packages *' 3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/autopackage/default.apspec	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,90 @@
+# -*- shell-script -*-
+[Meta]
+ShortName: teak
+SoftwareVersion: 6.2.5.0
+DisplayName: Tea Language Compiler
+RootName: @exept.de/expecco:$SOFTWAREVERSION
+Summary: Tea Language Compiler
+Maintainer: Jan Vrany
+Packager: Jan Vrany
+PackageVersion: 1
+CPUArchitectures: x86
+AutopackageTarget: 1.0
+Type: Application
+License: Commercial
+
+[Description]
+Tea Language Compiler
+
+[BuildPrepare]
+# If you're using autotools, the default should be enough.
+# prepareBuild will set up apbuild and run configure for you. If you
+# need to pass arguments to configure, just add them to prepareBuild:
+# prepareBuild --enable-foo --disable-bar
+#prepareBuild
+
+[BuildUnprepare]
+# If you're using prepareBuild above, there is no need to change this!
+#unprepareBuild
+
+[Globals]
+# Variables declared in this section will be available in all other sections
+export APKG_BUILD_SKIP_CONFIGURE=1
+export APKG_BUILD_SKIP_MAKE=1
+export MYPREFIX=/opt/teak
+
+[Prepare]
+#recommend '@autopackage.org/autopackage-gtk' 1
+
+[Imports]
+import <<EOF
+$source_dir/teak
+$source_dir/resources
+$source_dir/keyboard.rc
+$source_dir/keyboardMacros.rc
+$source_dir/display.rc
+$source_dir/host.rc
+$source_dir/../doc
+$source_dir/../testsuites/webedition
+$source_dir/../projects/libraries
+$source_dir/../reportGenerator/tools
+$source_dir/../../pdf/afm
+$source_dir/../plugin/selenium/libexept_expecco_plugin_selenium.so
+$source_dir/../externalTools
+EOF
+
+for i in $source_dir/*.so
+do
+    echo $source_dir/$(readlink $i)
+done | import
+
+[Install]
+if [ "$PREFIX" != "/usr" ]
+then
+    export MYPREFIX=$PREFIX
+fi
+
+find . -type d \( -name CVS -or -name 'not_*' \) -print | xargs rm -rf
+mkdir -p $MYPREFIX
+copyFiles expecco *.rc resources        $MYPREFIX/bin
+copyFiles *.so                          $MYPREFIX/lib
+copyFiles doc externalTools             $MYPREFIX/packages/exept/expecco
+copyFiles webedition/projects libraries $MYPREFIX/testsuites
+copyFiles tools                         $MYPREFIX/packages/exept/expecco/reportGenerator
+copyFiles afm                           $MYPREFIX/packages/exept/pdf
+copyFiles libexept_expecco_plugin_selenium.so   $MYPREFIX/plugin
+
+#installExe expecco
+#installLib *.so
+#installData resources
+#installData keyboard.rc
+#installData keyboardMacros.rc
+#installData host.rc
+#installData display.rc
+#installData doc
+
+[Uninstall]
+# Leaving this at the default is safe unless you use custom commands in
+# "Install" to create files. All autopackage API functions
+# that installs files are logged.
+uninstallFromLog
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/bc.mak	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,408 @@
+# $Header$
+#
+# DO NOT EDIT 
+# automagically generated from the projectDefinition: jv_tea_compiler_cli.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# Historic Note:
+#  this used to contain only rules to make with borland 
+#    (called via bmake, by "make.exe -f bc.mak")
+#  this has changed; it is now also possible to build using microsoft visual c
+#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
+#
+
+TOP=..\..\..\..\stx       
+INCLUDE_TOP=$(TOP)\..
+
+# An old file, used as a dummy target for FORCE if we do not want
+#   re-make libraries. Windows make does not work if we redefine FORCE=   (empty string)
+# OLD_FILE=bmake.bat
+OLD_FILE="c:\windows\win.ini"
+
+#dummy target to force a build
+!ifndef FORCE
+FORCE=$(OLD_FILE)
+!endif
+
+CFLAGS_LOCAL=$(CFLAGS_APPTYPE) \
+ -DSTARTUP_CLASS="\"TCompilerCommand\"" \
+ -DSTARTUP_SELECTOR="\"start\"" \
+ -DUSE_MODULE_TABLE
+
+#
+
+!INCLUDE $(TOP)\rules\stdHeader_bc
+!INCLUDE Make.spec
+
+OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
+
+
+
+#
+APPNAME=libjv_tea_compiler_cli
+LIBNAME=dummy
+MODULE_PATH=tea\compiler\cli
+STCOPT="+optinline"
+LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\tea\compiler -I$(INCLUDE_TOP)\stx\libbasic
+LOCALDEFINES=
+GLOBALDEFINES=
+
+STCLOCALOPT='-package=$(PACKAGE)' $(LOCALDEFINES) $(LOCALINCLUDES)  $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) $(COMMONSYMFLAG) -varPrefix=$(LIBNAME)
+
+LFLAGS=$(APP_LFLAGS)
+
+PROJECT_NOCONSOLE= teak.exe
+PROJECT_CONSOLE= teak.com
+ALLOBJFILES= main.$(O)
+!ifdef USETCC
+RESFILES=
+!else
+RESFILES= cliWinRC.$(RES)
+!endif
+
+ALLOBJ= $(ALLOBJFILES) $(OBJS)
+DEFFILE=$(TOP)\rules\bc_exe.def
+
+LIBFILES=$(LIBDIR_LIBRUN)\librun.lib
+ALLLIB=$(LIBFILES) $(APP_IMPORTLIBS) $(APP_RT_LIB)
+
+REQUIRED_LIBS=librun.dll  \
+ libstx_libbasic.dll \
+
+
+REQUIRED_FILES=$(RT_DLL) $(X11_DLL) $(XEXT_DLL) symbols.stc $(REQUIRED_LIBS)
+
+REQUIRED_SUPPORT_DIRS=RESOURCEFILES
+
+target: ALL postBuildCleanup 
+
+# the executable, all required files and a self-installing-installer-exe
+ALL:: prereq ALL_NP
+
+# all, but no prereqs
+ALL_NP:: exe $(REQUIRED_SUPPORT_DIRS) postBuildCleanup setup
+
+exe:  newBuildDate $(REQUIRED_LIBS) noConsoleApp consoleApp registerApplication
+
+# the executable only
+# with console
+consoleApp: $(REQUIRED_LIBS)
+	-del main.$(O)
+	$(MAKE) -N -f bc.mak $(USE_ARG) \
+		MAKE_BAT=$(MAKE_BAT) \
+		PROJECT=$(PROJECT_CONSOLE) \
+		CFLAGS_APPTYPE=" -DWIN32GUI $(CFLAGS_CONSOLE)" \
+		LFLAGS_APPTYPE=" $(LFLAGS_CONSOLE)" \
+		CRT_STARTUP=" $(CRT_STARTUP_CONSOLE)" theExe
+
+# without console
+noConsoleApp: $(REQUIRED_LIBS)
+	-del main.$(O)
+	$(MAKE) -N -f bc.mak $(USE_ARG) \
+		MAKE_BAT=$(MAKE_BAT) \
+		PROJECT=$(PROJECT_NOCONSOLE) \
+		CFLAGS_APPTYPE=" -DWIN32GUI $(CFLAGS_NOCONSOLE) -DWIN_LOGFILE="\\"\"teak.log\\"\""" \
+		LFLAGS_APPTYPE=" $(LFLAGS_NOCONSOLE)" \
+		CRT_STARTUP=" $(CRT_STARTUP_NOCONSOLE)" theExe
+
+# the executable only (internal target; needs some defines)
+theExe: $(OUTDIR) $(OBJS) $(REQUIRED_FILES) show $(PROJECT) 
+
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
+	$(MAKE) -N -f bc.mak $(USE_ARG) FORCE=FORCE_BUILD $(REQUIRED_LIBS)
+
+FORCE_BUILD:
+	@rem Dummy target to force a build
+
+# a nullsoft installable delivery
+# This uses the Nullsoft Installer Package and works in Windows only
+setup: $(PROJECT) postBuildCleanup cli.nsi
+	$(MAKENSIS) cli.nsi
+        
+
+newBuildDate:
+	del buildDate.h
+
+new:
+	$(MAKE_BAT) clean
+	$(MAKE_BAT)
+
+RESOURCEFILES: teak_RESOURCES teak_BITMAPS  \
+	stx_RESOURCES stx_STYLES stx_BITMAPS
+
+
+teak_RESOURCES: resources\jv\tea\compiler\cli\NUL
+	-copy ..\resources\*.rs resources\jv\tea\compiler\cli\..
+	-copy ..\resources\*.style resources\jv\tea\compiler\cli\..
+
+teak_BITMAPS: resources\jv\tea\compiler\cli\bitmaps\NUL
+	-copy *.ico resources\jv\tea\compiler\cli\bitmaps
+	-copy *.gif resources\jv\tea\compiler\cli\bitmaps
+
+resources\jv\tea\compiler\cli\bitmaps\NUL: resources\jv\tea\compiler\cli\NUL
+	mkdir resources\jv\tea\compiler\cli\bitmaps
+
+resources\jv\tea\compiler\cli\NUL: resources\jv\tea\compiler\NUL
+	mkdir resources\jv\tea\compiler\cli
+
+resources\jv\tea\compiler\NUL: resources\jv\tea\NUL
+	mkdir resources\jv\tea\compiler
+
+resources\jv\tea\NUL: resources\jv\NUL
+	mkdir resources\jv\tea
+resources\jv\NUL: resources\NUL
+	mkdir resources\jv
+
+
+
+stx_RESOURCES: \
+	keyboard.rc \
+	keyboardMacros.rc \
+	host.rc \
+	h_win32.rc \
+	display.rc \
+	d_win32.rc \
+	libbasic_RESOURCES \
+	libview_RESOURCES \
+	libtool_RESOURCES  \
+	libtool2_RESOURCES
+
+keyboard.rc: $(TOP)\projects\smalltalk\keyboard.rc
+	copy $(TOP)\projects\smalltalk\keyboard.rc *.*
+
+keyboardMacros.rc: $(TOP)\projects\smalltalk\keyboardMacros.rc
+	copy $(TOP)\projects\smalltalk\keyboardMacros.rc *.*
+
+host.rc: $(TOP)\projects\smalltalk\host.rc
+	copy $(TOP)\projects\smalltalk\host.rc *.*
+
+h_win32.rc: $(TOP)\projects\smalltalk\h_win32.rc
+	copy $(TOP)\projects\smalltalk\h_win32.rc *.*
+
+display.rc: $(TOP)\projects\smalltalk\display.rc
+	copy $(TOP)\projects\smalltalk\display.rc *.*
+
+d_win32.rc: $(TOP)\projects\smalltalk\d_win32.rc
+	copy $(TOP)\projects\smalltalk\d_win32.rc *.*
+
+stx_STYLES: resources\stx\libview\NUL resources\stx\libview\styles\NUL
+	-copy $(TOP)\libview\styles\*.style resources\stx\libview\styles\*.*
+	-copy $(TOP)\libview\styles\*.common resources\stx\libview\styles\*.*
+
+stx_BITMAPS: \
+	libwidg_BITMAPS
+
+libwidg_BITMAPS: resources\stx\libwidg\bitmaps\NUL
+	-copy $(TOP)\libwidg\bitmaps\*.xpm resources\stx\libwidg\bitmaps\*.*
+
+libbasic_RESOURCES: resources\stx\libbasic\NUL
+	copy $(TOP)\libbasic\resources\*.rs resources\stx\libbasic\*.*
+
+libtool_RESOURCES: resources\stx\libtool\NUL
+	-copy $(TOP)\libtool\resources\*.rs resources\stx\libtool\*.*
+
+libtool2_RESOURCES: resources\stx\libtool2\NUL
+	-copy $(TOP)\libtool2\resources\*.rs resources\stx\libtool2\*.*
+
+libview_RESOURCES: resources\stx\libview\NUL 
+	-copy $(TOP)\libview\resources\*.rs resources\stx\libview\*.*
+
+libview2_RESOURCES: resources\stx\libview2\NUL
+	-copy $(TOP)\libview2\resources\*.rs resources\stx\libview2\*.*
+
+resources\stx\libbasic\NUL: resources\stx\NUL
+	mkdir resources\stx\libbasic
+
+resources\stx\libtool\NUL: resources\stx\NUL
+	mkdir resources\stx\libtool
+
+resources\stx\libtool2\NUL: resources\stx\NUL
+	mkdir resources\stx\libtool2
+
+resources\stx\libview\NUL: resources\stx\NUL
+	mkdir resources\stx\libview
+
+resources\stx\libview\styles\NUL: resources\stx\libview\NUL
+	mkdir resources\stx\libview\styles
+
+resources\stx\libview2\NUL: resources\stx\NUL
+	mkdir resources\stx\libview2
+
+resources\stx\libwidg\bitmaps\NUL: resources\stx\libwidg\NUL
+	mkdir resources\stx\libwidg\bitmaps
+
+resources\stx\libwidg\NUL: resources\stx\NUL
+	mkdir resources\stx\libwidg
+
+resources\stx\NUL: resources\NUL
+	mkdir resources\stx
+
+resources\NUL:
+	mkdir resources
+
+bitmaps\NUL:
+	mkdir bitmaps
+
+doc\NUL:
+	mkdir doc
+
+
+
+
+
+
+libstx_libbasic.dll: ..\..\..\..\stx\libbasic\$(OBJDIR)\libstx_libbasic.dll
+	copy ..\..\..\..\stx\libbasic\$(OBJDIR)\libstx_libbasic.dll *.*
+
+..\..\..\..\stx\libbasic\$(OBJDIR)\libstx_libbasic.dll: $(FORCE)
+	pushd ..\..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+
+      
+
+
+sources\NUL: 
+	mkdir sources
+
+show:
+	@echo LFLAGS= $(LFLAGS)
+	@echo ALLOBJ= $(ALLOBJ)
+	@echo PROJECT= $(PROJECT)
+	@echo APP_IMPORTLIBS= $(APP_IMPORTLIBS)
+	@echo ALLLIB= $(ALLLIB)
+	@echo DEFFILE= $(DEFFILE)
+	@echo ALLRES= $(ALLRES)
+
+!ifdef USEBC
+
+$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ), $(PROJECT_CONSOLE),, $(ALLLIB), $(DEFFILE), $(RESFILES)
+
+$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ), $(PROJECT_NOCONSOLE),, $(ALLLIB), $(DEFFILE), $(RESFILES)
+
+!else
+! ifdef USEVC
+
+$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) /OUT:"$(PROJECT_CONSOLE)" \
+	    /MANIFEST /MANIFESTFILE:"$(PROJECT_CONSOLE).manifest" \
+	    /PDB:"$(PROJECT_CONSOLE).pdb" \
+	    /SUBSYSTEM:CONSOLE $(ALLLIB) $(RESFILES)
+
+$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) /OUT:"$(PROJECT_NOCONSOLE)" \
+	    /MANIFEST /MANIFESTFILE:"$(PROJECT_NOCONSOLE).manifest" \
+	    /PDB:"$(PROJECT_NOCONSOLE).pdb" \
+	    /SUBSYSTEM:WINDOWS $(ALLLIB) $(RESFILES)
+
+! else
+!  ifdef USELCC
+
+$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) -subsystem console $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) -o "$(PROJECT_CONSOLE)" $(ALLLIB) $(RESFILES)
+
+$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) -subsystem windows $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) -o "$(PROJECT_NOCONSOLE)" $(ALLLIB) $(RESFILES)
+
+!  else
+!   ifdef USETCC
+
+$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) -o "$(PROJECT_CONSOLE)" $(ALLLIB) $(RESFILES)
+
+$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES)
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) -o "$(PROJECT_NOCONSOLE)" $(ALLLIB) $(RESFILES)
+
+!   else
+!    if defined(USEMINGW32) || defined(USEMINGW64)
+
+$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES) show
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) -o "$(PROJECT_CONSOLE)" $(ALLLIB) $(RESFILES)
+
+$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE) $(LIBFILES) show
+	$(APP_LINKER) $(LFLAGS) $(LFLAGS_APPTYPE) $(CRT_STARTUP) $(ALLOBJ) -o "$(PROJECT_NOCONSOLE)" $(ALLLIB) $(APP_IMPORTLIBS) $(RESFILES)
+
+!    else
+error error error
+!    endif
+!   endif
+!  endif
+! endif
+!endif
+
+!INCLUDE $(TOP)\rules\stdRules_bc
+
+#
+# additional rules
+#
+teakWin.$(RES): teakWin.rc teak.ico
+
+main.$(O): buildDate.h main.c bc.mak
+
+main.c: $(TOP)\librun\main.c
+	copy $(TOP)\librun\main.c main.c
+
+# now in stdRules.
+#buildDate.h: $(GENDATE_UTILITIY)
+#        $(GENDATE_UTILITIY)
+
+librun.dll: $(TOP)\librun\$(OBJDIR_LIBRUN)\librun.dll
+	copy $(TOP)\librun\$(OBJDIR_LIBRUN)\librun.dll librun.dll
+
+#cs3245.dll
+$(RT_DLL): $(TOP)\support\win32\borland\$(RT_DLL)
+	copy $(TOP)\support\win32\borland\$(RT_DLL) $(RT_DLL)
+
+X11.dll: $(TOP)\support\win32\X11.dll
+	copy $(TOP)\support\win32\X11.dll X11.dll
+
+Xext.dll: $(TOP)\support\win32\Xext.dll
+	copy $(TOP)\support\win32\Xext.dll Xext.dll
+
+symbols.stc: $(TOP)\include\symbols.stc
+	copy $(TOP)\include\symbols.stc symbols.stc
+
+
+
+
+
+clean::
+	-del genDate.exe genDate.com
+	-del c0x32.dll
+	-del c0x32.lib
+	-del buildDate.h
+	-del $(PROJECT)
+	-del install_teak.exe
+	-del stx.lib
+	-del stx.dll
+	-del $(RT_DLL)
+	-del $(REQUIRED_FILES)
+	-del main.c
+	-del *.log
+	-del *.$(RES)
+	-rmdir /S /Q resources
+	-rmdir /S /Q $(OBJDIR)
+
+clobber:: clean
+	-del *.dll *.exe *.com
+
+postBuildCleanup::
+	@rem  stupid win-make does not allow empty
+
+# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)TCompilerCommand.$(O) TCompilerCommand.$(H): TCompilerCommand.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\StandaloneStartup.$(H) $(STCHDR)
+$(OUTDIR)jv_tea_compiler_cli.$(O) jv_tea_compiler_cli.$(H): jv_tea_compiler_cli.st $(INCLUDE_TOP)\stx\libbasic\ApplicationDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
+
+# ENDMAKEDEPEND --- do not remove this line
+
+# **Must be at end**
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+!IFDEF HGROOT
+$(OUTDIR)jv_tea_compiler_cli.$(O): $(HGROOT)\.hg\dirstate
+!ENDIF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/bmake.bat	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,13 @@
+@REM -------
+@REM make using Borland bcc32
+@REM type bmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
+make.exe -N -f bc.mak  %DEFINES% %*
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/builder/baseline.rbspec	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,26 @@
+
+# generated from project definition
+
+# load package dependencies
+load 'package.deps.rake'
+
+# kludge: clear some invalid dependencies of libwidg
+# (should be fixed in baseline)
+clear "stx:libwidg" => "stx:libui"
+clear "stx:libwidg2" => "stx:libui"
+
+project :'teak:baseline' do
+  # preamble
+  
+  # --------
+
+  package "stx:libbasic"
+
+
+  application "jv:tea/compiler/cli"
+
+  # postamble
+  
+  # ---------
+
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/builder/package.deps.rake	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,135 @@
+
+# Package dependencies.
+# Automatically generated by project defintion.
+
+task "stx:libview2" => "stx:libbasic"
+task "stx:libview2" => "stx:libbasic2"
+task "stx:libview2" => "stx:libview"
+task "stx:libview2" => "stx:libui"
+
+task "stx:goodies/refactoryBrowser/helpers" => "stx:libbasic"
+task "stx:goodies/refactoryBrowser/helpers" => "stx:libcomp"
+task "stx:goodies/refactoryBrowser/helpers" => "stx:libcompat"
+
+task "stx:goodies/sunit" => "stx:libbasic"
+task "stx:goodies/sunit" => "stx:libview2"
+task "stx:goodies/sunit" => "stx:libbasic2"
+task "stx:goodies/sunit" => "stx:libview"
+
+task "stx:goodies/refactoryBrowser/browser" => "stx:goodies/refactoryBrowser/helpers"
+task "stx:goodies/refactoryBrowser/browser" => "stx:libbasic"
+task "stx:goodies/refactoryBrowser/browser" => "stx:libview2"
+task "stx:goodies/refactoryBrowser/browser" => "stx:goodies/refactoryBrowser/parser"
+task "stx:goodies/refactoryBrowser/browser" => "stx:libcompat"
+task "stx:goodies/refactoryBrowser/browser" => "stx:libview"
+task "stx:goodies/refactoryBrowser/browser" => "stx:libwidg"
+
+task "jv:tea/compiler" => "jv:llvm_s"
+task "jv:tea/compiler" => "stx:goodies/refactoryBrowser/parser"
+task "jv:tea/compiler" => "stx:goodies/ring"
+task "jv:tea/compiler" => "stx:goodies/sunit"
+task "jv:tea/compiler" => "stx:libbasic"
+task "jv:tea/compiler" => "stx:libbasic3"
+
+task "stx:libtool" => "stx:goodies/refactoryBrowser/parser"
+task "stx:libtool" => "stx:libbasic"
+task "stx:libtool" => "stx:libbasic2"
+task "stx:libtool" => "stx:libbasic3"
+task "stx:libtool" => "stx:libcomp"
+task "stx:libtool" => "stx:libui"
+task "stx:libtool" => "stx:libview"
+task "stx:libtool" => "stx:libview2"
+task "stx:libtool" => "stx:libwidg"
+task "stx:libtool" => "stx:libwidg2"
+task "stx:libtool" => "stx:libwidg3"
+
+task "stx:libboss" => "stx:libbasic"
+task "stx:libboss" => "stx:libbasic2"
+task "stx:libboss" => "stx:libview"
+
+task "stx:libcomp" => "stx:libbasic"
+
+task "stx:libcompat" => "stx:libbasic"
+task "stx:libcompat" => "stx:libbasic2"
+task "stx:libcompat" => "stx:libbasic3"
+task "stx:libcompat" => "stx:libview"
+task "stx:libcompat" => "stx:libview2"
+task "stx:libcompat" => "stx:libwidg"
+task "stx:libcompat" => "stx:libwidg2"
+
+task "stx:libui" => "stx:libbasic"
+task "stx:libui" => "stx:libview"
+
+
+task "stx:goodies/refactoryBrowser/parser" => "stx:libbasic"
+task "stx:goodies/refactoryBrowser/parser" => "stx:libbasic2"
+
+task "stx:libbasic3" => "stx:libbasic"
+task "stx:libbasic3" => "stx:libbasic2"
+task "stx:libbasic3" => "stx:libjavascript"
+
+task "stx:libhtml" => "stx:libbasic"
+task "stx:libhtml" => "stx:libview"
+task "stx:libhtml" => "stx:libwidg"
+
+task "stx:libwidg2" => "stx:libbasic"
+task "stx:libwidg2" => "stx:libbasic2"
+task "stx:libwidg2" => "stx:libview"
+task "stx:libwidg2" => "stx:libview2"
+task "stx:libwidg2" => "stx:libwidg"
+task "stx:libwidg2" => "stx:goodies/refactoryBrowser/browser"
+task "stx:libwidg2" => "stx:libboss"
+task "stx:libwidg2" => "stx:libjava"
+task "stx:libwidg2" => "stx:libjavascript"
+task "stx:libwidg2" => "stx:libui"
+
+task "stx:libbasic2" => "stx:libbasic"
+
+task "jv:llvm_s" => "stx:goodies/sunit"
+task "jv:llvm_s" => "stx:libbasic"
+
+task "stx:libwidg3" => "stx:libbasic"
+task "stx:libwidg3" => "stx:libui"
+task "stx:libwidg3" => "stx:libview"
+task "stx:libwidg3" => "stx:libview2"
+task "stx:libwidg3" => "stx:libwidg"
+task "stx:libwidg3" => "stx:libwidg2"
+task "stx:libwidg3" => "stx:libbasic2"
+
+task "stx:goodies/ring" => "stx:libbasic"
+task "stx:goodies/ring" => "stx:libcompat"
+
+task "stx:libwidg" => "stx:libbasic"
+task "stx:libwidg" => "stx:libview"
+task "stx:libwidg" => "stx:libview2"
+task "stx:libwidg" => "stx:libbasic2"
+task "stx:libwidg" => "stx:libbasic3"
+task "stx:libwidg" => "stx:libui"
+
+
+task "stx:libjava" => "stx:libbasic"
+task "stx:libjava" => "stx:libbasic2"
+task "stx:libjava" => "stx:libbasic3"
+task "stx:libjava" => "stx:libview"
+task "stx:libjava" => "stx:libcomp"
+task "stx:libjava" => "stx:libhtml"
+task "stx:libjava" => "stx:libtool"
+task "stx:libjava" => "stx:libview2"
+task "stx:libjava" => "stx:libwidg"
+task "stx:libjava" => "stx:libwidg2"
+
+task "stx:libjavascript" => "stx:libbasic"
+task "stx:libjavascript" => "stx:libbasic3"
+task "stx:libjavascript" => "stx:libcomp"
+task "stx:libjavascript" => "stx:libtool"
+task "stx:libjavascript" => "stx:goodies/refactoryBrowser/parser"
+task "stx:libjavascript" => "stx:goodies/webServer"
+task "stx:libjavascript" => "stx:libview2"
+
+task "stx:libview" => "stx:libbasic"
+
+task "jv:tea/compiler/cli" => "stx:libbasic"
+task "jv:tea/compiler/cli" => "jv:tea/compiler"
+task "jv:tea/compiler/cli" => "stx:libcomp"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/cli.nsi	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,206 @@
+; $Header$
+; Script generated by ProjectDefinition.
+
+!define PRODUCT_NAME "TeaCompiler"
+!define PRODUCT_FILENAME "TeaCompiler"
+!define PRODUCT_VERSION "6.2.5.0"
+!define PRODUCT_PUBLISHER "Jan Vrany"
+!define PRODUCT_WEB_SITE "http://www.yoursite.com"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_FILENAME}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+
+!define STX_ROOT "..\..\..\..\stx\.."
+
+SetCompressor /solid lzma
+
+!include "MUI2.nsh"
+!include "x64.nsh"
+
+; MUI Settings
+
+!define MUI_WELCOMEPAGE_TITLE_3LINES
+!define MUI_ABORTWARNING
+!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
+;; !define MUI_ICON "nil.ico"
+!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
+;; !define MUI_UNICON "nil.ico"
+
+; Language Selection Dialog Settings
+!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
+!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
+!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
+
+; Welcome page
+!insertmacro MUI_PAGE_WELCOME
+; License page
+; !define MUI_LICENSEPAGE_CHECKBOX
+
+
+!insertmacro MUI_PAGE_COMPONENTS
+; Directory page
+!insertmacro MUI_PAGE_DIRECTORY
+; Instfiles page
+!insertmacro MUI_PAGE_INSTFILES
+; Finish page
+!insertmacro MUI_PAGE_FINISH
+
+; Uninstaller pages
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Language files
+!insertmacro MUI_LANGUAGE "English"
+!insertmacro MUI_LANGUAGE "German"
+
+; MUI end ------
+
+
+
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
+VIProductVersion "${PRODUCT_VERSION}.0"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${PRODUCT_NAME}"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${PRODUCT_PUBLISHER}"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "6.2.32767.32767"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "${PRODUCT_NAME} Installer"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${PRODUCT_VERSION}"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "(C) 2015 Jan Vrany"
+
+
+OutFile "TeaCompilerSetup.exe"
+InstallDir "$PROGRAMFILES\cli"
+ShowInstDetails show
+ShowUnInstDetails show
+
+Function .onInit
+  !insertmacro MUI_LANGDLL_DISPLAY
+FunctionEnd
+
+InstType Full
+InstType Partial
+
+Section "Programme" Section1
+  SectionIn 1 2
+  SetOutPath "$INSTDIR\bin"
+  SetOverwrite ifnewer
+  File  "teak.com"
+  File "*.dll"
+  File "symbols.stc"
+  File "*.stx"
+  File "*.rc"
+  File /r /x CVS /x ".*" resources
+
+
+
+
+
+  WriteRegStr HKCR "Jv.TeaCompiler.1" "" "TeaCompiler File"
+  WriteRegStr HKCR "Jv.TeaCompiler.1\DefaultIcon" "" '$INSTDIR\bin\teak.exe,0'
+  WriteRegStr HKCR "Jv.TeaCompiler.1\Shell\open" "" $(appOpen)
+  WriteRegStr HKCR "Jv.TeaCompiler.1\Shell\open\command" "" '"$INSTDIR\bin\teak.exe" -- "%1"'
+SectionEnd
+
+;; Section "Online-Documentation for TeaCompiler" Section2
+;;   SectionIn 1
+;;   SetOutPath "$INSTDIR\doc"
+;;   SetOverwrite ifnewer
+;;   File /r /x CVS "${STX_ROOT}\jv\teak\doc\*"
+;; SectionEnd
+
+;; Section "TeaCompiler Libraries and Demos" Section3
+;;   SectionIn 1
+;;   SetOutPath "$INSTDIR\lib"
+;;   SetOverwrite ifnewer
+;; ;   File /r /x CVS "${STX_ROOT}\jv\teak\examples\*"
+;; SectionEnd
+;; 
+;; Section "TeaCompiler Reports and Printing" Section4
+;;   SectionIn 1
+;;   SetOutPath "$INSTDIR\reportGenerator"
+;;   SetOverwrite ifnewer
+;; ;  File /r /x CVS "..\reportGenerator\java" "..\reportGenerator\rules" "..\reportGenerator\*.xml" "..\reportGenerator\*.xslt" "..\reportGenerator\CloseApp.exe" "..\reportGenerator\expecco.jpg"
+;; SectionEnd
+
+
+
+
+
+
+
+
+Section -AdditionalIcons
+  SetOutPath "$INSTDIR\bin"
+  WriteIniStr "$INSTDIR\${PRODUCT_FILENAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
+  CreateDirectory "$SMPROGRAMS\${PRODUCT_FILENAME}"
+  CreateShortCut "$SMPROGRAMS\${PRODUCT_FILENAME}\teak.lnk" "$INSTDIR\bin\teak.exe"
+  CreateShortCut "$DESKTOP\teak.lnk" "$INSTDIR\bin\teak.exe"
+  CreateShortCut "$SMPROGRAMS\${PRODUCT_FILENAME}\Website.lnk" "$INSTDIR\${PRODUCT_FILENAME}.url"
+  CreateShortCut "$SMPROGRAMS\${PRODUCT_FILENAME}\Uninstall.lnk" "$INSTDIR\uninst.exe"
+SectionEnd
+
+Section -Post
+  WriteUninstaller "$INSTDIR\uninst.exe"
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
+SectionEnd
+
+LangString appOpen ${LANG_GERMAN}  "Mit TeaCompiler öffnen"
+LangString appOpen ${LANG_ENGLISH} "Open with TeaCompiler"
+
+LangString DESC_Section1 ${LANG_ENGLISH} "Program components of TeaCompiler"
+LangString DESC_Section1 ${LANG_GERMAN}  "Alle Programmkomponenten von TeaCompiler"
+;; LangString DESC_Section2 ${LANG_ENGLISH} "Online-Documentation of TeaCompiler"
+;; LangString DESC_Section2 ${LANG_GERMAN}  "Online-Dokumentation zu TeaCompiler"
+;; LangString DESC_Section3 ${LANG_ENGLISH} "Libraries and Demo Projects"
+;; LangString DESC_Section3 ${LANG_GERMAN}  "Bibliotheken und Beispielprojekte"
+;; LangString DESC_Section4 ${LANG_ENGLISH} "Logfile Printing and Report Generation"
+;; LangString DESC_Section4 ${LANG_GERMAN}  "Drucken und Report-Generierung aus Log-Dateien"
+;; LangString DESC_Section3 ${LANG_ENGLISH} "Sources of ST/X (Base-System)"
+;; LangString DESC_Section3 ${LANG_GERMAN}  "Quellcode von ST/X (Basis-System)"
+;; LangString DESC_Section4 ${LANG_ENGLISH} "Sources of TeaCompiler"
+;; LangString DESC_Section4 ${LANG_GERMAN}  "Quellcode von TeaCompiler"
+
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
+;;   !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
+;;  !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)
+;;  !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+
+
+Function un.onUninstSuccess
+  HideWindow
+  MessageBox MB_ICONINFORMATION|MB_OK "TeaCompiler wurde erfolgreich deinstalliert"
+FunctionEnd
+
+Function un.onInit
+!insertmacro MUI_UNGETLANGUAGE
+  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie TeaCompiler und alle seine Komponenten deinstallieren?" IDYES +2
+  Abort
+FunctionEnd
+
+Section Uninstall
+  Delete "$INSTDIR\${PRODUCT_FILENAME}.url"
+  Delete "$INSTDIR\uninst.exe"
+
+    Delete "$INSTDIR\*"
+    RMDir /r "$INSTDIR"
+
+  Delete "$SMPROGRAMS\${PRODUCT_FILENAME}\Uninstall.lnk"
+  Delete "$SMPROGRAMS\${PRODUCT_FILENAME}\Website.lnk"
+  Delete "$SMPROGRAMS\${PRODUCT_FILENAME}\teak.lnk"
+  Delete "$DESKTOP\teak.lnk"
+
+  RMDir "$SMPROGRAMS\${PRODUCT_FILENAME}"
+
+  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+  DeleteRegKey HKCR "Jv.TeaCompiler.1"
+
+
+
+  SetAutoClose true
+SectionEnd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/cliWinRC.rc	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,49 @@
+//
+// DO NOT EDIT 
+// automagically generated from the projectDefinition: jv_tea_compiler_cli.
+//
+#define IDR_MAINFRAME   128
+#define IDR_SPLASH      129
+
+#if (__BORLANDC__)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#endif
+
+#pragma code_page(1252)
+
+
+
+VS_VERSION_INFO VERSIONINFO
+  FILEVERSION     6,2,32767,32767
+  PRODUCTVERSION  6,2,5,0
+#if (__BORLANDC__)
+  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
+  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
+  FILEOS          VOS_NT_WINDOWS32
+  FILETYPE        VFT_DLL
+  FILESUBTYPE     VS_USER_DEFINED
+#else
+  FILEFLAGSMASK 0x3fL
+#endif
+
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "040904E4"
+    BEGIN
+      VALUE "CompanyName", "My Company\0"
+      VALUE "FileDescription", "Application\0"
+      VALUE "FileVersion", "6.2.32767.32767\0"
+      VALUE "InternalName", "jv:tea/compiler/cli\0"
+      VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
+      VALUE "ProductName", "ProductName\0"
+      VALUE "ProductVersion", "6.2.5.0\0"
+      VALUE "ProductDate", "Fri, 25 Sep 2015 02:28:29 GMT\0"
+    END
+  END
+
+  BLOCK "VarFileInfo"
+  BEGIN                               //  Language   |    Translation
+    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
+  END
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/jv_tea_compiler_cli.st	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,208 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+"{ Package: 'jv:tea/compiler/cli' }"
+
+"{ NameSpace: Smalltalk }"
+
+ApplicationDefinition subclass:#jv_tea_compiler_cli
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'* Projects & Packages *'
+!
+
+!jv_tea_compiler_cli class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
+
+!jv_tea_compiler_cli class methodsFor:'description'!
+
+applicationName
+    "answer the name of the application.
+     This is also the name of the generated .exe file.
+
+     Subclasses may redefine this"
+
+    ^ 'teak'       
+
+    "
+     bosch_dapasx_application applicationName     
+     stx_projects_smalltalk applicationName     
+    "
+
+    "Created: / 25-09-2015 / 03:46:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+excludedFromPreRequisites
+    "list packages which are to be explicitely excluded from the automatic constructed
+     prerequisites list. If empty, everything that is found along the inheritance of any of
+     my classes is considered to be a prerequisite package."
+
+    ^ #(
+    )
+!
+
+isGUIApplication
+    "return true, if this is a GUI application.
+     (these need more libraries and use a different startup procedure)"
+
+    ^ false
+!
+
+mandatoryPreRequisites
+    "list packages which are mandatory as a prerequisite.
+     This are packages containing superclasses of my classes and classes which
+     are extended by myself.
+     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
+     This method is generated automatically,
+     by searching along the inheritance chain of all of my classes."
+
+    ^ #(
+        #'stx:libbasic'    "ApplicationDefinition - superclass of jv_tea_compiler_cli"
+    )
+!
+
+referencedPreRequisites
+    "list packages which are a prerequisite, because they contain
+     classes which are referenced by my classes.
+     We do not need these packages as a prerequisite for compiling or loading,
+     however, a class from it may be referenced during execution and having it
+     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+     includes explicit checks for the package being present.
+     This method is generated automatically,
+     by searching all classes (and their packages) which are referenced by my classes."
+
+    ^ #(
+        #'jv:tea/compiler'    "TCompiler - referenced by TCompilerCommand class>>process:"
+    )
+!
+
+subProjects
+    "list packages which are known as subprojects.
+     This method is generated automatically; however, when generating automatically,
+     packages are only added - never removed, unless listed in #excludedFromSubProjects."
+
+    ^ #(
+)
+! !
+
+!jv_tea_compiler_cli class methodsFor:'description - contents'!
+
+classNamesAndAttributes
+    "lists the classes which are to be included in the project.
+     Each entry in the list may be: a single class-name (symbol),
+     or an array-literal consisting of class name and attributes.
+     Attributes are: #autoload or #<os> where os is one of win32, unix,..."
+
+    ^ #(
+        "<className> or (<className> attributes...) in load order"
+        TCompilerCommand
+        #'jv_tea_compiler_cli'
+    )
+!
+
+extensionMethodNames
+    "list class/selector pairs of extensions.
+     A correponding method with real names must be present in my concrete subclasses"
+
+    ^ #(
+    )
+! !
+
+!jv_tea_compiler_cli class methodsFor:'description - project information'!
+
+applicationIconFileName
+    "Return the name (without suffix) of an icon-file (the app's icon); will be included in the rc-resource file"
+
+    ^ nil
+    " ^ self applicationName "
+!
+
+companyName
+    "Returns a company string which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info"
+
+    ^ 'Jan Vrany'
+
+    "Modified: / 25-09-2015 / 03:42:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+description
+    "Returns a description string which will appear in nt.def / bc.def"
+
+    ^ 'Tea Language Compiler'
+
+    "Modified: / 25-09-2015 / 03:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+legalCopyright
+    "Returns a copyright string which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info"
+
+    ^ '(C) 2015 Jan Vrany'
+
+    "Modified: / 25-09-2015 / 03:43:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+productInstallDirBaseName
+    "Returns a default installDir which will appear in <app>.nsi.
+     This is usually not the one you want to keep"
+
+    ^ (self package asCollectionOfSubstringsSeparatedByAny:':/') last
+!
+
+productName
+    "Returns a product name which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info.
+     This method is usually redefined in a concrete application definition"
+
+    ^ 'TeaCompiler'
+
+    "Modified: / 25-09-2015 / 03:44:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!jv_tea_compiler_cli class methodsFor:'description - startup'!
+
+startupClassName
+    "the class that starts the show in its startupSelector method"
+
+    ^ 'TCompilerCommand'
+!
+
+startupSelector
+    "the message that is sent to the startupClass to start the show"
+
+    ^ #'start'        
+! !
+
+!jv_tea_compiler_cli class methodsFor:'documentation'!
+
+version_HG
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/mingwmake.bat	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,16 @@
+@REM -------
+@REM make using mingw gnu compiler
+@REM type mingwmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
+@pushd ..\..\..\..\stx\rules
+@call find_mingw.bat
+@popd
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/modules.c	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,22 @@
+/* $Header$
+ *
+ * DO NOT EDIT 
+ * automagically generated from the projectDefinition: jv_tea_compiler_cli.
+ *
+ * Warning: once you modify this file, do not rerun
+ * stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+ */
+typedef void (*vf)();
+
+extern void _TCompilerCommand_Init();
+extern void _jv_137tea_137compiler_137cli_Init();
+
+
+static vf modules[] = {
+    _TCompilerCommand_Init,
+_jv_137tea_137compiler_137cli_Init,
+
+    (vf)0
+};
+
+vf *__modules__ = modules;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/modules.stx	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,19 @@
+# $Header$
+#
+# DO NOT EDIT 
+# automagically generated from the projectDefinition: jv_tea_compiler_cli.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# This file is (currently) only used with win-95 / win-NT versions of STX.
+# It lists the dll's which are to be loaded at startup time.
+# Notice, lines starting with a "#" are comments.
+# Lines starting with a "*" are treated as comments by the VM, but are usually loaded
+# by the application at the very beginning.
+#
+# All classes loaded at startup time will be present as precompiled classes.
+# Others might be autoloaded or loaded explicit using "Smalltalk loadPackage:xxx".
+#
+libstx_libbasic
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/cli/vcmake.bat	Fri Sep 25 03:51:15 2015 +0100
@@ -0,0 +1,21 @@
+@REM -------
+@REM make using Microsoft Visual C compiler
+@REM type vcmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+
+@if not defined VSINSTALLDIR (
+    pushd ..\..\..\..\stx\rules
+    call vcsetup.bat
+    popd
+)
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
+
+make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
+
+
+
--- a/compiler/jv_tea_compiler.st	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/jv_tea_compiler.st	Fri Sep 25 03:51:15 2015 +0100
@@ -1,3 +1,16 @@
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
 "{ Package: 'jv:tea/compiler' }"
 
 "{ NameSpace: Smalltalk }"
@@ -9,6 +22,23 @@
 	category:'* Projects & Packages *'
 !
 
+!jv_tea_compiler class methodsFor:'documentation'!
+
+copyright
+"
+    Copyright (C) 2015-now Jan Vrany
+
+    This code is not an open-source (yet). You may use this code
+    for your own experiments and projects, given that:
+
+    * all modification to the code will be sent to the
+      original author for inclusion in future releases
+    * this is not used in any commercial software
+
+    This license is provisional and may (will) change in
+    a future.
+"
+! !
 
 !jv_tea_compiler class methodsFor:'description'!
 
@@ -30,10 +60,11 @@
      by searching along the inheritance chain of all of my classes."
 
     ^ #(
+        #'jv:llvm_s'    "LLVMAtomicOrdering - shared pool used by TLLVMCodeGenerator"
         #'stx:goodies/refactoryBrowser/parser'    "RBAssignmentNode - extended"
         #'stx:goodies/ring'    "RGAbstractContainer - superclass of TCompilationUnitDefinition"
         #'stx:goodies/sunit'    "TestAsserter - superclass of TCompilerExamples"
-        #'stx:libbasic'    "Autoload - superclass of TMethodDefinitionTests"
+        #'stx:libbasic'    "Error - superclass of TCompilerError"
     )
 !
 
@@ -48,7 +79,6 @@
      by searching all classes (and their packages) which are referenced by my classes."
 
     ^ #(
-        #'jv:llvm_s'    "LLVMConstant - referenced by TConstantBinding>>asLLVMValueInModule:"
         #'stx:libbasic3'    "ChangeSet - referenced by TSourceReader>>read:"
     )
 !
@@ -76,23 +106,29 @@
         TClassDefinition
         TCompilationUnitDefinition
         TCompiler
-        TCompilerContext
         TCompilerError
         (TCompilerExamples autoload)
         TEnvironmentProvider
         TFormatter
         TMetaDefinition
         TMethodDefinition
+        (TMethodDefinitionTests autoload)
         TNamespaceDefinition
         TObjectWithProperties
         TParser
+        (TParserTests autoload)
         TProgramNodeVisitor
+        (TSemanticAnalyserTests autoload)
         TSourceReader
+        (TSourceReaderTests autoload)
         TSpecialFormNode
         TTypeNode
         TTypeSpecNode
+        (TTypecheckerTests autoload)
         #'jv_tea_compiler'
         TBinding
+        TCompilerContext
+        TCompilerOptions
         TCompilerPass
         TEnvironment
         TFilesystemProvider
@@ -115,11 +151,6 @@
         TVariableBinding
         TArgumentBinding
         TLocalBinding
-        (TMethodDefinitionTests autoload)
-        (TParserTests autoload)
-        (TSemanticAnalyserTests autoload)
-        (TSourceReaderTests autoload)
-        (TTypecheckerTests autoload)
     )
 !
 
@@ -167,20 +198,26 @@
     "Returns a company string which will appear in <lib>.rc.
      Under win32, this is placed into the dlls file-info"
 
-    ^ 'My Company'
+    ^ 'Jan Vrany'
+
+    "Modified: / 25-09-2015 / 03:42:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 description
     "Returns a description string which will appear in nt.def / bc.def"
 
-    ^ 'Class Library'
+    ^ 'Tea Language Compiler Library'
+
+    "Modified: / 25-09-2015 / 03:43:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 legalCopyright
     "Returns a copyright string which will appear in <lib>.rc.
      Under win32, this is placed into the dlls file-info"
 
-    ^ 'My CopyRight or CopyLeft'
+    ^ '(C) 2015 Jan Vrany'
+
+    "Modified: / 25-09-2015 / 03:43:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 productName
@@ -188,7 +225,9 @@
      Under win32, this is placed into the dlls file-info.
      This method is usually redefined in a concrete application definition"
 
-    ^ 'LibraryName'
+    ^ 'TeaCompilerLibrary'
+
+    "Modified: / 25-09-2015 / 03:43:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !jv_tea_compiler class methodsFor:'documentation'!
--- a/compiler/libInit.cc	Wed Sep 23 22:21:44 2015 +0100
+++ b/compiler/libInit.cc	Fri Sep 25 03:51:15 2015 +0100
@@ -30,7 +30,6 @@
 _TClassDefinition_Init(pass,__pRT__,snd);
 _TCompilationUnitDefinition_Init(pass,__pRT__,snd);
 _TCompiler_Init(pass,__pRT__,snd);
-_TCompilerContext_Init(pass,__pRT__,snd);
 _TCompilerError_Init(pass,__pRT__,snd);
 _TEnvironmentProvider_Init(pass,__pRT__,snd);
 _TFormatter_Init(pass,__pRT__,snd);
@@ -46,6 +45,8 @@
 _TTypeSpecNode_Init(pass,__pRT__,snd);
 _jv_137tea_137compiler_Init(pass,__pRT__,snd);
 _TBinding_Init(pass,__pRT__,snd);
+_TCompilerContext_Init(pass,__pRT__,snd);
+_TCompilerOptions_Init(pass,__pRT__,snd);
 _TCompilerPass_Init(pass,__pRT__,snd);
 _TEnvironment_Init(pass,__pRT__,snd);
 _TFilesystemProvider_Init(pass,__pRT__,snd);