1: ================================================================================
2:
3: Smalltalk defineClass: #SynapseParseNode
4: superclass: #{Core.Object}
5: indexedType: #none
6: private: false
7: instanceVariableNames: 'nodeType token symbol subNodes '
8: classInstanceVariableNames: ''
9: imports: ''
10: category: ''
11:
12: ================================================================================
13:
14: SynapseParseNode method for 'accessing'
15:
16: allNodesDo: aBlock
17:
18: aBlock value: self.
19: self subNodes ifNil: [^self].
20: self subNodes do: [:aNode | aNode allNodesDo: aBlock]
21:
22: ------------------------------------------------------------
23:
24: SynapseParseNode method for 'initialize-release'
25:
26: initialize
27:
28: nodeType := nil.
29: token := nil.
30: symbol := nil.
31: subNodes := nil
32:
33: ------------------------------------------------------------
34:
35: SynapseParseNode method for 'testing'
36:
37: isInnerNode
38:
39: ^self isLeafNode not
40:
41: ------------------------------------------------------------
42:
43: SynapseParseNode method for 'testing'
44:
45: isLeafNode
46:
47: ^self nodeType = #leaf
48:
49: ------------------------------------------------------------
50:
51: SynapseParseNode method for 'accessing'
52:
53: nodeType
54:
55: ^nodeType
56:
57: ------------------------------------------------------------
58:
59: SynapseParseNode method for 'printing'
60:
61: printOn: aStream
62:
63: self isLeafNode
64: ifTrue:
65: [aStream
66: nextPutAll: 'Node(';
67: nextPutAll: self token printString;
68: nextPutAll: ')']
69: ifFalse:
70: [aStream
71: nextPutAll: 'Node(';
72: nextPutAll: self symbol printString;
73: nextPutAll: ',';
74: nextPutAll: self subNodes printString;
75: nextPutAll: ')']
76:
77: ------------------------------------------------------------
78:
79: SynapseParseNode method for 'accessing'
80:
81: subNode
82:
83: ^self subNodes first
84:
85: ------------------------------------------------------------
86:
87: SynapseParseNode method for 'accessing'
88:
89: subNodes
90:
91: ^subNodes
92:
93: ------------------------------------------------------------
94:
95: SynapseParseNode method for 'accessing'
96:
97: symbol
98:
99: ^symbol
100:
101: ------------------------------------------------------------
102:
103: SynapseParseNode method for 'initialize-release'
104:
105: symbol: aSymbol subNodes: nodeCollection
106:
107: nodeType := #inner.
108: symbol := aSymbol.
109: subNodes := nodeCollection
110:
111: ------------------------------------------------------------
112:
113: SynapseParseNode method for 'accessing'
114:
115: token
116:
117: ^token
118:
119: ------------------------------------------------------------
120:
121: SynapseParseNode method for 'initialize-release'
122:
123: token: aToken
124:
125: nodeType := #leaf.
126: token := aToken
127:
128: ================================================================================
129:
130: Smalltalk.SynapseParseNode class
131: instanceVariableNames: ''
132:
133: ================================================================================
134:
135: SynapseParseNode class method for 'instance creation'
136:
137: new
138:
139: ^(super new)
140: initialize;
141: yourself
142:
143: ------------------------------------------------------------
144:
145: SynapseParseNode class method for 'instance creation'
146:
147: symbol: aToken subNodes: nodeCollection
148:
149: ^(self new)
150: symbol: aToken subNodes: nodeCollection;
151: yourself
152:
153: ------------------------------------------------------------
154:
155: SynapseParseNode class method for 'instance creation'
156:
157: token: aToken
158:
159: ^(self new)
160: token: aToken;
161: yourself
162:
163: ================================================================================
This document was generated by KSU.TextDoclet on 2013/02/22 at 01:01:17.