zuspec-arl-dm 0.1.0.15264414400rc0__cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

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.
Files changed (166) hide show
  1. zsp_arl_dm/__build_num__.py +1 -0
  2. zsp_arl_dm/__init__.py +22 -0
  3. zsp_arl_dm/__version__.py +3 -0
  4. zsp_arl_dm/core.cpython-39-x86_64-linux-gnu.so +0 -0
  5. zsp_arl_dm/core.pxd +395 -0
  6. zsp_arl_dm/decl.pxd +317 -0
  7. zsp_arl_dm/libzsp-arl-dm.so +0 -0
  8. zsp_arl_dm/pkginfo.py +23 -0
  9. zsp_arl_dm/py_val_to_val_ref.py +46 -0
  10. zsp_arl_dm/share/include/TypeFieldAddrClaim.cpp +39 -0
  11. zsp_arl_dm/share/include/TypeFieldAddrClaim.h +41 -0
  12. zsp_arl_dm/share/include/zsp/arl/dm/FactoryExt.h +6 -0
  13. zsp_arl_dm/share/include/zsp/arl/dm/IAccept.h +28 -0
  14. zsp_arl_dm/share/include/zsp/arl/dm/IArl.h +30 -0
  15. zsp_arl_dm/share/include/zsp/arl/dm/IComponentMap.h +41 -0
  16. zsp_arl_dm/share/include/zsp/arl/dm/IContext.h +443 -0
  17. zsp_arl_dm/share/include/zsp/arl/dm/IContextDumper.h +47 -0
  18. zsp_arl_dm/share/include/zsp/arl/dm/IContextLoader.h +40 -0
  19. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAction.h +43 -0
  20. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivity.h +37 -0
  21. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityBind.h +45 -0
  22. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityParallel.h +17 -0
  23. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityReplicate.h +45 -0
  24. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivitySchedule.h +25 -0
  25. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityScope.h +46 -0
  26. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivitySequence.h +26 -0
  27. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityTraverse.h +33 -0
  28. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityTraverseType.h +32 -0
  29. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrClaim.h +42 -0
  30. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrClaimTransparent.h +42 -0
  31. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrHandle.h +44 -0
  32. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrSpaceC.h +46 -0
  33. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrSpaceTransparentC.h +41 -0
  34. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeArlStruct.h +51 -0
  35. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeComponent.h +40 -0
  36. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeCoreLibComponent.h +44 -0
  37. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFlowObj.h +36 -0
  38. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunction.h +115 -0
  39. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunctionImport.h +45 -0
  40. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunctionParamDecl.h +53 -0
  41. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePackedStruct.h +48 -0
  42. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePureComponent.h +41 -0
  43. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePyObj.h +41 -0
  44. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeReg.h +55 -0
  45. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeRegGroup.h +40 -0
  46. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeResource.h +22 -0
  47. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeTransparentAddrSpace.h +44 -0
  48. zsp_arl_dm/share/include/zsp/arl/dm/IFactory.h +64 -0
  49. zsp_arl_dm/share/include/zsp/arl/dm/IMarker.h +56 -0
  50. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivity.h +39 -0
  51. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityBind.h +46 -0
  52. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityParallel.h +41 -0
  53. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityReplicate.h +49 -0
  54. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivitySchedule.h +30 -0
  55. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityScope.h +52 -0
  56. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivitySequence.h +28 -0
  57. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityTraverse.h +53 -0
  58. zsp_arl_dm/share/include/zsp/arl/dm/IModelBuildContext.h +36 -0
  59. zsp_arl_dm/share/include/zsp/arl/dm/IModelComponentTreeData.h +92 -0
  60. zsp_arl_dm/share/include/zsp/arl/dm/IModelEvalIterator.h +72 -0
  61. zsp_arl_dm/share/include/zsp/arl/dm/IModelEvalIteratorListener.h +62 -0
  62. zsp_arl_dm/share/include/zsp/arl/dm/IModelEvaluator.h +41 -0
  63. zsp_arl_dm/share/include/zsp/arl/dm/IModelExec.h +40 -0
  64. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldAction.h +34 -0
  65. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldClaim.h +43 -0
  66. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldComponent.h +32 -0
  67. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldComponentRoot.h +51 -0
  68. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutor.h +41 -0
  69. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutorClaim.h +42 -0
  70. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutorGroup.h +50 -0
  71. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldInOut.h +44 -0
  72. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldPool.h +38 -0
  73. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegGroup.h +41 -0
  74. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegGroupRef.h +40 -0
  75. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegRef.h +41 -0
  76. zsp_arl_dm/share/include/zsp/arl/dm/IPoolBindDirective.h +33 -0
  77. zsp_arl_dm/share/include/zsp/arl/dm/IPyImport.h +45 -0
  78. zsp_arl_dm/share/include/zsp/arl/dm/IRegGroup.h +32 -0
  79. zsp_arl_dm/share/include/zsp/arl/dm/IRewriteContext.h +44 -0
  80. zsp_arl_dm/share/include/zsp/arl/dm/IType.h +30 -0
  81. zsp_arl_dm/share/include/zsp/arl/dm/ITypeAction.h +25 -0
  82. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExec.h +53 -0
  83. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecGroup.h +50 -0
  84. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecProc.h +44 -0
  85. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecTargetTmpl.h +59 -0
  86. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprMethodCallContext.h +45 -0
  87. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprMethodCallStatic.h +49 -0
  88. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPureCompMethodCall.h +50 -0
  89. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPyImportRef.h +44 -0
  90. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonFieldRef.h +47 -0
  91. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonMethodCall.h +47 -0
  92. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonModuleRef.h +45 -0
  93. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonSubscript.h +40 -0
  94. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldActivity.h +32 -0
  95. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldAddrClaim.h +52 -0
  96. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldAddrClaimTransparent.h +45 -0
  97. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldClaim.h +27 -0
  98. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldExecutor.h +40 -0
  99. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldExecutorClaim.h +41 -0
  100. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldInOut.h +27 -0
  101. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldMethod.h +39 -0
  102. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldPool.h +29 -0
  103. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldReg.h +47 -0
  104. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegGroup.h +40 -0
  105. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegGroupArr.h +49 -0
  106. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegRef.h +41 -0
  107. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegVec.h +52 -0
  108. zsp_arl_dm/share/include/zsp/arl/dm/ITypeModelDumper.h +47 -0
  109. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmt.h +43 -0
  110. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtAssign.h +61 -0
  111. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtBreak.h +41 -0
  112. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtContinue.h +40 -0
  113. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtDeclScope.h +44 -0
  114. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtExpr.h +44 -0
  115. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtForeach.h +41 -0
  116. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtIfClause.h +46 -0
  117. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtIfElse.h +53 -0
  118. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtMatch.h +53 -0
  119. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtMatchChoice.h +48 -0
  120. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtRepeat.h +47 -0
  121. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtRepeatWhile.h +46 -0
  122. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtReturn.h +45 -0
  123. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtScope.h +62 -0
  124. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtVarDecl.h +50 -0
  125. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtWhile.h +47 -0
  126. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtYield.h +42 -0
  127. zsp_arl_dm/share/include/zsp/arl/dm/IVisitor.h +246 -0
  128. zsp_arl_dm/share/include/zsp/arl/dm/TypeKindE.h +23 -0
  129. zsp_arl_dm/share/include/zsp/arl/dm/impl/ContextDelegator.h +549 -0
  130. zsp_arl_dm/share/include/zsp/arl/dm/impl/CopyVisitor.h +204 -0
  131. zsp_arl_dm/share/include/zsp/arl/dm/impl/IsResourcePool.h +55 -0
  132. zsp_arl_dm/share/include/zsp/arl/dm/impl/ModelBuildContext.h +52 -0
  133. zsp_arl_dm/share/include/zsp/arl/dm/impl/ModelEvalIteratorListenerBase.h +60 -0
  134. zsp_arl_dm/share/include/zsp/arl/dm/impl/RewriteVisitorBase.h +346 -0
  135. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskActionHasMemClaim.h +76 -0
  136. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskCollectTopLevelActivities.h +63 -0
  137. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskFindExecutor.h +69 -0
  138. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetExprDataType.h +84 -0
  139. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetSubField.h +98 -0
  140. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetTypeBitWidth.h +76 -0
  141. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsDataTypeFlowObj.h +73 -0
  142. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsDataTypePyObj.h +55 -0
  143. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsPackedStruct.h +57 -0
  144. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsRefGroupRef.h +60 -0
  145. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsTypeFieldRegGroup.h +60 -0
  146. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsTypeFieldRegGroupArr.h +40 -0
  147. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskPackStruct2Int.h +80 -0
  148. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskUnpackInt2Struct.h +123 -0
  149. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitActionTypeClaimRef.h +70 -0
  150. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitModelFieldClaim.h +64 -0
  151. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitModelFieldInOut.h +64 -0
  152. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefAction.h +43 -0
  153. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefActivity.h +63 -0
  154. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefActivityScope.h +51 -0
  155. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefPyObj.h +75 -0
  156. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefRegGroup.h +32 -0
  157. zsp_arl_dm/share/include/zsp/arl/dm/impl/VisitorBase.h +456 -0
  158. zsp_arl_dm/share/include/zsp/arl/dm/impl/VisitorDelegator.h +356 -0
  159. zsp_arl_dm/share/include/zsp/arl/dm/loader.h +39 -0
  160. zsp_arl_dm/val_ref_to_py_val.py +58 -0
  161. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/METADATA +25 -0
  162. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/RECORD +166 -0
  163. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/WHEEL +6 -0
  164. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/entry_points.txt +2 -0
  165. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/licenses/LICENSE +201 -0
  166. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,346 @@
1
+ /**
2
+ * RewriteVisitorBase.h
3
+ *
4
+ * Copyright 2022 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "vsc/dm/impl/RewriteVisitorBase.h"
23
+ #include "zsp/arl/dm/IVisitor.h"
24
+ #include "zsp/arl/dm/IDataTypeAction.h"
25
+ #include "zsp/arl/dm/IDataTypeActivityBind.h"
26
+ #include "zsp/arl/dm/IDataTypeActivityParallel.h"
27
+ #include "zsp/arl/dm/IDataTypeActivityReplicate.h"
28
+ #include "zsp/arl/dm/IDataTypeActivitySchedule.h"
29
+ #include "zsp/arl/dm/IDataTypeActivitySequence.h"
30
+ #include "zsp/arl/dm/IDataTypeActivityTraverse.h"
31
+ #include "zsp/arl/dm/IDataTypeComponent.h"
32
+ #include "zsp/arl/dm/IDataTypeFlowObj.h"
33
+ #include "zsp/arl/dm/IDataTypeFunction.h"
34
+ #include "zsp/arl/dm/IDataTypeFunctionParamDecl.h"
35
+ #include "zsp/arl/dm/IDataTypeResource.h"
36
+ #include "zsp/arl/dm/IModelActivityBind.h"
37
+ #include "zsp/arl/dm/IModelActivityParallel.h"
38
+ #include "zsp/arl/dm/IModelActivityReplicate.h"
39
+ #include "zsp/arl/dm/IModelActivitySchedule.h"
40
+ #include "zsp/arl/dm/IModelActivityScope.h"
41
+ #include "zsp/arl/dm/IModelActivitySequence.h"
42
+ #include "zsp/arl/dm/IModelActivityTraverse.h"
43
+ #include "zsp/arl/dm/IModelFieldAction.h"
44
+ #include "zsp/arl/dm/IModelFieldClaim.h"
45
+ #include "zsp/arl/dm/IModelFieldComponent.h"
46
+ #include "zsp/arl/dm/IModelFieldComponentRoot.h"
47
+ #include "zsp/arl/dm/IModelFieldExecutor.h"
48
+ #include "zsp/arl/dm/IModelFieldExecutorClaim.h"
49
+ #include "zsp/arl/dm/IModelFieldInOut.h"
50
+ #include "zsp/arl/dm/IModelFieldPool.h"
51
+ #include "zsp/arl/dm/IVisitor.h"
52
+ #include "zsp/arl/dm/ITypeExprMethodCallContext.h"
53
+ #include "zsp/arl/dm/ITypeExprMethodCallStatic.h"
54
+ #include "zsp/arl/dm/ITypeExecProc.h"
55
+ #include "zsp/arl/dm/ITypeFieldActivity.h"
56
+ #include "zsp/arl/dm/ITypeFieldClaim.h"
57
+ #include "zsp/arl/dm/ITypeFieldExecutor.h"
58
+ #include "zsp/arl/dm/ITypeFieldExecutorClaim.h"
59
+ #include "zsp/arl/dm/ITypeFieldInOut.h"
60
+ #include "zsp/arl/dm/ITypeFieldPool.h"
61
+ #include "zsp/arl/dm/ITypeProcStmtAssign.h"
62
+ #include "zsp/arl/dm/ITypeProcStmtBreak.h"
63
+ #include "zsp/arl/dm/ITypeProcStmtContinue.h"
64
+ #include "zsp/arl/dm/ITypeProcStmtExpr.h"
65
+ #include "zsp/arl/dm/ITypeProcStmtForeach.h"
66
+ #include "zsp/arl/dm/ITypeProcStmtIfElse.h"
67
+ #include "zsp/arl/dm/ITypeProcStmtMatch.h"
68
+ #include "zsp/arl/dm/ITypeProcStmtRepeat.h"
69
+ #include "zsp/arl/dm/ITypeProcStmtRepeatWhile.h"
70
+ #include "zsp/arl/dm/ITypeProcStmtReturn.h"
71
+ #include "zsp/arl/dm/ITypeProcStmtScope.h"
72
+ #include "zsp/arl/dm/ITypeProcStmtVarDecl.h"
73
+ #include "zsp/arl/dm/ITypeProcStmtWhile.h"
74
+
75
+
76
+ namespace zsp {
77
+ namespace arl {
78
+ namespace dm {
79
+
80
+
81
+ class RewriteVisitorBase :
82
+ public virtual IVisitor,
83
+ public virtual vsc::dm::RewriteVisitorBase {
84
+ public:
85
+ RewriteVisitorBase() { }
86
+
87
+ virtual ~RewriteVisitorBase() { }
88
+
89
+ virtual void visitDataTypeAction(IDataTypeAction *i) override {
90
+ m_this->visitDataTypeStruct(i);
91
+ for (std::vector<ITypeFieldActivity *>::const_iterator
92
+ it=i->activities().begin();
93
+ it!=i->activities().end(); it++) {
94
+ (*it)->accept(m_this);
95
+ }
96
+ }
97
+
98
+ virtual void visitDataTypeActivityBind(IDataTypeActivityBind *t) override {
99
+ for (std::vector<vsc::dm::ITypeExprFieldRefUP>::const_iterator
100
+ it=t->getTargets().begin();
101
+ it!=t->getTargets().end(); it++) {
102
+ (*it)->accept(m_this);
103
+ }
104
+ }
105
+
106
+ virtual void visitDataTypeActivityParallel(IDataTypeActivityParallel *t) override {
107
+ m_this->visitDataTypeStruct(t);
108
+ }
109
+
110
+ virtual void visitDataTypeActivityReplicate(IDataTypeActivityReplicate *t) override {
111
+ t->getCount()->accept(m_this);
112
+ m_this->visitDataTypeStruct(t);
113
+ }
114
+
115
+ virtual void visitDataTypeActivitySchedule(IDataTypeActivitySchedule *t) override {
116
+ m_this->visitDataTypeStruct(t);
117
+ }
118
+
119
+ virtual void visitDataTypeActivitySequence(IDataTypeActivitySequence *t) override {
120
+ m_this->visitDataTypeStruct(t);
121
+ }
122
+
123
+ virtual void visitDataTypeActivityTraverse(IDataTypeActivityTraverse *t) override { }
124
+
125
+ virtual void visitDataTypeComponent(IDataTypeComponent *t) override {
126
+ m_this->visitDataTypeStruct(t);
127
+ }
128
+
129
+ virtual void visitDataTypeFlowObj(IDataTypeFlowObj *t) override {
130
+ m_this->visitDataTypeStruct(t);
131
+ }
132
+
133
+ virtual void visitDataTypeFunction(IDataTypeFunction *t) override {
134
+
135
+ }
136
+
137
+ virtual void visitDataTypeFunctionParamDecl(IDataTypeFunctionParamDecl *t) override {
138
+ t->getDataType()->accept(m_this);
139
+ if (t->getInit()) {
140
+ t->getInit()->accept(m_this);
141
+ }
142
+ }
143
+
144
+ virtual void visitDataTypeResource(IDataTypeResource *t) override {
145
+ visitDataTypeFlowObj(t);
146
+ }
147
+
148
+ virtual void visitModelActivityBind(IModelActivityBind *a) override {
149
+ for (std::vector<vsc::dm::IModelExprUP>::const_iterator
150
+ it=a->getTargets().begin();
151
+ it!=a->getTargets().end(); it++) {
152
+ (*it)->accept(m_this);
153
+ }
154
+ }
155
+
156
+ virtual void visitModelActivityParallel(IModelActivityParallel *a) override {
157
+ for (std::vector<IModelActivity *>::const_iterator
158
+ it=a->branches().begin();
159
+ it!=a->branches().end(); it++) {
160
+ (*it)->accept(m_this);
161
+ }
162
+ }
163
+
164
+ virtual void visitModelActivityReplicate(IModelActivityReplicate *a) override {
165
+ a->getCountExpr()->accept(m_this);
166
+ visitModelActivityScope(a);
167
+ }
168
+
169
+ virtual void visitModelActivitySchedule(IModelActivitySchedule *a) override {
170
+ for (std::vector<IModelActivity *>::const_iterator
171
+ it=a->activities().begin();
172
+ it!=a->activities().end(); it++) {
173
+ (*it)->accept(m_this);
174
+ }
175
+ }
176
+
177
+ virtual void visitModelActivityScope(IModelActivityScope *a) override {
178
+ for (std::vector<IModelActivity *>::const_iterator
179
+ it=a->activities().begin();
180
+ it!=a->activities().end(); it++) {
181
+ (*it)->accept(m_this);
182
+ }
183
+ }
184
+
185
+ virtual void visitModelActivitySequence(IModelActivitySequence *a) override {
186
+ for (std::vector<IModelActivity *>::const_iterator
187
+ it=a->activities().begin();
188
+ it!=a->activities().end(); it++) {
189
+ (*it)->accept(m_this);
190
+ }
191
+ }
192
+
193
+ virtual void visitModelActivityTraverse(IModelActivityTraverse *a) override {
194
+ a->getTarget()->accept(m_this);
195
+ if (a->getWithC()) {
196
+ a->getWithC()->accept(m_this);
197
+ }
198
+ }
199
+
200
+ virtual void visitModelFieldAction(IModelFieldAction *f) override {
201
+ m_this->visitModelField(f);
202
+ if (f->getActivity()) {
203
+ f->getActivity()->accept(m_this);
204
+ }
205
+ }
206
+
207
+ virtual void visitModelFieldClaim(IModelFieldClaim *f) override { }
208
+
209
+ virtual void visitModelFieldComponent(IModelFieldComponent *f) override {
210
+ m_this->visitModelField(f);
211
+ }
212
+
213
+ virtual void visitModelFieldComponentRoot(IModelFieldComponentRoot *f) override {
214
+ visitModelFieldComponent(f);
215
+ }
216
+
217
+ virtual void visitModelFieldExecutor(IModelFieldExecutor *f) override {
218
+ m_this->visitModelField(f);
219
+ }
220
+
221
+ virtual void visitModelFieldExecutorClaim(IModelFieldExecutorClaim *f) override {
222
+ m_this->visitModelFieldRef(f);
223
+ }
224
+
225
+ virtual void visitModelFieldInOut(IModelFieldInOut *f) override { }
226
+
227
+ virtual void visitModelFieldPool(IModelFieldPool *f) override {
228
+ m_this->visitModelField(f);
229
+ }
230
+
231
+ virtual void visitTypeExprMethodCallContext(ITypeExprMethodCallContext *e) override {
232
+ visitTypeExprMethodCallStatic(e);
233
+ e->getContext()->accept(m_this);
234
+ }
235
+
236
+ virtual void visitTypeExprMethodCallStatic(ITypeExprMethodCallStatic *e) override {
237
+ e->getTarget()->accept(m_this);
238
+ }
239
+
240
+ virtual void visitTypeExec(ITypeExec *e) override { }
241
+
242
+ virtual void visitTypeExecProc(ITypeExecProc *e) override {
243
+ dynamic_cast<IVisitor *>(m_this)->visitTypeExec(e);
244
+ e->getBody()->accept(m_this);
245
+ }
246
+
247
+ virtual void visitTypeFieldActivity(ITypeFieldActivity *f) override {
248
+ m_this->visitTypeField(f);
249
+ }
250
+
251
+ virtual void visitTypeFieldClaim(ITypeFieldClaim *f) override {
252
+ m_this->visitTypeFieldRef(f);
253
+ }
254
+
255
+ virtual void visitTypeFieldExecutor(ITypeFieldExecutor *f) override {
256
+ m_this->visitTypeField(f);
257
+ }
258
+
259
+ virtual void visitTypeFieldExecutorClaim(ITypeFieldExecutorClaim *f) override {
260
+ m_this->visitTypeFieldRef(f);
261
+ }
262
+
263
+ virtual void visitTypeFieldInOut(ITypeFieldInOut *f) override {
264
+ m_this->visitTypeFieldRef(f);
265
+ }
266
+
267
+ virtual void visitTypeFieldPool(ITypeFieldPool *f) override {
268
+ m_this->visitTypeField(f);
269
+ }
270
+
271
+ virtual void visitTypeProcStmtAssign(ITypeProcStmtAssign *s) override {
272
+ s->getLhs()->accept(m_this);
273
+ s->getRhs()->accept(m_this);
274
+ }
275
+
276
+ virtual void visitTypeProcStmtBreak(ITypeProcStmtBreak *s) override {
277
+
278
+ }
279
+
280
+ virtual void visitTypeProcStmtContinue(ITypeProcStmtContinue *s) override {
281
+
282
+ }
283
+
284
+ virtual void visitTypeProcStmtExpr(ITypeProcStmtExpr *s) override {
285
+ s->getExpr()->accept(m_this);
286
+ }
287
+
288
+ virtual void visitTypeProcStmtForeach(ITypeProcStmtForeach *s) override {
289
+
290
+ }
291
+
292
+ virtual void visitTypeProcStmtIfElse(ITypeProcStmtIfElse *s) override {
293
+ s->getCond()->accept(m_this);
294
+ s->getTrue()->accept(m_this);
295
+ if (s->getFalse()) {
296
+ s->getFalse()->accept(m_this);
297
+ }
298
+ }
299
+
300
+ virtual void visitTypeProcStmtMatch(ITypeProcStmtMatch *s) override {
301
+ s->getCond()->accept(m_this);
302
+ }
303
+
304
+ virtual void visitTypeProcStmtRepeat(ITypeProcStmtRepeat *s) override {
305
+ s->getExpr()->accept(m_this);
306
+ s->getBody()->accept(m_this);
307
+ }
308
+
309
+ virtual void visitTypeProcStmtRepeatWhile(ITypeProcStmtRepeatWhile *s) override {
310
+ s->getExpr()->accept(m_this);
311
+ s->getBody()->accept(m_this);
312
+ }
313
+
314
+ virtual void visitTypeProcStmtReturn(ITypeProcStmtReturn *s) override {
315
+ if (s->getExpr()) {
316
+ s->getExpr()->accept(m_this);
317
+ }
318
+ }
319
+
320
+ virtual void visitTypeProcStmtScope(ITypeProcStmtScope *s) override {
321
+ for (std::vector<ITypeProcStmtUP>::const_iterator
322
+ it=s->getStatements().begin();
323
+ it!=s->getStatements().end(); it++) {
324
+ (*it)->accept(m_this);
325
+ }
326
+ }
327
+
328
+ virtual void visitTypeProcStmtVarDecl(ITypeProcStmtVarDecl *s) override {
329
+ s->getDataType()->accept(m_this);
330
+ if (s->getInit()) {
331
+ s->getInit()->accept(m_this);
332
+ }
333
+ }
334
+
335
+ virtual void visitTypeProcStmtWhile(ITypeProcStmtWhile *s) override {
336
+ s->getExpr()->accept(m_this);
337
+ s->getBody()->accept(m_this);
338
+ }
339
+
340
+ };
341
+
342
+ }
343
+ }
344
+ }
345
+
346
+
@@ -0,0 +1,76 @@
1
+ /**
2
+ * TaskActionHasMemClaim.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+
30
+ class TaskActionHasMemClaim :
31
+ public virtual VisitorBase {
32
+ public:
33
+
34
+ TaskActionHasMemClaim() { };
35
+
36
+ virtual ~TaskActionHasMemClaim() { }
37
+
38
+ bool check(IDataTypeAction *a) {
39
+ m_has = false;
40
+ m_depth = 0;
41
+ a->accept(m_this);
42
+ return m_has;
43
+ }
44
+
45
+ virtual void visitDataTypeAction(IDataTypeAction *t) {
46
+ if (m_depth == 0) {
47
+ m_depth++;
48
+ for (std::vector<vsc::dm::ITypeFieldUP>::const_iterator
49
+ it=t->getFields().begin();
50
+ it!=t->getFields().end(); it++) {
51
+ (*it)->accept(m_this);
52
+ }
53
+ m_depth--;
54
+ }
55
+ }
56
+
57
+ virtual void visitTypeFieldAddrClaim(ITypeFieldAddrClaim *t) {
58
+ m_has = true;
59
+ }
60
+
61
+ virtual void visitTypeFieldAddrClaimTransparent(ITypeFieldAddrClaimTransparent *t) {
62
+ m_has = true;
63
+ }
64
+
65
+
66
+ private:
67
+ int32_t m_depth;
68
+ bool m_has;
69
+
70
+ };
71
+
72
+ } /* namespace dm */
73
+ } /* namespace arl */
74
+ } /* namespace zsp */
75
+
76
+
@@ -0,0 +1,63 @@
1
+
2
+ #pragma once
3
+ #include "dmgr/impl/DebugMacros.h"
4
+ #include "zsp/arl/dm/impl/VisitorBase.h"
5
+
6
+ namespace zsp {
7
+ namespace arl {
8
+ namespace dm {
9
+
10
+
11
+ class TaskCollectTopLevelActivities : public virtual VisitorBase {
12
+ public:
13
+
14
+ TaskCollectTopLevelActivities() {
15
+ // DEBUG_INIT("TaskCollectTopLevelActivities");
16
+ m_activities = 0;
17
+ m_dbg = 0;
18
+ }
19
+
20
+ virtual ~TaskCollectTopLevelActivities() { }
21
+
22
+ void collect(
23
+ std::vector<IModelActivity *> &activities,
24
+ IModelActivity *activity) {
25
+ DEBUG_ENTER("collect");
26
+ m_activities = &activities;
27
+
28
+ activity->accept(m_this);
29
+ DEBUG_LEAVE("collect %d", activities.size());
30
+ }
31
+
32
+ virtual void visitModelActivityParallel(IModelActivityParallel *a) override {
33
+ DEBUG_ENTER("visitModelActivityParallel");
34
+ m_activities->push_back(a);
35
+ DEBUG_LEAVE("visitModelActivityParallel");
36
+ }
37
+
38
+ virtual void visitModelActivitySchedule(IModelActivitySchedule *a) override {
39
+ DEBUG_ENTER("visitModelActivitySchedule");
40
+ m_activities->push_back(a);
41
+ DEBUG_LEAVE("visitModelActivitySchedule");
42
+ }
43
+
44
+ virtual void visitModelActivitySequence(IModelActivitySequence *a) override {
45
+ DEBUG_ENTER("visitModelActivitySequence");
46
+ VisitorBase::visitModelActivitySequence(a);
47
+ DEBUG_LEAVE("visitModelActivitySequence");
48
+ }
49
+
50
+ virtual void visitModelActivityTraverse(IModelActivityTraverse *a) override {
51
+ DEBUG_ENTER("visitModelActivityTraverse");
52
+ m_activities->push_back(a);
53
+ DEBUG_LEAVE("visitModelActivityTraverse");
54
+ }
55
+
56
+ private:
57
+ dmgr::IDebug *m_dbg;
58
+ std::vector<IModelActivity *> *m_activities;
59
+ };
60
+
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * TaskFindExecutor.h
3
+ *
4
+ * Copyright 2022 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/IModelFieldExecutor.h"
23
+ #include "zsp/arl/dm/impl/VisitorBase.h"
24
+
25
+ namespace zsp {
26
+ namespace arl {
27
+ namespace dm {
28
+
29
+
30
+
31
+
32
+ class TaskFindExecutor : public VisitorBase {
33
+ public:
34
+
35
+ TaskFindExecutor() : m_executor(0) { }
36
+
37
+ virtual ~TaskFindExecutor() { }
38
+
39
+ IModelFieldExecutor *find(vsc::dm::IModelField *f) {
40
+ m_executor = 0;
41
+ m_depth = 0;
42
+ f->accept(m_this);
43
+ return m_executor;
44
+ }
45
+
46
+ virtual void visitModelField(vsc::dm::IModelField *f) override {
47
+ // Block from recursing
48
+ if (!m_depth) {
49
+ m_depth++;
50
+ VisitorBase::visitModelField(f);
51
+ m_depth--;
52
+ }
53
+ }
54
+
55
+ virtual void visitModelFieldExecutorClaim(IModelFieldExecutorClaim *f) override {
56
+ m_executor = dynamic_cast<IModelFieldExecutor *>(f->getRef());
57
+ }
58
+
59
+ private:
60
+ IModelFieldExecutor *m_executor;
61
+ uint32_t m_depth;
62
+
63
+ };
64
+
65
+ }
66
+ }
67
+ }
68
+
69
+
@@ -0,0 +1,84 @@
1
+ /**
2
+ * TaskGetExprDataType.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/IContext.h"
23
+ #include "zsp/arl/dm/impl/VisitorBase.h"
24
+
25
+ namespace zsp {
26
+ namespace arl {
27
+ namespace dm {
28
+
29
+
30
+
31
+ class TaskGetExprDataType :
32
+ public virtual arl::dm::VisitorBase {
33
+ public:
34
+
35
+ TaskGetExprDataType(IContext *ctxt) : m_ctxt(ctxt) { }
36
+
37
+ virtual ~TaskGetExprDataType() { }
38
+
39
+ vsc::dm::IDataType *get_type(vsc::dm::ITypeExpr *e) {
40
+ m_type = 0;
41
+ e->accept(m_this);
42
+ return m_type;
43
+ }
44
+
45
+ virtual void visitTypeExprBin(vsc::dm::ITypeExprBin *e) {
46
+ switch (e->op()) {
47
+ case vsc::dm::BinOp::Eq:
48
+ case vsc::dm::BinOp::Ne:
49
+ case vsc::dm::BinOp::Gt:
50
+ case vsc::dm::BinOp::Ge:
51
+ case vsc::dm::BinOp::Lt:
52
+ case vsc::dm::BinOp::Le:
53
+ m_type = m_ctxt->getDataTypeCore(vsc::dm::DataTypeCoreE::Bool);
54
+ break;
55
+ case vsc::dm::BinOp::Add:
56
+ case vsc::dm::BinOp::Sub:
57
+ case vsc::dm::BinOp::Div:
58
+ case vsc::dm::BinOp::Mul:
59
+ case vsc::dm::BinOp::Mod:
60
+ case vsc::dm::BinOp::BinAnd:
61
+ case vsc::dm::BinOp::BinOr:
62
+ case vsc::dm::BinOp::BinXor:
63
+ case vsc::dm::BinOp::LogAnd:
64
+ case vsc::dm::BinOp::LogOr:
65
+ case vsc::dm::BinOp::LogXor:
66
+ case vsc::dm::BinOp::Sll:
67
+ case vsc::dm::BinOp::Srl:
68
+ e->lhs()->accept(m_this);
69
+ break;
70
+ }
71
+ }
72
+
73
+
74
+ private:
75
+ IContext *m_ctxt;
76
+ vsc::dm::IDataType *m_type;
77
+
78
+ };
79
+
80
+ } /* namespace dm */
81
+ } /* namespace arl */
82
+ } /* namespace zsp */
83
+
84
+