zuspec-arl-dm 0.1.0.15264414400rc0__cp310-cp310-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.
- zsp_arl_dm/__build_num__.py +1 -0
- zsp_arl_dm/__init__.py +22 -0
- zsp_arl_dm/__version__.py +3 -0
- zsp_arl_dm/core.cpython-310-x86_64-linux-gnu.so +0 -0
- zsp_arl_dm/core.pxd +395 -0
- zsp_arl_dm/decl.pxd +317 -0
- zsp_arl_dm/libzsp-arl-dm.so +0 -0
- zsp_arl_dm/pkginfo.py +23 -0
- zsp_arl_dm/py_val_to_val_ref.py +46 -0
- zsp_arl_dm/share/include/TypeFieldAddrClaim.cpp +39 -0
- zsp_arl_dm/share/include/TypeFieldAddrClaim.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/FactoryExt.h +6 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IAccept.h +28 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IArl.h +30 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IComponentMap.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IContext.h +443 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IContextDumper.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IContextLoader.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAction.h +43 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivity.h +37 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityBind.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityParallel.h +17 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityReplicate.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivitySchedule.h +25 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityScope.h +46 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivitySequence.h +26 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityTraverse.h +33 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityTraverseType.h +32 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrClaim.h +42 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrClaimTransparent.h +42 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrHandle.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrSpaceC.h +46 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrSpaceTransparentC.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeArlStruct.h +51 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeComponent.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeCoreLibComponent.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFlowObj.h +36 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunction.h +115 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunctionImport.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunctionParamDecl.h +53 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePackedStruct.h +48 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePureComponent.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePyObj.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeReg.h +55 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeRegGroup.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeResource.h +22 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeTransparentAddrSpace.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IFactory.h +64 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IMarker.h +56 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivity.h +39 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityBind.h +46 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityParallel.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityReplicate.h +49 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivitySchedule.h +30 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityScope.h +52 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivitySequence.h +28 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityTraverse.h +53 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelBuildContext.h +36 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelComponentTreeData.h +92 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelEvalIterator.h +72 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelEvalIteratorListener.h +62 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelEvaluator.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelExec.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldAction.h +34 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldClaim.h +43 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldComponent.h +32 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldComponentRoot.h +51 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutor.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutorClaim.h +42 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutorGroup.h +50 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldInOut.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldPool.h +38 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegGroup.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegGroupRef.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegRef.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IPoolBindDirective.h +33 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IPyImport.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IRegGroup.h +32 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IRewriteContext.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IType.h +30 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeAction.h +25 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExec.h +53 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecGroup.h +50 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecProc.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecTargetTmpl.h +59 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprMethodCallContext.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprMethodCallStatic.h +49 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPureCompMethodCall.h +50 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPyImportRef.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonFieldRef.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonMethodCall.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonModuleRef.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonSubscript.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldActivity.h +32 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldAddrClaim.h +52 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldAddrClaimTransparent.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldClaim.h +27 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldExecutor.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldExecutorClaim.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldInOut.h +27 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldMethod.h +39 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldPool.h +29 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldReg.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegGroup.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegGroupArr.h +49 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegRef.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegVec.h +52 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeModelDumper.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmt.h +43 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtAssign.h +61 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtBreak.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtContinue.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtDeclScope.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtExpr.h +44 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtForeach.h +41 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtIfClause.h +46 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtIfElse.h +53 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtMatch.h +53 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtMatchChoice.h +48 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtRepeat.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtRepeatWhile.h +46 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtReturn.h +45 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtScope.h +62 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtVarDecl.h +50 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtWhile.h +47 -0
- zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtYield.h +42 -0
- zsp_arl_dm/share/include/zsp/arl/dm/IVisitor.h +246 -0
- zsp_arl_dm/share/include/zsp/arl/dm/TypeKindE.h +23 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ContextDelegator.h +549 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/CopyVisitor.h +204 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/IsResourcePool.h +55 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ModelBuildContext.h +52 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ModelEvalIteratorListenerBase.h +60 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/RewriteVisitorBase.h +346 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskActionHasMemClaim.h +76 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskCollectTopLevelActivities.h +63 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskFindExecutor.h +69 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetExprDataType.h +84 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetSubField.h +98 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetTypeBitWidth.h +76 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsDataTypeFlowObj.h +73 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsDataTypePyObj.h +55 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsPackedStruct.h +57 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsRefGroupRef.h +60 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsTypeFieldRegGroup.h +60 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsTypeFieldRegGroupArr.h +40 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskPackStruct2Int.h +80 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskUnpackInt2Struct.h +123 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitActionTypeClaimRef.h +70 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitModelFieldClaim.h +64 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitModelFieldInOut.h +64 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefAction.h +43 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefActivity.h +63 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefActivityScope.h +51 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefPyObj.h +75 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefRegGroup.h +32 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/VisitorBase.h +456 -0
- zsp_arl_dm/share/include/zsp/arl/dm/impl/VisitorDelegator.h +356 -0
- zsp_arl_dm/share/include/zsp/arl/dm/loader.h +39 -0
- zsp_arl_dm/val_ref_to_py_val.py +58 -0
- zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/METADATA +25 -0
- zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/RECORD +166 -0
- zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/WHEEL +6 -0
- zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/entry_points.txt +2 -0
- zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/licenses/LICENSE +201 -0
- 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
|
+
|