Added standalone Tea compiler - teak
It allows for compilation of .tea files from the command line.
--- 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);