1: ================================================================================
  2: 
  3: Smalltalk defineClass: #SynapseParseTable
  4:     superclass: #{Core.Object}
  5:     indexedType: #none
  6:     private: false
  7:     instanceVariableNames: 'table selectorDictionary '
  8:     classInstanceVariableNames: ''
  9:     imports: ''
 10:     category: ''
 11: 
 12: ================================================================================
 13: 
 14: SynapseParseTable method for 'accessing'
 15: 
 16: at: stateSymbol
 17: 
 18:     | aDictionary |
 19:     aDictionary := self table at: stateSymbol ifAbsent: [nil].
 20:     aDictionary ifNotNil: [^aDictionary].
 21:     aDictionary := self defaultDictionary: stateSymbol.
 22:     aDictionary ifNil: [^nil].
 23:     self table at: stateSymbol put: aDictionary.
 24:     ^aDictionary
 25: 
 26: ------------------------------------------------------------
 27: 
 28: SynapseParseTable method for 'accessing'
 29: 
 30: at: stateSymbol tokenSymbol: tokenSymbol
 31: 
 32:     | aDictionary anAction |
 33:     aDictionary := self at: stateSymbol.
 34:     aDictionary ifNil: [^nil].
 35:     anAction := aDictionary at: tokenSymbol ifAbsent: [self defaultActionClass errorAction].
 36:     ^anAction
 37: 
 38: ------------------------------------------------------------
 39: 
 40: SynapseParseTable method for 'defaults'
 41: 
 42: defaultActionClass
 43: 
 44:     ^KSU.SynapseParseAction
 45: 
 46: ------------------------------------------------------------
 47: 
 48: SynapseParseTable method for 'default dictionaries'
 49: 
 50: defaultDictionary: stateSymbol
 51: 
 52:     | aSelector aDictionary |
 53:     aSelector := self selectorDictionary at: stateSymbol ifAbsent: [nil].
 54:     aSelector ifNil: [^nil].
 55:     aDictionary := self perform: aSelector.
 56:     ^aDictionary
 57: 
 58: ------------------------------------------------------------
 59: 
 60: SynapseParseTable method for 'initialize-release'
 61: 
 62: initialize
 63: 
 64:     table := nil
 65: 
 66: ------------------------------------------------------------
 67: 
 68: SynapseParseTable method for 'defaults'
 69: 
 70: initialState
 71: 
 72:     ^#state0
 73: 
 74: ------------------------------------------------------------
 75: 
 76: SynapseParseTable method for 'default dictionaries'
 77: 
 78: selectorDictionary
 79: 
 80:     selectorDictionary ifNotNil: [^selectorDictionary].
 81:     selectorDictionary := (Dictionary new)
 82:                 add: #state0 -> #state0;
 83:                 add: #state1 -> #state1;
 84:                 add: #state2 -> #state2;
 85:                 add: #state3 -> #state3;
 86:                 add: #state4 -> #state4;
 87:                 add: #state5 -> #state5;
 88:                 add: #state6 -> #state6;
 89:                 add: #state7 -> #state7;
 90:                 add: #state8 -> #state8;
 91:                 add: #state9 -> #state9;
 92:                 add: #state10 -> #state10;
 93:                 add: #state18 -> #state18;
 94:                 add: #state19 -> #state19;
 95:                 add: #state20 -> #state20;
 96:                 add: #state21 -> #state21;
 97:                 add: #state22 -> #state22;
 98:                 add: #state23 -> #state23;
 99:                 add: #state24 -> #state24;
100:                 add: #state25 -> #state25;
101:                 add: #state26 -> #state26;
102:                 add: #state27 -> #state27;
103:                 add: #state28 -> #state28;
104:                 add: #state29 -> #state29;
105:                 add: #state30 -> #state30;
106:                 add: #state31 -> #state31;
107:                 add: #state34 -> #state34;
108:                 add: #state35 -> #state35;
109:                 add: #state37 -> #state37;
110:                 add: #state39 -> #state39;
111:                 add: #state41 -> #state41;
112:                 add: #state42 -> #state42;
113:                 add: #state43 -> #state43;
114:                 add: #state44 -> #state44;
115:                 add: #state45 -> #state45;
116:                 add: #state46 -> #state46;
117:                 add: #state48 -> #state48;
118:                 add: #state49 -> #state49;
119:                 add: #state50 -> #state50;
120:                 yourself.
121:     ^selectorDictionary
122: 
123: ------------------------------------------------------------
124: 
125: SynapseParseTable method for 'default dictionaries'
126: 
127: state0
128: 
129:     ^(Dictionary new)
130:         add: #ID -> (self defaultActionClass shiftAction: #state8);
131:         add: #COMMENT -> (self defaultActionClass shiftAction: #state9);
132:         add: #Statements -> (self defaultActionClass shiftAction: #state1);
133:         add: #Statement -> (self defaultActionClass shiftAction: #state2);
134:         add: #Assignment -> (self defaultActionClass shiftAction: #state3);
135:         add: #Synapse -> (self defaultActionClass shiftAction: #state4);
136:         add: #Variable -> (self defaultActionClass shiftAction: #state7);
137:         add: #VariableName -> (self defaultActionClass shiftAction: #state6);
138:         add: #Comment -> (self defaultActionClass shiftAction: #state5);
139:         yourself
140: 
141: ------------------------------------------------------------
142: 
143: SynapseParseTable method for 'default dictionaries'
144: 
145: state1
146: 
147:     ^(Dictionary new)
148:         add: #ID -> (self defaultActionClass shiftAction: #state8);
149:         add: #COMMENT -> (self defaultActionClass shiftAction: #state9);
150:         add: #acceptance -> self defaultActionClass acceptAction;
151:         add: #Statement -> (self defaultActionClass shiftAction: #state10);
152:         add: #Assignment -> (self defaultActionClass shiftAction: #state3);
153:         add: #Synapse -> (self defaultActionClass shiftAction: #state4);
154:         add: #Variable -> (self defaultActionClass shiftAction: #state7);
155:         add: #VariableName -> (self defaultActionClass shiftAction: #state6);
156:         add: #Comment -> (self defaultActionClass shiftAction: #state5);
157:         yourself
158: 
159: ------------------------------------------------------------
160: 
161: SynapseParseTable method for 'default dictionaries'
162: 
163: state10
164: 
165:     ^(Dictionary new)
166:         add: #ID -> (self defaultActionClass reduceAction: #(#Statements #Statement) to: #Statements);
167:         add: #COMMENT -> (self defaultActionClass reduceAction: #(#Statements #Statement) to: #Statements);
168:         add: #acceptance -> (self defaultActionClass reduceAction: #(#Statements #Statement) to: #Statements);
169:         yourself
170: 
171: ------------------------------------------------------------
172: 
173: SynapseParseTable method for 'default dictionaries'
174: 
175: state18
176: 
177:     ^(Dictionary new)
178:         add: #ID -> (self defaultActionClass reduceAction: #(#Assignment #SEMICOLON) to: #Statement);
179:         add: #COMMENT -> (self defaultActionClass reduceAction: #(#Assignment #SEMICOLON) to: #Statement);
180:         add: #acceptance -> (self defaultActionClass reduceAction: #(#Assignment #SEMICOLON) to: #Statement);
181:         yourself
182: 
183: ------------------------------------------------------------
184: 
185: SynapseParseTable method for 'default dictionaries'
186: 
187: state19
188: 
189:     ^(Dictionary new)
190:         add: #ID -> (self defaultActionClass reduceAction: #(#Synapse #SEMICOLON) to: #Statement);
191:         add: #COMMENT -> (self defaultActionClass reduceAction: #(#Synapse #SEMICOLON) to: #Statement);
192:         add: #acceptance -> (self defaultActionClass reduceAction: #(#Synapse #SEMICOLON) to: #Statement);
193:         yourself
194: 
195: ------------------------------------------------------------
196: 
197: SynapseParseTable method for 'default dictionaries'
198: 
199: state2
200: 
201:     ^(Dictionary new)
202:         add: #ID -> (self defaultActionClass reduceAction: #(#Statement) to: #Statements);
203:         add: #COMMENT -> (self defaultActionClass reduceAction: #(#Statement) to: #Statements);
204:         add: #acceptance -> (self defaultActionClass reduceAction: #(#Statement) to: #Statements);
205:         yourself
206: 
207: ------------------------------------------------------------
208: 
209: SynapseParseTable method for 'default dictionaries'
210: 
211: state20
212: 
213:     ^(Dictionary new)
214:         add: #ID -> (self defaultActionClass shiftAction: #state28);
215:         add: #Constructor -> (self defaultActionClass shiftAction: #state26);
216:         add: #ConstructorName -> (self defaultActionClass shiftAction: #state27);
217:         yourself
218: 
219: ------------------------------------------------------------
220: 
221: SynapseParseTable method for 'default dictionaries'
222: 
223: state21
224: 
225:     ^(Dictionary new)
226:         add: #ID -> (self defaultActionClass shiftAction: #state30);
227:         add: #MemberName -> (self defaultActionClass shiftAction: #state29);
228:         yourself
229: 
230: ------------------------------------------------------------
231: 
232: SynapseParseTable method for 'default dictionaries'
233: 
234: state22
235: 
236:     ^(Dictionary new)
237:         add: #SEND -> (self defaultActionClass shiftAction: #state25);
238:         add: #TO -> (self defaultActionClass shiftAction: #state24);
239:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#Variable #Mappings) to: #Synapse);
240:         add: #Mapping -> (self defaultActionClass shiftAction: #state31);
241:         yourself
242: 
243: ------------------------------------------------------------
244: 
245: SynapseParseTable method for 'default dictionaries'
246: 
247: state23
248: 
249:     ^(Dictionary new)
250:         add: #SEND -> (self defaultActionClass reduceAction: #(#Mapping) to: #Mappings);
251:         add: #TO -> (self defaultActionClass reduceAction: #(#Mapping) to: #Mappings);
252:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#Mapping) to: #Mappings);
253:         yourself
254: 
255: ------------------------------------------------------------
256: 
257: SynapseParseTable method for 'default dictionaries'
258: 
259: state24
260: 
261:     ^(Dictionary new)
262:         add: #ID -> (self defaultActionClass shiftAction: #state8);
263:         add: #Variable -> (self defaultActionClass shiftAction: #state34);
264:         add: #VariableName -> (self defaultActionClass shiftAction: #state35);
265:         yourself
266: 
267: ------------------------------------------------------------
268: 
269: SynapseParseTable method for 'default dictionaries'
270: 
271: state25
272: 
273:     ^(Dictionary new)
274:         add: #ID -> (self defaultActionClass shiftAction: #state30);
275:         add: #MemberName -> (self defaultActionClass shiftAction: #state37);
276:         yourself
277: 
278: ------------------------------------------------------------
279: 
280: SynapseParseTable method for 'default dictionaries'
281: 
282: state26
283: 
284:     ^(Dictionary new)
285:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#VariableName #GETS #Constructor) to: #Assignment);
286:         yourself
287: 
288: ------------------------------------------------------------
289: 
290: SynapseParseTable method for 'default dictionaries'
291: 
292: state27
293: 
294:     ^(Dictionary new)
295:         add: #LPAR -> (self defaultActionClass shiftAction: #state39);
296:         yourself
297: 
298: ------------------------------------------------------------
299: 
300: SynapseParseTable method for 'default dictionaries'
301: 
302: state28
303: 
304:     ^(Dictionary new)
305:         add: #LPAR -> (self defaultActionClass reduceAction: #(#ID) to: #ConstructorName);
306:         yourself
307: 
308: ------------------------------------------------------------
309: 
310: SynapseParseTable method for 'default dictionaries'
311: 
312: state29
313: 
314:     ^(Dictionary new)
315:         add: #SEND -> (self defaultActionClass reduceAction: #(#VariableName #PERIOD #MemberName) to: #Variable);
316:         add: #TO -> (self defaultActionClass reduceAction: #(#VariableName #PERIOD #MemberName) to: #Variable);
317:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#VariableName #PERIOD #MemberName) to: #Variable);
318:         yourself
319: 
320: ------------------------------------------------------------
321: 
322: SynapseParseTable method for 'default dictionaries'
323: 
324: state3
325: 
326:     ^(Dictionary new)
327:         add: #SEMICOLON -> (self defaultActionClass shiftAction: #state18);
328:         yourself
329: 
330: ------------------------------------------------------------
331: 
332: SynapseParseTable method for 'default dictionaries'
333: 
334: state30
335: 
336:     ^(Dictionary new)
337:         add: #SEND -> (self defaultActionClass reduceAction: #(#ID) to: #MemberName);
338:         add: #TO -> (self defaultActionClass reduceAction: #(#ID) to: #MemberName);
339:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#ID) to: #MemberName);
340:         yourself
341: 
342: ------------------------------------------------------------
343: 
344: SynapseParseTable method for 'default dictionaries'
345: 
346: state31
347: 
348:     ^(Dictionary new)
349:         add: #SEND -> (self defaultActionClass reduceAction: #(#Mappings #Mapping) to: #Mappings);
350:         add: #TO -> (self defaultActionClass reduceAction: #(#Mappings #Mapping) to: #Mappings);
351:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#Mappings #Mapping) to: #Mappings);
352:         yourself
353: 
354: ------------------------------------------------------------
355: 
356: SynapseParseTable method for 'default dictionaries'
357: 
358: state34
359: 
360:     ^(Dictionary new)
361:         add: #SEND -> (self defaultActionClass reduceAction: #(#TO #Variable) to: #Mapping);
362:         add: #TO -> (self defaultActionClass reduceAction: #(#TO #Variable) to: #Mapping);
363:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#TO #Variable) to: #Mapping);
364:         yourself
365: 
366: ------------------------------------------------------------
367: 
368: SynapseParseTable method for 'default dictionaries'
369: 
370: state35
371: 
372:     ^(Dictionary new)
373:         add: #SEND -> (self defaultActionClass reduceAction: #(#VariableName) to: #Variable);
374:         add: #TO -> (self defaultActionClass reduceAction: #(#VariableName) to: #Variable);
375:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#VariableName) to: #Variable);
376:         add: #PERIOD -> (self defaultActionClass shiftAction: #state21);
377:         yourself
378: 
379: ------------------------------------------------------------
380: 
381: SynapseParseTable method for 'default dictionaries'
382: 
383: state37
384: 
385:     ^(Dictionary new)
386:         add: #TO -> (self defaultActionClass shiftAction: #state41);
387:         yourself
388: 
389: ------------------------------------------------------------
390: 
391: SynapseParseTable method for 'default dictionaries'
392: 
393: state39
394: 
395:     ^(Dictionary new)
396:         add: #RPAR -> (self defaultActionClass shiftAction: #state42);
397:         add: #STRING -> (self defaultActionClass shiftAction: #state45);
398:         add: #Arguments -> (self defaultActionClass shiftAction: #state43);
399:         add: #Argument -> (self defaultActionClass shiftAction: #state44);
400:         yourself
401: 
402: ------------------------------------------------------------
403: 
404: SynapseParseTable method for 'default dictionaries'
405: 
406: state4
407: 
408:     ^(Dictionary new)
409:         add: #SEMICOLON -> (self defaultActionClass shiftAction: #state19);
410:         yourself
411: 
412: ------------------------------------------------------------
413: 
414: SynapseParseTable method for 'default dictionaries'
415: 
416: state41
417: 
418:     ^(Dictionary new)
419:         add: #ID -> (self defaultActionClass shiftAction: #state8);
420:         add: #Variable -> (self defaultActionClass shiftAction: #state46);
421:         add: #VariableName -> (self defaultActionClass shiftAction: #state35);
422:         yourself
423: 
424: ------------------------------------------------------------
425: 
426: SynapseParseTable method for 'default dictionaries'
427: 
428: state42
429: 
430:     ^(Dictionary new)
431:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#ConstructorName #LPAR #RPAR) to: #Constructor);
432:         yourself
433: 
434: ------------------------------------------------------------
435: 
436: SynapseParseTable method for 'default dictionaries'
437: 
438: state43
439: 
440:     ^(Dictionary new)
441:         add: #RPAR -> (self defaultActionClass shiftAction: #state48);
442:         add: #COMMA -> (self defaultActionClass shiftAction: #state49);
443:         yourself
444: 
445: ------------------------------------------------------------
446: 
447: SynapseParseTable method for 'default dictionaries'
448: 
449: state44
450: 
451:     ^(Dictionary new)
452:         add: #RPAR -> (self defaultActionClass reduceAction: #(#Argument) to: #Arguments);
453:         add: #COMMA -> (self defaultActionClass reduceAction: #(#Argument) to: #Arguments);
454:         yourself
455: 
456: ------------------------------------------------------------
457: 
458: SynapseParseTable method for 'default dictionaries'
459: 
460: state45
461: 
462:     ^(Dictionary new)
463:         add: #RPAR -> (self defaultActionClass reduceAction: #(#STRING) to: #Argument);
464:         add: #COMMA -> (self defaultActionClass reduceAction: #(#STRING) to: #Argument);
465:         yourself
466: 
467: ------------------------------------------------------------
468: 
469: SynapseParseTable method for 'default dictionaries'
470: 
471: state46
472: 
473:     ^(Dictionary new)
474:         add: #SEND -> (self defaultActionClass reduceAction: #(#SEND #MemberName #TO #Variable) to: #Mapping);
475:         add: #TO -> (self defaultActionClass reduceAction: #(#SEND #MemberName #TO #Variable) to: #Mapping);
476:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#SEND #MemberName #TO #Variable) to: #Mapping);
477:         yourself
478: 
479: ------------------------------------------------------------
480: 
481: SynapseParseTable method for 'default dictionaries'
482: 
483: state48
484: 
485:     ^(Dictionary new)
486:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#ConstructorName #LPAR #Arguments #RPAR) to: #Constructor);
487:         yourself
488: 
489: ------------------------------------------------------------
490: 
491: SynapseParseTable method for 'default dictionaries'
492: 
493: state49
494: 
495:     ^(Dictionary new)
496:         add: #STRING -> (self defaultActionClass shiftAction: #state45);
497:         add: #Argument -> (self defaultActionClass shiftAction: #state50);
498:         yourself
499: 
500: ------------------------------------------------------------
501: 
502: SynapseParseTable method for 'default dictionaries'
503: 
504: state5
505: 
506:     ^(Dictionary new)
507:         add: #ID -> (self defaultActionClass reduceAction: #(#Comment) to: #Statement);
508:         add: #COMMENT -> (self defaultActionClass reduceAction: #(#Comment) to: #Statement);
509:         add: #acceptance -> (self defaultActionClass reduceAction: #(#Comment) to: #Statement);
510:         yourself
511: 
512: ------------------------------------------------------------
513: 
514: SynapseParseTable method for 'default dictionaries'
515: 
516: state50
517: 
518:     ^(Dictionary new)
519:         add: #RPAR -> (self defaultActionClass reduceAction: #(#Arguments #COMMA #Argument) to: #Arguments);
520:         add: #COMMA -> (self defaultActionClass reduceAction: #(#Arguments #COMMA #Argument) to: #Arguments);
521:         yourself
522: 
523: ------------------------------------------------------------
524: 
525: SynapseParseTable method for 'default dictionaries'
526: 
527: state6
528: 
529:     ^(Dictionary new)
530:         add: #SEND -> (self defaultActionClass reduceAction: #(#VariableName) to: #Variable);
531:         add: #TO -> (self defaultActionClass reduceAction: #(#VariableName) to: #Variable);
532:         add: #GETS -> (self defaultActionClass shiftAction: #state20);
533:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#VariableName) to: #Variable);
534:         add: #PERIOD -> (self defaultActionClass shiftAction: #state21);
535:         yourself
536: 
537: ------------------------------------------------------------
538: 
539: SynapseParseTable method for 'default dictionaries'
540: 
541: state7
542: 
543:     ^(Dictionary new)
544:         add: #SEND -> (self defaultActionClass shiftAction: #state25);
545:         add: #TO -> (self defaultActionClass shiftAction: #state24);
546:         add: #Mappings -> (self defaultActionClass shiftAction: #state22);
547:         add: #Mapping -> (self defaultActionClass shiftAction: #state23);
548:         yourself
549: 
550: ------------------------------------------------------------
551: 
552: SynapseParseTable method for 'default dictionaries'
553: 
554: state8
555: 
556:     ^(Dictionary new)
557:         add: #SEND -> (self defaultActionClass reduceAction: #(#ID) to: #VariableName);
558:         add: #TO -> (self defaultActionClass reduceAction: #(#ID) to: #VariableName);
559:         add: #GETS -> (self defaultActionClass reduceAction: #(#ID) to: #VariableName);
560:         add: #SEMICOLON -> (self defaultActionClass reduceAction: #(#ID) to: #VariableName);
561:         add: #PERIOD -> (self defaultActionClass reduceAction: #(#ID) to: #VariableName);
562:         yourself
563: 
564: ------------------------------------------------------------
565: 
566: SynapseParseTable method for 'default dictionaries'
567: 
568: state9
569: 
570:     ^(Dictionary new)
571:         add: #ID -> (self defaultActionClass reduceAction: #(#COMMENT) to: #Comment);
572:         add: #COMMENT -> (self defaultActionClass reduceAction: #(#COMMENT) to: #Comment);
573:         add: #acceptance -> (self defaultActionClass reduceAction: #(#COMMENT) to: #Comment);
574:         yourself
575: 
576: ------------------------------------------------------------
577: 
578: SynapseParseTable method for 'accessing'
579: 
580: table
581: 
582:     table ifNil: [table := Dictionary new].
583:     ^table
584: 
585: ================================================================================
586: 
587: Smalltalk.SynapseParseTable class
588:     instanceVariableNames: ''
589: 
590: ================================================================================
591: 
592: SynapseParseTable class method for 'examples'
593: 
594: example1
595:     "KSU.SynapseParseTable example1."
596: 
597:     | aTable |
598:     aTable := KSU.SynapseParseTable new.
599:     ^aTable
600: 
601: ------------------------------------------------------------
602: 
603: SynapseParseTable class method for 'instance creation'
604: 
605: new
606: 
607:     ^(super new)
608:         initialize;
609:         yourself
610: 
611: ================================================================================

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