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.