compiler/PPCArguments.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 24 Jul 2015 15:06:54 +0100
changeset 502 1e45d3c96ec5
parent 452 9f4558b3be66
child 524 f6f68d32de73
permissions -rw-r--r--
Updated to PetitCompiler-JanVrany.135, PetitCompiler-Tests-JanKurs.93, PetitCompiler-Extras-Tests-JanVrany.16, PetitCompiler-Benchmarks-JanKurs.12 Name: PetitCompiler-JanVrany.135 Author: JanVrany Time: 22-07-2015, 06:53:29.127 PM UUID: 890178b5-275d-46af-a2ad-1738998f07cb Ancestors: PetitCompiler-JanVrany.134 Name: PetitCompiler-Tests-JanKurs.93 Author: JanKurs Time: 20-07-2015, 11:30:10.283 PM UUID: 6473e671-ad70-42ca-b6c3-654b78edc531 Ancestors: PetitCompiler-Tests-JanKurs.92 Name: PetitCompiler-Extras-Tests-JanVrany.16 Author: JanVrany Time: 22-07-2015, 05:18:22.387 PM UUID: 8f6f9129-dbba-49b1-9402-038470742f98 Ancestors: PetitCompiler-Extras-Tests-JanKurs.15 Name: PetitCompiler-Benchmarks-JanKurs.12 Author: JanKurs Time: 06-07-2015, 02:10:06.901 PM UUID: cb24f1ac-46a4-494d-9780-64576f0f0dba Ancestors: PetitCompiler-Benchmarks-JanKurs.11, PetitCompiler-Benchmarks-JanVrany.e29bd90f388e.20150619081300

"{ Package: 'stx:goodies/petitparser/compiler' }"

"{ NameSpace: Smalltalk }"

Object subclass:#PPCArguments
	instanceVariableNames:'arguments'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Core'
!

!PPCArguments class methodsFor:'as yet unclassified'!

default
    ^ self new
!

new
    ^ self basicNew 
        initialize;
        yourself
! !

!PPCArguments methodsFor:'accessing'!

cacheFirstFollow
    ^ self at: #cacheFirstFollow ifAbsent: true
!

cacheFirstFollow: value
    self set: #cacheFirstFollow to: value.
!

codeGenerator
    ^ self at: #codeGenerator ifAbsent: PPCCodeGenerator
!

codeGenerator: value
    self set: #codeGenerator to: value.
!

debug
    ^ self at: #debug ifAbsent: true
!

debug: value
    self set: #debug to: value.
!

detectTokens
    ^ self at: #detectTokens ifAbsent: true
!

detectTokens: value
    self set: #detectTokens to: value.
!

generate
    ^ self at: #generate ifAbsent: true
!

generate: value
    ^ self set: #generate to: value
!

guards
    ^ self at: #guards ifAbsent: true
!

guards: value
    self set: #guards to: value.
!

inline
    ^ self at: #inline ifAbsent: true
!

inline: value
    self set: #inline to: value.
!

merge
    ^ self at: #merge ifAbsent: true
!

merge: value
    self set: #merge to: value.
!

parserName
    ^ self at: #parserName ifAbsent: #PPGeneratedParser 
!

parserName: value
    self set: #parserName to: value.
!

profile
    ^ self at: #profile ifAbsent: false
!

profile: value
    self set: #profile to: value.
!

recognizingComponents
    ^ self at: #recognizingComponents ifAbsent: true
!

recognizingComponents: value
    self set: #recognizingComponents to: value.
!

scannerName
    ^ self at: #scannerName ifAbsent: #PPGeneratedScanner
!

scannerName: value
    self set: #scannerName to: value.
!

specialize
    ^ self at: #specialize ifAbsent: true
!

specialize: value
    self set: #specialize to: value.
!

tokenize
    ^ self at: #tokenize ifAbsent: true
!

tokenize: value
    self set: #tokenize to: value.
! !

!PPCArguments methodsFor:'initialization'!

initialize
    super initialize.
    arguments := IdentityDictionary new
! !

!PPCArguments methodsFor:'private'!

at: symbol ifAbsent: defaultValue
    ^ arguments at: symbol ifAbsent: [ ^ defaultValue  ]
!

set: symbol to: defaultValue
    ^ arguments at: symbol put: defaultValue 
! !