This is an old revision of the document!
4. Regex Representation in Python
In this laboratory we will be using Python3 classes to introduce a possible representation of regular expressions inside code and ways to work with those Regexes.
We will start with a base class Regex
that will function as an interface for future descendents:
class Regex: '''Base class for Regex ADT''' def __str__(self) -> str: '''Returns the string representation of the regular expression''' pass def gen(self) -> [str]: '''Return a representative set of strings that the regular expression can generate''' pass def eval_gen(self): '''Prints the set of strings that the regular expression can generate''' pass
We remark the following aspects:
There is no
__init__(self)
blueprint, implying that descendants of Regex
could be instantiated with Descendent()
if we do not specifically overwrite this default functionality.
As we have mentioned in the [second laboratory](“https://ocw.cs.pub.ro/ppcarte/doku.php?id=lfa:2024:lab02”) the corespondences with Java
are:
self
$ \rightarrow $this
__init__
$ \rightarrow $ Class Constructor__str__(self)
$ \rightarrow $toString()
We have structures of type
'''comment'''
. This is the preferred way of writing documentation for classes and functions in Python, as the structure produces a help dialogue box when hovering over functionalities with this type of comments.
Subtitlu
abc
Cum arata cod python
def main(): ... # your code here if __name__ == "__main__": main()