1: ================================================================================
  2: 
  3: Smalltalk defineClass: #SynapseParseBlockTable
  4:     superclass: #{Core.Object}
  5:     indexedType: #none
  6:     private: false
  7:     instanceVariableNames: 'blockTable '
  8:     classInstanceVariableNames: ''
  9:     imports: ''
 10:     category: ''
 11: 
 12: ================================================================================
 13: 
 14: SynapseParseBlockTable method for 'accessing'
 15: 
 16: block: aBlock symbol: aSymbol
 17: 
 18:     self blockTable add: aSymbol -> aBlock
 19: 
 20: ------------------------------------------------------------
 21: 
 22: SynapseParseBlockTable method for 'accessing'
 23: 
 24: blockTable
 25: 
 26:     blockTable ifNil: [blockTable := OrderedCollection new].
 27:     ^blockTable
 28: 
 29: ------------------------------------------------------------
 30: 
 31: SynapseParseBlockTable method for 'initialize-release'
 32: 
 33: initialize
 34: 
 35:     blockTable := nil
 36: 
 37: ------------------------------------------------------------
 38: 
 39: SynapseParseBlockTable method for 'accessing'
 40: 
 41: symbol: aSymbol
 42: 
 43:     | symbolAndBlock pairOfSymbol aBlock |
 44:     symbolAndBlock := self blockTable
 45:                 detect: [:anAssociation | anAssociation key = aSymbol]
 46:                 ifNone: [nil].
 47:     symbolAndBlock ifNotNil: [^symbolAndBlock value].
 48:     pairOfSymbol := self class mapCollection
 49:                 detect: [:anAssociation | anAssociation key = aSymbol]
 50:                 ifNone: [nil].
 51:     pairOfSymbol ifNil: [^nil].
 52:     aBlock := self class perform: pairOfSymbol value.
 53:     aBlock ifNil: [^nil].
 54:     self blockTable add: pairOfSymbol value -> aBlock.
 55:     ^aBlock
 56: 
 57: ================================================================================
 58: 
 59: Smalltalk.SynapseParseBlockTable class
 60:     instanceVariableNames: ''
 61: 
 62: ================================================================================
 63: 
 64: SynapseParseBlockTable class method for 'default blocks'
 65: 
 66: Argument_to_STRING
 67: 
 68:     ^[:aSTRING | 'Argument(' , aSTRING , ')']
 69: 
 70: ------------------------------------------------------------
 71: 
 72: SynapseParseBlockTable class method for 'default blocks'
 73: 
 74: Arguments_to_Argument
 75: 
 76:     ^[:anArgument | 'Arguments(' , anArgument , ')']
 77: 
 78: ------------------------------------------------------------
 79: 
 80: SynapseParseBlockTable class method for 'default blocks'
 81: 
 82: Arguments_to_Arguments_COMMA_Argument
 83: 
 84:     ^[:anArguments :aCOMMA :anArgument | 'Arguments(' , anArguments , ', ' , aCOMMA , ', ' , anArgument , ')']
 85: 
 86: ------------------------------------------------------------
 87: 
 88: SynapseParseBlockTable class method for 'default blocks'
 89: 
 90: Assignment_to_VariableName_GETS_Constructor
 91: 
 92:     ^[:aVariableName :aGETS :aConstructor | 'Assignment(' , aVariableName , ', ' , aGETS , ', ' , aConstructor , ')']
 93: 
 94: ------------------------------------------------------------
 95: 
 96: SynapseParseBlockTable class method for 'default blocks'
 97: 
 98: Comment_to_COMMENT
 99: 
100:     ^[:aCOMMENT | 'Comment(' , aCOMMENT , ')']
101: 
102: ------------------------------------------------------------
103: 
104: SynapseParseBlockTable class method for 'default blocks'
105: 
106: Constructor_to_ConstructorName_LPAR_Arguments_RPAR
107: 
108:     ^
109:     [:aConstructorName :aLPAR :aArguments :aRPAR |
110:     'Constructor(' , aConstructorName , ', ' , aLPAR , ', ' , aArguments , ', '
111:         , aRPAR , ')']
112: 
113: ------------------------------------------------------------
114: 
115: SynapseParseBlockTable class method for 'default blocks'
116: 
117: Constructor_to_ConstructorName_LPAR_RPAR
118: 
119:     ^[:aConstructorName :aLPAR :aRPAR | 'Constructor(' , aConstructorName , ', ' , aLPAR , ', ' , aRPAR , ')']
120: 
121: ------------------------------------------------------------
122: 
123: SynapseParseBlockTable class method for 'default blocks'
124: 
125: ConstructorName_to_ID
126: 
127:     ^[:anID | 'ConstructorName(' , anID , ')']
128: 
129: ------------------------------------------------------------
130: 
131: SynapseParseBlockTable class method for 'examples'
132: 
133: example
134:     "KSU.SynapseParseBlockTable example."
135: 
136:     ^self new
137: 
138: ------------------------------------------------------------
139: 
140: SynapseParseBlockTable class method for 'defaults'
141: 
142: mapCollection
143: 
144:     ^(OrderedCollection new)
145:         add: #Program_to_Statements -> #Program_to_Statements;
146:         add: #Statements_to_ -> #Statements_to_;
147:         add: #Statements_to_Statement -> #Statements_to_Statement;
148:         add: #Statements_to_Statements_Statement -> #Statements_to_Statements_Statement;
149:         add: #Statement_to_Assignment_SEMICOLON -> #Statement_to_Assignment_SEMICOLON;
150:         add: #Statement_to_Synapse_SEMICOLON -> #Statement_to_Synapse_SEMICOLON;
151:         add: #Statement_to_Comment -> #Statement_to_Comment;
152:         add: #Assignment_to_VariableName_GETS_Constructor
153:                     -> #Assignment_to_VariableName_GETS_Constructor;
154:         add: #Synapse_to_Variable_Mappings -> #Synapse_to_Variable_Mappings;
155:         add: #Mappings_to_Mapping -> #Mappings_to_Mapping;
156:         add: #Mappings_to_Mappings_Mapping -> #Mappings_to_Mappings_Mapping;
157:         add: #Mapping_to_TO_Variable -> #Mapping_to_TO_Variable;
158:         add: #Mapping_to_SEND_MemberName_TO_Variable
159:                     -> #Mapping_to_SEND_MemberName_TO_Variable;
160:         add: #Variable_to_VariableName -> #Variable_to_VariableName;
161:         add: #Variable_to_VariableName_PERIOD_MemberName
162:                     -> #Variable_to_VariableName_PERIOD_MemberName;
163:         add: #VariableName_to_ID -> #VariableName_to_ID;
164:         add: #MemberName_to_ID -> #MemberName_to_ID;
165:         add: #Constructor_to_ConstructorName_LPAR_RPAR
166:                     -> #Constructor_to_ConstructorName_LPAR_RPAR;
167:         add: #Constructor_to_ConstructorName_LPAR_Arguments_RPAR
168:                     -> #Constructor_to_ConstructorName_LPAR_Arguments_RPAR;
169:         add: #ConstructorName_to_ID -> #ConstructorName_to_ID;
170:         add: #Arguments_to_Argument -> #Arguments_to_Argument;
171:         add: #Arguments_to_Arguments_COMMA_Argument
172:                     -> #Arguments_to_Arguments_COMMA_Argument;
173:         add: #Argument_to_STRING -> #Argument_to_STRING;
174:         add: #Comment -> #Comment;
175:         yourself
176: 
177: ------------------------------------------------------------
178: 
179: SynapseParseBlockTable class method for 'default blocks'
180: 
181: Mapping_to_SEND_MemberName_TO_Variable
182: 
183:     ^[:aSEND :aMemberName :aTO :aVariable | 'Mapping(' , aSEND , ', ' , aMemberName , ', ' , aTO , ',' , aVariable , ')']
184: 
185: ------------------------------------------------------------
186: 
187: SynapseParseBlockTable class method for 'default blocks'
188: 
189: Mapping_to_TO_Variable
190: 
191:     ^[:aTO :aVariable | 'Mapping(' , aTO , ',' , aVariable , ')']
192: 
193: ------------------------------------------------------------
194: 
195: SynapseParseBlockTable class method for 'default blocks'
196: 
197: Mappings_to_Mapping
198: 
199:     ^[:aMapping | 'Mappings(' , aMapping , ')']
200: 
201: ------------------------------------------------------------
202: 
203: SynapseParseBlockTable class method for 'default blocks'
204: 
205: Mappings_to_Mappings_Mapping
206: 
207:     ^[:aMappings :aMapping | 'Mappings(' , aMappings , ',' , aMapping , ')']
208: 
209: ------------------------------------------------------------
210: 
211: SynapseParseBlockTable class method for 'default blocks'
212: 
213: MemberName_to_ID
214: 
215:     ^[:anID | 'MemberName(' , anID , ')']
216: 
217: ------------------------------------------------------------
218: 
219: SynapseParseBlockTable class method for 'instance creation'
220: 
221: new
222: 
223:     ^(super new)
224:         initialize;
225:         yourself
226: 
227: ------------------------------------------------------------
228: 
229: SynapseParseBlockTable class method for 'default blocks'
230: 
231: Program_to_Statements
232: 
233:     ^[:aStatements | 'Program(' , aStatements , ')']
234: 
235: ------------------------------------------------------------
236: 
237: SynapseParseBlockTable class method for 'default blocks'
238: 
239: Statement_to_Assignments_SEMICOLON
240: 
241:     ^[:anAssignments :aSEMICOLON | 'Statement(' , anAssignments , ', ' , aSEMICOLON , ')']
242: 
243: ------------------------------------------------------------
244: 
245: SynapseParseBlockTable class method for 'default blocks'
246: 
247: Statement_to_Comment
248: 
249:     ^[:aComment | 'Statement(' , aComment , ')']
250: 
251: ------------------------------------------------------------
252: 
253: SynapseParseBlockTable class method for 'default blocks'
254: 
255: Statement_to_Synapse_SEMICOLON
256: 
257:     ^[:aSynapse :aSEMICOLON | 'Statement(' , aSynapse , ', ' , aSEMICOLON , ')']
258: 
259: ------------------------------------------------------------
260: 
261: SynapseParseBlockTable class method for 'default blocks'
262: 
263: Statements_to_Statement
264: 
265:     ^[:aStatement | 'Statements(' , aStatement , ')']
266: 
267: ------------------------------------------------------------
268: 
269: SynapseParseBlockTable class method for 'default blocks'
270: 
271: Statements_to_Statements_Statement
272: 
273:     ^[:aStatements :aStatement | 'Statements(' , aStatements , ', ' , aStatement , ')']
274: 
275: ------------------------------------------------------------
276: 
277: SynapseParseBlockTable class method for 'default blocks'
278: 
279: Synapse_to_Variable_Mappings
280: 
281:     ^[:aVariable :aMappings | 'Synapse(' , aVariable , ', ' , aMappings , ')']
282: 
283: ------------------------------------------------------------
284: 
285: SynapseParseBlockTable class method for 'default blocks'
286: 
287: Variable_to_VariableName
288: 
289:     ^[:aVariableName | 'Variable(' , aVariableName , ')']
290: 
291: ------------------------------------------------------------
292: 
293: SynapseParseBlockTable class method for 'default blocks'
294: 
295: Variable_to_VariableName_PERIOD_MemberName
296: 
297:     ^[:aVariableName :aPERIOD :aMemberName | 'Variable(' , aVariableName , ', ' , aPERIOD , ', ' , aMemberName , ')']
298: 
299: ------------------------------------------------------------
300: 
301: SynapseParseBlockTable class method for 'default blocks'
302: 
303: VariableName_to_ID
304: 
305:     ^[:anID | 'VariableName(' , anID , ')']
306: 
307: ================================================================================

This document was generated by KSU.TextDoclet on 2013/02/22 at 01:01:17.