1# This Source Code Form is subject to the terms of the Mozilla Public
2# License, v. 2.0. If a copy of the MPL was not distributed with this
3# file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
5
6# Leaf constants to pass to Frame's leafness argument.
7LEAF = "Leaf"
8NOT_LEAF = "NotLeaf"
9DYNAMIC_LEAF = "DynamicLeaf"
10
11
12class FrameClass():
13    def __init__(self, cls):
14        self.cls = cls
15
16
17class Frame(FrameClass):
18    def __init__(self, cls, ty, leafness):
19        FrameClass.__init__(self, cls)
20        self.ty = ty
21        self.leafness = leafness
22        self.is_concrete = True
23
24
25class AbstractFrame(FrameClass):
26    def __init__(self, cls):
27        FrameClass.__init__(self, cls)
28        self.is_concrete = False
29