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 <a href=“https://ocw.cs.pub.ro/ppcarte/doku.php?id=lfa:2024:lab02”>second laboratory</a> 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. </note>
Subtitlu
abc
Cum arata cod python
def main(): ... # your code here if __name__ == "__main__": main()