55# responsible for checking of model module content from .exml file.
66#
77# COPYRIGHT: Copyright (C) 2021-2023 Kamil Deć github.com/deckamil
8- # DATE: 23 JUN 2023
8+ # DATE: 7 SEP 2023
99#
1010# LICENSE:
1111# This file is part of Mod Code Generator (MCG).
2828# along with this program. If not, see <https://www.gnu.org/licenses/>.
2929
3030
31+ from mcg_cc_activity_connection import ActivityConnection
3132from mcg_cc_file_reader import FileReader
3233from mcg_cc_error_handler import ErrorHandler
3334from mcg_cc_logger import Logger
34- from mcg_cc_connection import Connection
3535
3636
3737# Description:
3838# This class allows to check model module content from .exml files.
3939class FileChecker (object ):
4040
4141 # list of actions types
42- action_3letter_type_list = ["ADD" , "SUB" , "MUL" , "DIV" , "AND" , "NOT" ]
43- action_2letter_type_list = ["OR" , "EQ" , "NE" , "GT" , "LT" , "GE" , "LE" ]
42+ action_type_list = ["ADD" , "SUB" , "MUL" , "DIV" ,
43+ "AND" , "OR" , "NOT" ,
44+ "BAND" , "BOR" , "BXOR" , "BNOT" , "BLS" , "BRS" ,
45+ "EQ" , "NE" , "GT" , "LT" , "GE" , "LE" ]
4446
4547 # list of interface element types
4648 interface_element_type_list = ["INT8" , "INT16" , "INT32" , "INT64" ,
@@ -68,7 +70,7 @@ def check_connection_errors(self):
6870 # check action types in connections
6971 for connection in self .connection_list :
7072 # if action is connection source
71- if connection .source_type == Connection .ACTION :
73+ if connection .source_type == ActivityConnection .ACTION :
7274
7375 # check if action type is valid
7476 action_type_valid = FileChecker .check_action_type (connection .source_name )
@@ -79,7 +81,7 @@ def check_connection_errors(self):
7981 ErrorHandler .record_error (ErrorHandler .CON_ERR_INVALID_ACTION_TYPE , connection , "none" )
8082
8183 # if action is connection target
82- if connection .target_type == Connection .ACTION :
84+ if connection .target_type == ActivityConnection .ACTION :
8385 # check if action type is valid
8486 action_type_valid = FileChecker .check_action_type (connection .target_name )
8587
@@ -95,27 +97,16 @@ def check_action_type(action_type_ref):
9597 # result flag
9698 action_type_valid = False
9799
98- # is valid type is not found
99- if not action_type_valid :
100- # check all possible 3-letter action types
101- for action_type in FileChecker .action_3letter_type_list :
102- # if action type is the same as in reference
103- if action_type == action_type_ref [0 :3 ]:
104- # set flag
105- action_type_valid = True
106- # exit loop
107- break
108-
109- # is valid types is not found
110- if not action_type_valid :
111- # check 2-letter action types
112- for action_type in FileChecker .action_2letter_type_list :
113- # if action type is the same as in reference
114- if action_type == action_type_ref [0 :2 ]:
115- # set flag
116- action_type_valid = True
117- # exit loop
118- break
100+ # check all possible action types
101+ for action_type in FileChecker .action_type_list :
102+ # get length of action type
103+ action_type_length = len (action_type )
104+ # if action type is the same as in reference
105+ if action_type == action_type_ref [0 :action_type_length ]:
106+ # set positive flag
107+ action_type_valid = True
108+ # exit loop
109+ break
119110
120111 # return flag
121112 return action_type_valid
@@ -130,7 +121,7 @@ def check_interface_errors(self):
130121 # check interface element types in input interface
131122 for interface_element in self .input_interface_list :
132123 # get interface element type
133- interface_element_type = interface_element [FileReader .INTERFACE_ELEMENT_TYPE_INDEX ]
124+ interface_element_type = interface_element [FileReader .DATA_ELEMENT_TYPE_INDEX ]
134125 # check interface element type
135126 interface_element_type_valid = FileChecker .check_interface_element_type (interface_element_type )
136127
@@ -142,7 +133,7 @@ def check_interface_errors(self):
142133 # check interface element types in output interface
143134 for interface_element in self .output_interface_list :
144135 # get interface element type
145- interface_element_type = interface_element [FileReader .INTERFACE_ELEMENT_TYPE_INDEX ]
136+ interface_element_type = interface_element [FileReader .DATA_ELEMENT_TYPE_INDEX ]
146137 # check interface element type
147138 interface_element_type_valid = FileChecker .check_interface_element_type (interface_element_type )
148139
@@ -154,7 +145,7 @@ def check_interface_errors(self):
154145 # check interface element types in local interface
155146 for interface_element in self .local_interface_list :
156147 # get interface element type
157- interface_element_type = interface_element [FileReader .INTERFACE_ELEMENT_TYPE_INDEX ]
148+ interface_element_type = interface_element [FileReader .DATA_ELEMENT_TYPE_INDEX ]
158149 # check interface element type
159150 interface_element_type_valid = FileChecker .check_interface_element_type (interface_element_type )
160151
0 commit comments