compiler/PEGFsaEpsilonTransition.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 23 Nov 2015 11:14:30 +0100
changeset 551 00ebb1b85f53
parent 515 b5316ef15274
permissions -rw-r--r--
Fixed CI scripts on Windows For an unknown reason, unzip on Windows reports status code 50 (presumably "the disk is (or was) full during extraction.") even if there's plenty of space. To workaround this, simply ignore status code 50 on Windows. Sigh.

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

"{ NameSpace: Smalltalk }"

PEGFsaTransition subclass:#PEGFsaEpsilonTransition
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-FSA'
!

!PEGFsaEpsilonTransition methodsFor:'gt'!

gtName
    | gtName |
    gtName := '<eps>'.
    priority < 0 ifTrue: [ gtName := gtName, ',', priority asString ].
    ^ gtName
! !

!PEGFsaEpsilonTransition methodsFor:'modifications'!

decreasePriorityBy: value
    "
        My value has special semantics, when I have negative priority, all the reachable states and transitions should
        be decreased by that value.
        
        In case I am preceded by another epsilon with negative priority, I do not decrease my value, that would multiply
        the the negative priority effect....
    "
    ^ self
! !

!PEGFsaEpsilonTransition methodsFor:'set operations'!

intersection: anotherState
    ^ anotherState
! !

!PEGFsaEpsilonTransition methodsFor:'testing'!

isEpsilon
    ^ true
!

isEpsilonTransition
    ^ true
! !