Extendable Enum like Type?

Ethan Furman ethan at stoneleaf.us
Thu Jul 18 12:14:09 EDT 2019


On 07/18/2019 06:04 AM, Antoon Pardon wrote:

> I am experimenting with writing an Earley Parser. Now I would like to
> have the non-terminals from the grammer I am reading in, be represented
> bye an enum like type. So that if the grammer contains the following
> production: Term -> Term '+' Factor I can reprensent the right hand side
> with a list that gets printed something like the following:
> [<Non_Terminal.Term:1>, '+', <Non_Terminal.Factor:2>] I am a bit at a
> loss right now on how to start. Can someone point me in the right
> direction?

The basic method is:

from enum import Enum     # `from aenum` [1][2] if less than Python 3.4

Class NonTerminal(Enum):
     Term = 1
     Factor = 2
     ...

The docs [3] also have a lot of information.

Does that answer your question?

--
~Ethan~


[1] https://pypi.org/project/aenum/
[2] I am the author of Enum, aenum, and the enum34 backport.
[3] https://docs.python.org/3/library/enum.html



More information about the Python-list mailing list