|
@@ -65,89 +65,89 @@ action_language = [
|
|
|
'"instantiate_node"', 1, '"Class"', '"Action"',
|
|
|
'"instantiate_node"', 1, '"Class"', '"Statement"',
|
|
|
'"instantiate_node"', 1, '"Class"', '"Expression"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Funcdef"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Param"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"If"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Break"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"While"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Continue"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Assign"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Return"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Output"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Declare"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Global"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Access"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Constant"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Input"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Resolve"',
|
|
|
- '"instantiate_node"', 1, '"Class"', '"Call"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"funcdef"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"param"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"if"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"break"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"while"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"continue"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"assign"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"return"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"output"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"declare"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"global"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"access"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"constant"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"input"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"resolve"',
|
|
|
+ '"instantiate_node"', 1, '"Class"', '"call"',
|
|
|
'"instantiate_link"', 1, '"Association"', '"dict_link"', '"Action"', '"Action"',
|
|
|
'"instantiate_link"', 1, '"Association"', '"to_str"', '"dict_link"', '"String"',
|
|
|
'"instantiate_attribute"', 1, '"to_str"', '"name"', '"name"',
|
|
|
'"instantiate_link"', 1, '"Inheritance"', '""', '"Action"', '"Any"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Funcdef"', '"Action"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Param"', '"Action"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"funcdef"', '"Action"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"param"', '"Action"',
|
|
|
'"instantiate_link"', 1, '"Inheritance"', '""', '"Statement"', '"Action"',
|
|
|
'"instantiate_link"', 1, '"Inheritance"', '""', '"Expression"', '"Action"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Resolve"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"If"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Break"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Continue"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Global"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"While"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Assign"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Return"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Call"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Declare"', '"Statement"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Call"', '"Expression"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Access"', '"Expression"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Constant"', '"Expression"',
|
|
|
- '"instantiate_link"', 1, '"Inheritance"', '""', '"Input"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"resolve"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"if"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"break"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"continue"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"global"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"while"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"assign"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"return"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"call"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"declare"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"call"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"access"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"constant"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Inheritance"', '""', '"input"', '"Expression"',
|
|
|
'"instantiate_link"', 1, '"Association"', '"statement_next"', '"Statement"', '"Statement"',
|
|
|
'"instantiate_attribute"', 1, '"statement_next"', '"name"', '"next"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"if_cond"', '"If"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"if_cond"', '"if"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"if_cond"', '"name"', '"cond"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"if_true"', '"If"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"if_true"', '"if"', '"Statement"',
|
|
|
'"instantiate_attribute"', 1, '"if_true"', '"name"', '"true"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"if_false"', '"If"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"if_false"', '"if"', '"Statement"',
|
|
|
'"instantiate_attribute"', 1, '"if_false"', '"name"', '"false"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"while_cond"', '"While"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"while_cond"', '"while"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"while_cond"', '"name"', '"cond"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"while_body"', '"While"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"while_body"', '"while"', '"Statement"',
|
|
|
'"instantiate_attribute"', 1, '"while_body"', '"name"', '"body"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"assign_var"', '"Assign"', '"Any"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"assign_var"', '"assign"', '"Any"',
|
|
|
'"instantiate_attribute"', 1, '"assign_var"', '"name"', '"var"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"assign_value"', '"Assign"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"assign_value"', '"assign"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"assign_value"', '"name"', '"value"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"break_while"', '"Break"', '"While"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"break_while"', '"break"', '"while"',
|
|
|
'"instantiate_attribute"', 1, '"break_while"', '"name"', '"while"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"continue_while"', '"Continue"', '"While"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"continue_while"', '"continue"', '"while"',
|
|
|
'"instantiate_attribute"', 1, '"continue_while"', '"name"', '"while"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"return_value"', '"Return"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"return_value"', '"return"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"return_value"', '"name"', '"value"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"resolve_var"', '"Resolve"', '"Any"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"resolve_var"', '"resolve"', '"Any"',
|
|
|
'"instantiate_attribute"', 1, '"resolve_var"', '"name"', '"var"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"access_var"', '"Access"', '"Any"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"access_var"', '"access"', '"Any"',
|
|
|
'"instantiate_attribute"', 1, '"access_var"', '"name"', '"var"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"constant_node"', '"Constant"', '"Any"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"constant_node"', '"constant"', '"Any"',
|
|
|
'"instantiate_attribute"', 1, '"constant_node"', '"name"', '"node"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"output_node"', '"Output"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"output_node"', '"output"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"output_node"', '"name"', '"node"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"global_var"', '"Global"', '"String"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"global_var"', '"global"', '"String"',
|
|
|
'"instantiate_attribute"', 1, '"global_var"', '"name"', '"var"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"param_name"', '"Param"', '"String"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"param_name"', '"param"', '"String"',
|
|
|
'"instantiate_attribute"', 1, '"param_name"', '"name"', '"name"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"param_value"', '"Param"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"param_value"', '"param"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"param_value"', '"name"', '"value"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"param_next_param"', '"Param"', '"Param"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"param_next_param"', '"param"', '"param"',
|
|
|
'"instantiate_attribute"', 1, '"param_next_param"', '"name"', '"next_param"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"funcdef_body"', '"Funcdef"', '"Statement"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"funcdef_body"', '"funcdef"', '"Statement"',
|
|
|
'"instantiate_attribute"', 1, '"funcdef_body"', '"name"', '"body"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"call_func"', '"Call"', '"Expression"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"call_func"', '"call"', '"Expression"',
|
|
|
'"instantiate_attribute"', 1, '"call_func"', '"name"', '"func"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"call_params"', '"Call"', '"Param"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"call_params"', '"call"', '"param"',
|
|
|
'"instantiate_attribute"', 1, '"call_params"', '"name"', '"params"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"call_last_param"', '"Call"', '"Param"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"call_last_param"', '"call"', '"param"',
|
|
|
'"instantiate_attribute"', 1, '"call_last_param"', '"name"', '"last_param"',
|
|
|
'"exit"',
|
|
|
]
|
|
@@ -166,7 +166,7 @@ bottom_attributes = [
|
|
|
'"instantiate_attribute"', 1, '"tlc"', '"name"', '"target_lower_cardinality"',
|
|
|
'"instantiate_link"', 1, '"Association"', '"tuc"', '"Association"', '"Integer"',
|
|
|
'"instantiate_attribute"', 1, '"tuc"', '"name"', '"target_upper_cardinality"',
|
|
|
- '"instantiate_link"', 1, '"Association"', '"constraint"', '"Any"', '"Funcdef"',
|
|
|
+ '"instantiate_link"', 1, '"Association"', '"constraint"', '"Any"', '"funcdef"',
|
|
|
'"instantiate_attribute"', 1, '"constraint"', '"name"', '"constraint"',
|
|
|
'"exit"',
|
|
|
]
|
|
@@ -310,6 +310,10 @@ class TestConstructorsModels(unittest.TestCase):
|
|
|
commands = bottom + retype + action_language + bottom_attributes + conformance_check(1) + ['"return"', 'false']
|
|
|
self.assertTrue(run_barebone(commands, ["OK"], 1))
|
|
|
|
|
|
+ def test_constructors_constraints(self):
|
|
|
+ commands = bottom + retype + action_language + bottom_attributes + add_constraints + conformance_check(1) + ['"return"', 'false']
|
|
|
+ self.assertTrue(run_barebone(commands, ["OK"], 1))
|
|
|
+
|
|
|
def test_constructors_instantiate_scd(self):
|
|
|
commands = bottom + retype + bottom_attributes + instantiate_scd + conformance_check(2) + ['"return"', 'false']
|
|
|
self.assertTrue(run_barebone(commands, ["OK"], 1))
|