~kf5jwc/imp-parser

ref: 4a8b0d0c4a9b3e235854c13031f981f55fc7ece5 imp-parser/imp_parser/ast/integer.py -rw-r--r-- 305 bytes View raw
4a8b0d0c — Kyle Jones More typing! 1 year, 7 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import attr
from .types import Aexp


@attr.s
class IntAexp(Aexp):
    i = attr.ib()

    def eval(self, env) -> int:
        return self.i


@attr.s
class VarAexp(Aexp):
    name = attr.ib()

    def eval(self, env) -> int:
        if self.name in env:
            return env[self.name]
        return 0