scrall 0.8.8__tar.gz → 0.8.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scrall might be problematic. Click here for more details.
- {scrall-0.8.8/src/scrall.egg-info → scrall-0.8.10}/PKG-INFO +1 -1
- {scrall-0.8.8 → scrall-0.8.10}/pyproject.toml +1 -1
- scrall-0.8.10/src/scrall/__init__.py +1 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/parse/scrall.peg +3 -2
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/parse/visitor.py +27 -10
- {scrall-0.8.8 → scrall-0.8.10/src/scrall.egg-info}/PKG-INFO +1 -1
- {scrall-0.8.8 → scrall-0.8.10}/tests/test_delete.py +2 -2
- {scrall-0.8.8 → scrall-0.8.10}/tests/test_ping_actions.py +2 -2
- {scrall-0.8.8 → scrall-0.8.10}/tests/test_signals.py +2 -2
- {scrall-0.8.8 → scrall-0.8.10}/tests/test_state_actions.py +2 -2
- scrall-0.8.8/src/scrall/__init__.py +0 -1
- {scrall-0.8.8 → scrall-0.8.10}/LICENSE +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/MANIFEST.in +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/README.md +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/setup.cfg +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/__main__.py +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/exceptions.py +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/log.conf +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/parse/__init__.py +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall/parse/parser.py +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall.egg-info/SOURCES.txt +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall.egg-info/dependency_links.txt +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall.egg-info/entry_points.txt +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall.egg-info/requires.txt +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/src/scrall.egg-info/top_level.txt +0 -0
- {scrall-0.8.8 → scrall-0.8.10}/tests/test_selection.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "scrall"
|
|
7
|
-
version = "0.8.
|
|
7
|
+
version = "0.8.10"
|
|
8
8
|
description = "Starr's Concise Relational Action Language - For Shlaer-Mellor Executable UML"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Leon Starr", email = "leon_starr@modelint.com" }]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "0.8.10"
|
|
@@ -61,10 +61,11 @@ DECISION_OP = '?'
|
|
|
61
61
|
signal_action = signal_spec SP+ (signal_dest / ee_dest / SIGNAL_OP / ASYNCH)
|
|
62
62
|
// SIGNAL_OP only destination means: copy dest from false result of decision action
|
|
63
63
|
signal_spec = name supplied_params?
|
|
64
|
-
signal_dest = SIGNAL_OP LINEWRAP? SP? instance_set
|
|
64
|
+
signal_dest = SIGNAL_OP LINEWRAP? SP? (assigner / instance_set) (SP+ delay)?
|
|
65
|
+
assigner = rnum assigner_partition?
|
|
65
66
|
ee_dest = ASYNCH LINEWRAP? SP? name
|
|
66
67
|
delay = DELAY_OP SP* scalar_expr
|
|
67
|
-
assigner_partition = '
|
|
68
|
+
assigner_partition = '( ' instance_set ' )'
|
|
68
69
|
DELAY_OP = '@'
|
|
69
70
|
SIGNAL_OP = '->'
|
|
70
71
|
ASYNCH = '=>'
|
|
@@ -22,15 +22,16 @@ Inst_Assignment_a = namedtuple('Inst_Assignment_a', 'lhs card rhs X')
|
|
|
22
22
|
EE_Signal_a = namedtuple('EE_Signal_a', 'event supplied_params ee')
|
|
23
23
|
Signal_a = namedtuple('Signal_a', 'event supplied_params dest')
|
|
24
24
|
"""Signal sent to trigger event at destination with optional supplied parameters"""
|
|
25
|
-
Signal_Action_a = namedtuple('Signal_Action_a', 'event supplied_params dest delay
|
|
26
|
-
Signal_Dest_a = namedtuple('Signal_Dest_a', 'target_iset
|
|
25
|
+
Signal_Action_a = namedtuple('Signal_Action_a', 'event supplied_params dest delay')
|
|
26
|
+
Signal_Dest_a = namedtuple('Signal_Dest_a', 'target_iset assigner_dest delay')
|
|
27
|
+
Assigner_Dest_a = namedtuple('Assigner_Dest_a', 'rnum partition')
|
|
27
28
|
Signal_Choice_a = namedtuple('Signal_Choice_a', 'decision true_signal false_signal')
|
|
28
29
|
Sequence_Token_a = namedtuple('Sequence_Token_a', 'name')
|
|
29
30
|
Execution_Unit_a = namedtuple('Execution_Unit_a', 'statement_set output_token')
|
|
30
31
|
Seq_Statement_Set_a = namedtuple('Seq_Statement_Set_a', 'input_tokens statement block')
|
|
31
32
|
Comp_Statement_Set_a = namedtuple('Comp_Statement_Set_a', 'statement block')
|
|
32
33
|
Decision_a = namedtuple('Decision_a', 'input true_result false_result')
|
|
33
|
-
|
|
34
|
+
Delete_Group_a = namedtuple('Delete_Group_a', 'instance_sets')
|
|
34
35
|
Case_a = namedtuple('Case_a', 'enums comp_statement_set')
|
|
35
36
|
Switch_a = namedtuple('Switch_a', 'input_flow cases')
|
|
36
37
|
MATH_a = namedtuple('MATH_a', 'op operands')
|
|
@@ -706,16 +707,32 @@ class ScrallVisitor(PTNodeVisitor):
|
|
|
706
707
|
def visit_signal_dest(cls, node, children):
|
|
707
708
|
"""
|
|
708
709
|
"""
|
|
709
|
-
_logger.info("
|
|
710
|
+
_logger.info("signal_dest = SIGNAL_OP LINEWRAP? SP? (assigner / instance_set) (SP+ delay)?")
|
|
710
711
|
_logger.info(f' :: {node.value}')
|
|
711
712
|
|
|
712
713
|
_logger.info(f" < {children}")
|
|
713
|
-
iset = children
|
|
714
|
-
|
|
715
|
-
|
|
714
|
+
iset = children.results.get('instance_set')
|
|
715
|
+
iset = iset[0] if iset else None
|
|
716
|
+
assigner = children.results.get('assigner')
|
|
717
|
+
assigner = assigner[0] if assigner else None
|
|
716
718
|
delay = children.results.get('delay')
|
|
717
719
|
delay = 0 if not delay else delay[0]
|
|
718
|
-
result = Signal_Dest_a(target_iset=iset,
|
|
720
|
+
result = Signal_Dest_a(target_iset=iset, assigner_dest=assigner, delay=delay)
|
|
721
|
+
_logger.info(f" > {result}")
|
|
722
|
+
return result
|
|
723
|
+
|
|
724
|
+
@classmethod
|
|
725
|
+
def visit_assigner(cls, node, children):
|
|
726
|
+
"""
|
|
727
|
+
An instance set that partitions an assigner
|
|
728
|
+
"""
|
|
729
|
+
_logger.info("assigner = rnum assigner_partition?")
|
|
730
|
+
_logger.info(f' :: {node.value}')
|
|
731
|
+
|
|
732
|
+
_logger.info(f" < {children}")
|
|
733
|
+
rnum = children.results.get('rnum')
|
|
734
|
+
ap = children.results.get('assigner_partition')
|
|
735
|
+
result = Assigner_Dest_a(rnum=rnum[0], partition=ap[0] if ap else None)
|
|
719
736
|
_logger.info(f" > {result}")
|
|
720
737
|
return result
|
|
721
738
|
|
|
@@ -724,7 +741,7 @@ class ScrallVisitor(PTNodeVisitor):
|
|
|
724
741
|
"""
|
|
725
742
|
An instance set that partitions an assigner
|
|
726
743
|
"""
|
|
727
|
-
_logger.info("assigner_partition = '(' instance_set ')'")
|
|
744
|
+
_logger.info("assigner_partition = '( ' instance_set ' )'")
|
|
728
745
|
_logger.info(f' :: {node.value}')
|
|
729
746
|
|
|
730
747
|
_logger.info(f" < {children}")
|
|
@@ -1082,7 +1099,7 @@ class ScrallVisitor(PTNodeVisitor):
|
|
|
1082
1099
|
|
|
1083
1100
|
_logger.info(f" < {children}")
|
|
1084
1101
|
iset = children.results.get('instance_set')
|
|
1085
|
-
result =
|
|
1102
|
+
result = Delete_Group_a(instance_sets=iset)
|
|
1086
1103
|
_logger.info(f" > {result}")
|
|
1087
1104
|
return result
|
|
1088
1105
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
from scrall.parse.parser import ScrallParser
|
|
5
|
-
from scrall.parse.visitor import Execution_Unit_a, N_a, INST_a, PATH_a, R_a, Seq_Statement_Set_a,
|
|
5
|
+
from scrall.parse.visitor import Execution_Unit_a, N_a, INST_a, PATH_a, R_a, Seq_Statement_Set_a, Delete_Group_a
|
|
6
6
|
|
|
7
7
|
actions = [
|
|
8
8
|
("!* siamese, /R1/Cat",
|
|
9
9
|
Execution_Unit_a(statement_set=Seq_Statement_Set_a(
|
|
10
|
-
input_tokens=[], statement=
|
|
10
|
+
input_tokens=[], statement=Delete_Group_a(
|
|
11
11
|
instance_sets=[N_a(name='siamese'),
|
|
12
12
|
INST_a(components=[PATH_a(hops=[R_a(rnum='R1'),
|
|
13
13
|
N_a(name='Cat')])])]), block=None), output_token=None)
|
|
@@ -49,7 +49,7 @@ actions = [
|
|
|
49
49
|
[Supplied_Parameter_a(pname='new dest', sval=IN_a(name='new dest'))]],
|
|
50
50
|
dest=Signal_Dest_a(target_iset=
|
|
51
51
|
INST_a(components=[PATH_a(hops=[R_a(rnum='R53'), N_a(name='Cabin')])]),
|
|
52
|
-
|
|
52
|
+
assigner_dest=None, delay=0)),
|
|
53
53
|
block=None), output_token=None)
|
|
54
54
|
),
|
|
55
55
|
("TRAN.Go to floor( Dest floor: ^new dest, Shaft )",
|
|
@@ -64,7 +64,7 @@ actions = [
|
|
|
64
64
|
Execution_Unit_a(statement_set=Seq_Statement_Set_a(input_tokens=[],
|
|
65
65
|
statement=Signal_a(event='Change requested', supplied_params=[],
|
|
66
66
|
dest=Signal_Dest_a(target_iset=N_a(name='ME'),
|
|
67
|
-
|
|
67
|
+
assigner_dest=None, delay=0)),
|
|
68
68
|
block=None), output_token=None)
|
|
69
69
|
),
|
|
70
70
|
("shaft aslevs ..= /R2/R28/Shaft Level/R3/Accessible Shaft Level",
|
|
@@ -10,7 +10,7 @@ actions = [
|
|
|
10
10
|
Execution_Unit_a(statement_set=Seq_Statement_Set_a(input_tokens=[],
|
|
11
11
|
statement=Signal_a(event='Change requested', supplied_params=[],
|
|
12
12
|
dest=Signal_Dest_a(target_iset=N_a(name='ME'),
|
|
13
|
-
|
|
13
|
+
assigner_dest=None, delay=0)),
|
|
14
14
|
block=None), output_token=None)
|
|
15
15
|
),
|
|
16
16
|
("Ready to go -> /R53/Transfer",
|
|
@@ -18,7 +18,7 @@ actions = [
|
|
|
18
18
|
statement=Signal_a(event='Ready to go', supplied_params=[], dest=Signal_Dest_a(
|
|
19
19
|
target_iset=INST_a(
|
|
20
20
|
components=[PATH_a(hops=[R_a(rnum='R53'), N_a(name='Transfer')])]),
|
|
21
|
-
|
|
21
|
+
assigner_dest=None, delay=0)),
|
|
22
22
|
block=None), output_token=None)
|
|
23
23
|
),
|
|
24
24
|
]
|
|
@@ -23,7 +23,7 @@ actions = [
|
|
|
23
23
|
true_result=Comp_Statement_Set_a(statement=
|
|
24
24
|
Signal_a(event='Take out of service', supplied_params=[],
|
|
25
25
|
dest=Signal_Dest_a(target_iset=N_a(name='ME'),
|
|
26
|
-
|
|
26
|
+
assigner_dest=None, delay=0)), block=None),
|
|
27
27
|
false_result=None),
|
|
28
28
|
block=None), output_token=None)
|
|
29
29
|
),
|
|
@@ -36,7 +36,7 @@ actions = [
|
|
|
36
36
|
true_result=Comp_Statement_Set_a(statement=
|
|
37
37
|
Signal_a(event='Take out of service', supplied_params=[],
|
|
38
38
|
dest=Signal_Dest_a(target_iset=N_a(name='ME'),
|
|
39
|
-
|
|
39
|
+
assigner_dest=None, delay=0)), block=None),
|
|
40
40
|
false_result=None),
|
|
41
41
|
block=None), output_token=None))]
|
|
42
42
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "0.8.8"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|