PetitCommonMark/software/petitcompiler/PPCInlinedMethod.class.st

62 lines
1.6 KiB
Smalltalk

Class {
#name : 'PPCInlinedMethod',
#superclass : 'PPCMethod',
#category : 'PetitCompiler-Compiler-Codegen'
}
{ #category : 'code generation - variables' }
PPCInlinedMethod >> allocateReturnVariable [
self error: 'return variable must be assigned by the non-inlined method....'
"Created: / 23-04-2015 / 21:06:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
]
{ #category : 'code generation - variables' }
PPCInlinedMethod >> allocateReturnVariableNamed: name [
self error: 'return variable must be assigned by the non-inlined method....'
"Created: / 15-06-2015 / 17:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
]
{ #category : 'code generation - variables' }
PPCInlinedMethod >> allocateTemporaryVariableNamed:aString [
self error: 'sorry, I can''t allocate variables....'
"Created: / 23-04-2015 / 21:06:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
]
{ #category : 'accessing' }
PPCInlinedMethod >> bridge [
self error: 'Cannot bridge to the inlined method!'.
^ super bridge
]
{ #category : 'as yet unclassified' }
PPCInlinedMethod >> call [
^ self source
"Modified: / 24-07-2015 / 19:45:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
]
{ #category : 'as yet unclassified' }
PPCInlinedMethod >> callOn: receiver [
self error: 'are you sure you want to inline code from different receiver? If so, remove me!'.
^ self code
]
{ #category : 'as yet unclassified' }
PPCInlinedMethod >> isInline [
^ true
]
{ #category : 'as yet unclassified' }
PPCInlinedMethod >> source [
^ source isString ifTrue:[
source
] ifFalse:[
(String streamContents:[:s | source sourceOn:s ]) trimRight
].
"Created: / 24-07-2015 / 19:46:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
]