Skip to content

Instantly share code, notes, and snippets.

@gidgid
Created December 13, 2020 19:55
Show Gist options
  • Save gidgid/abd4a780a233b822266348b863a728c9 to your computer and use it in GitHub Desktop.
Save gidgid/abd4a780a233b822266348b863a728c9 to your computer and use it in GitHub Desktop.
from dataclasses import dataclass
class Expression:
"""Represents an ADT expression"""
@dataclass
class Literal(Expression):
value: int
@dataclass
class Add(Expression):
x: Expression
y: Expression
@dataclass
class Subtract(Expression):
x: Expression
y: Expression
@dataclass
class Multiply(Expression):
x: Expression
y: Expression
@dataclass
class Divide(Expression):
x: Expression
y: Expression
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment