-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtoken.py
61 lines (48 loc) · 1.87 KB
/
token.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# ##### BEGIN GPL LICENSE BLOCK #####
#
# <Super Project Manager helps you manage your Blender Projects.>
# Copyright (C) <2023> <Blender Defender>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
class Token():
def __init__(self, value: str) -> None:
self.value = value
self.type = "STRING"
if value == ">":
self.type = "BRANCH_DOWN"
if value == "(":
self.type = "BRACKET_OPEN"
if value == ")":
self.type = "BRACKET_CLOSE"
if value == "+":
self.type = "ADD"
def __str__(self) -> str:
return self.value
def __eq__(self, __value: 'Token') -> bool:
return self.value == __value.value
def is_string(self) -> bool:
return self.type == "STRING"
def is_branch_down(self) -> bool:
return self.type == "BRANCH_DOWN"
def is_bracket_open(self) -> bool:
return self.type == "BRACKET_OPEN"
def is_bracket_close(self) -> bool:
return self.type == "BRACKET_CLOSE"
def is_add(self) -> bool:
return self.type == "ADD"
def is_valid_closing_token(self) -> bool:
return self.type in ["STRING", "BRACKET_CLOSE"]