compiler/PPCUniversalConfiguration.st
changeset 529 439c4057517f
parent 524 f6f68d32de73
child 530 e36906742693
equal deleted inserted replaced
528:ebfddc82b8bb 529:439c4057517f
    15     |  builder |
    15     |  builder |
    16     self assert: (clazz isKindOf: PPCClass).
    16     self assert: (clazz isKindOf: PPCClass).
    17     
    17     
    18     builder := PPCClassBuilder new.
    18     builder := PPCClassBuilder new.
    19     
    19     
    20     builder compiledClassName: arguments parserName.
    20     builder compiledClassName: options parserName.
    21     builder compiledSuperclass: PPCompiledParser.
    21     builder compiledSuperclass: PPCompiledParser.
    22     builder methodDictionary: clazz methodDictionary.
    22     builder methodDictionary: clazz methodDictionary.
    23     builder constants: clazz constants.
    23     builder constants: clazz constants.
    24 
    24 
    25     ^ builder compileClass.	
    25     ^ builder compileClass.	
    46 
    46 
    47 !PPCUniversalConfiguration methodsFor:'hooks'!
    47 !PPCUniversalConfiguration methodsFor:'hooks'!
    48 
    48 
    49 codeGenerator
    49 codeGenerator
    50     ^ PPCUniversalCodeGenerator new
    50     ^ PPCUniversalCodeGenerator new
    51         arguments: arguments
    51         options: options
    52 ! !
    52 ! !
    53 
    53 
    54 !PPCUniversalConfiguration methodsFor:'phases'!
    54 !PPCUniversalConfiguration methodsFor:'phases'!
    55 
    55 
    56 generate
    56 generate
    57     | rootMethod compiledParser |
    57     | rootMethod compiledParser |
    58     arguments generate ifFalse: [ ^ self ].
    58     options generate ifFalse: [ ^ self ].
    59     
    59     
    60     rootMethod := self codeGenerator
    60     rootMethod := self codeGenerator
    61         arguments: arguments;
    61         options: options;
    62         clazz: clazz;
    62         clazz: clazz;
    63         visit: ir.
    63         visit: ir.
    64     
    64     
    65     compiledParser := self buildClass.
    65     compiledParser := self buildClass.
    66     compiledParser startSymbol: rootMethod methodName.
    66     compiledParser startSymbol: rootMethod methodName.