stbc.rc
author Claus Gittinger <cg@exept.de>
Fri, 11 Jun 1999 11:21:28 +0200
changeset 363 9d31dcdffe95
parent 209 22793de5d56e
child 381 45c00a5b27ab
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"/
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
"/ $Header$
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"/
209
22793de5d56e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 195
diff changeset
     4
"/ ST/X startup command file:
22793de5d56e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 195
diff changeset
     5
"/
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
"/ bytecode compiler frontend for smalltalk
161
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
     7
"/ usage: stbc file.st
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
"/
161
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
     9
"/ creates file.cls, which can be binary loaded.
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    10
"/
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    11
"/ Notice: 
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    12
"/   this is an experiment to provide a tool which looks like javac; 
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    13
"/   stbc is actually not used in the current system.
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    14
"/   (the same functionality is provided by the browsers fileOut-binary function)
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    15
"/
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    16
"/ By the way - this is an example for a headless application.
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
"/ load the files, save binary versions
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
|args|
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
161
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    22
Compiler stcCompilation:#never.
129
7183a80c1efb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
    23
Object userInterruptSignal handlerBlock:[:ex | Smalltalk exit].
7183a80c1efb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 128
diff changeset
    24
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
args := Smalltalk commandLineArguments.
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
args do:[:arg |
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    |inFile outFile baseName className class|
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    (arg startsWith:'-') ifFalse:[
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	inFile := arg asFilename.
195
1cf850844da9 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 167
diff changeset
    31
	('stbc [info]: loading ' , inFile name , ' ...') infoPrintCR.
128
a44dfc5513c4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    32
	Object errorSignal handle:[:ex |
195
1cf850844da9 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 167
diff changeset
    33
	    'stbc [error]: error while loading: ' errorPrint. ex errorString errorPrintCR.
161
4a5bc7860889 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 129
diff changeset
    34
	] do:[
128
a44dfc5513c4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    35
	    Smalltalk fileIn:inFile name.
a44dfc5513c4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    36
	].
195
1cf850844da9 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 167
diff changeset
    37
	('stbc [info]: done loading') errorPrintCR.
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	baseName := inFile withoutSuffix.
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	className := baseName baseName.
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	outFile := baseName construct:'.cls'.
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
128
a44dfc5513c4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    43
	className := Smalltalk classNameForFile:className.
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	class := Smalltalk classNamed:className.
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
	class notNil ifTrue:[
195
1cf850844da9 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 167
diff changeset
    46
	    ('stbc [info]: saving ' , class name , ' ...') infoPrintCR.
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	    class binaryFileOutWithSourceMode:#reference
128
a44dfc5513c4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    48
	] ifFalse:[
195
1cf850844da9 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 167
diff changeset
    49
	    ('stbc [error]: no class for ' , className) errorPrintCR
127
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	]
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    ]
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
].
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
Smalltalk exit.
6787a765747c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!