Exemple #1
0
    def see(I, want):
        if I.saw:
            if isinstance(I.saw, want):
                return I.saw
        else:
            I.am_here += Toke_Whitespace.burn(I.skoarse, I.am_here)
            I.saw = want.match(I.skoarse, I.am_here)
            return I.saw

        return None
Exemple #2
0
    def burn(I, want):

        toke = I.saw

        if toke is None:
            toke = I.see(want)

        if isinstance(toke, want):
            I.saw = None
            I.am_here += toke.burn()
            I.am_here += Toke_Whitespace.burn(I.skoarse, I.am_here)
            return toke

        raise Exception("I tried to burn " + want.__name__ + ", but what I saw is " + toke.__class__.__name__)