-
Notifications
You must be signed in to change notification settings - Fork 65
/
CLabeledStatementNode.class.st
83 lines (68 loc) · 1.67 KB
/
CLabeledStatementNode.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Class {
#name : #CLabeledStatementNode,
#superclass : #CGLRAbstractNode,
#instVars : [
'label',
'statement',
'case'
],
#category : #'CAST-Nodes'
}
{ #category : #generated }
CLabeledStatementNode class >> case: aCase statement: aStatement [
^ self new
case: aCase;
statement: aStatement;
yourself
]
{ #category : #generated }
CLabeledStatementNode class >> defaultDoing: aCompoundStatement [
^ self case: 'default' statement: aCompoundStatement
]
{ #category : #generated }
CLabeledStatementNode >> acceptVisitor: anAbstractVisitor [
^ anAbstractVisitor visitLabeledStatement: self
]
{ #category : #generated }
CLabeledStatementNode >> case [
^ case
]
{ #category : #generated }
CLabeledStatementNode >> case: anObject [
case := anObject
]
{ #category : #testing }
CLabeledStatementNode >> isLabelledStatement [
^ true
]
{ #category : #generated }
CLabeledStatementNode >> label [
^ label
]
{ #category : #generated }
CLabeledStatementNode >> label: aCGLRIdentifierNode [
self label notNil
ifTrue: [ self label parent: nil ].
label := aCGLRIdentifierNode.
self label notNil
ifTrue: [ self label parent: self ]
]
{ #category : #testing }
CLabeledStatementNode >> needsSeparator [
"The labeled statement node is a case:.
The case itself should not have a statement separator.
Its child statement will have its own separator"
^ false
]
{ #category : #generated }
CLabeledStatementNode >> statement [
^ statement
]
{ #category : #generated }
CLabeledStatementNode >> statement: aCGLRAbstractNode [
self statement notNil
ifTrue: [ self statement parent: nil ].
statement := aCGLRAbstractNode.
self statement notNil
ifTrue: [ self statement parent: self ]
]