|
WSF
|
#include <WsfPProxySatisfy.hpp>

Classes | |
| struct | SatPoint |
| struct | SatisfyResult |
| struct | EquationExpr |
| struct | Equation |
| Represents an assignment being made in a grammar action. More... | |
| struct | SolveResult |
Public Types | |
| enum | SatMode { cSM_NONE , cSM_TARGET , cSM_FIX } |
| enum | SatisfyResultEnum { cNOT_SATISFIABLE = 0 , cSATISFIABLE = 1 , cADDS_VALUE = 2 , cCHANGED_TARGET = 4 , cSUCCESS = cADDS_VALUE | cSATISFIABLE , cSUCCESS_COMPLETE = cCHANGED_TARGET | cSUCCESS } |
| enum | TypeLoadLookupResult { cTL_SUCCESS , cTL_COLLISION , cTL_LOADFAIL , cTL_FAILURE } |
Public Attributes | |
| WsfPProxyValue | mDesiredRoot |
| WsfPProxyRegistry * | mRegistryPtr |
| ProxyEvaluator | mEvaluator |
| WsfPParseRuleTrace * | mTracePtr |
| WsfPParseRuleTracer * | mTracerPtr |
| bool | mRecurrenceInsertBeforeEnd |
| std::set< const WsfPProxyType * > | mTypesThatNeedToBeCleared |
| std::set< void * > | mAttemptedToClear |
| SatMode | mSatMode |
| WsfPProxyPath | mTargetPath |
| WsfPProxyUndoValue | mCurrentRoot |
| std::ofstream | debugOutput |
| WsfPProxySatisfy::WsfPProxySatisfy | ( | WsfPProxyRegistry * | aRegistryPtr, |
| WsfPProxyValue | aDesiredRootValue, | ||
| WsfPProxyUndoValue | aCurrentRootValue, | ||
| WsfPParseRuleTracer * | aTracerPtr ) |
| WsfPProxySatisfy::~WsfPProxySatisfy | ( | ) |
| int WsfPProxySatisfy::ApplyEquations | ( | size_t | aActionSetIndex, |
| size_t & | aNextEquation, | ||
| std::vector< Equation > & | aEquations, | ||
| WsfPProxyUndoValue & | aCurrentValue, | ||
| WsfPProxyValue | aDesiredValue ) |
References WsfPProxyUndoValue::Assign(), cADDS_VALUE, cCHANGED_TARGET, WsfPProxyValue::Copy(), WsfPProxySatisfy::EquationExpr::cUNSET_VALUE, WsfPProxyUndoValue::Get(), WsfPProxyUndoValue::GetPath(), WsfPProxyBasicValue::IsEqual(), WsfPProxyPath::IsPrefixOf(), mCurrentRoot, mDesiredRoot, WsfPProxySatisfy::EquationExpr::mExprType, WsfPProxySatisfy::Equation::mLHS, WsfPProxySatisfy::Equation::mRHS, mTargetPath, and WsfPProxyUndoValue::SetUnset().
Referenced by SatisfySequence().
| bool WsfPProxySatisfy::BuildSequenceEquations | ( | WsfParseSequence * | aSequence, |
| WsfPProxyUndoValue & | aCurrentValue, | ||
| const WsfPProxyValue & | aDesiredValue, | ||
| std::vector< Equation > & | aEquations, | ||
| WsfParseNode * | aExistingNodePtr, | ||
| std::vector< WsfPProxyValue * > & | aVariables ) |
References WsfParseActionPart::cASSIGN, WsfParseActionObjectMapOp::cDELETE, WsfParseActionPart::cLITERAL, WsfParseActionObjectMapOp::cMAP_SET, WsfParseActionObjectMapOp::cNEW, WsfParseActionPart::cNODE_REFERENCE, WsfParseActionPart::cOBJECT_MAP_OP, WsfPProxyValue::ConstructNew(), WsfParseActionPart::cPUSH, EquationExpression(), WsfParseSequence::GetActionBefore(), WsfPProxyUndoValue::GetAttr(), WsfPProxyValue::GetAttr(), WsfPProxyUndoValue::GetPath(), WsfPProxyPath::IsPrefixOf(), LookupCurrent(), LookupDesired(), WsfParseActionPart::mActionPartType, WsfPProxySatisfy::Equation::mActionSet, WsfParseActionObjectMapOp::mAttributeAddr, WsfParseActionPush::mAttributeAddr, mEvaluator, WsfParseActionNodeReference::mIndex, WsfPProxySatisfy::Equation::mLHS, WsfParseActionAssign::mLHS_Address, WsfParseActionAssign::mLHS_Type, WsfParseActionObjectMapOp::mObjectName, WsfParseActionObjectMapOp::mOperation, WsfPProxyUndoValue::MoveToAttr(), mRegistryPtr, WsfParseActionAssign::mRHS, WsfPProxySatisfy::Equation::mRHS, WsfParseAction::mSubActions, mTargetPath, WsfParseSequence::Sequence(), WsfPProxyBasicValue::SetValue(), and WsfPProxyPath::size().
Referenced by SatisfySequence().
| void WsfPProxySatisfy::EquationExpression | ( | WsfParseActionPart * | aExprPtr, |
| WsfParseValueType * | aLHS_TypePtr, | ||
| EquationExpr & | aExpr ) |
References WsfParseActionPart::cLITERAL, WsfParseActionPart::cNODE_REFERENCE, WsfPProxyValue::ConstructNew(), WsfPProxyType::IsBasicType(), WsfParseActionPart::mActionPartType, WsfParseActionNodeReference::mIndex, mRegistryPtr, WsfParseActionLiteral::mText, WsfPProxyBasicValue::SetUnset(), WsfPProxyBasicValue::SetValue(), and WsfPProxySatisfy::EquationExpr::UnsetValue().
Referenced by BuildSequenceEquations().
| WsfPProxySatisfy::EquationExpr WsfPProxySatisfy::EvalExpr | ( | EquationExpr & | aExpr | ) |
| bool WsfPProxySatisfy::FindBindingAddress | ( | WsfPParseRuleTrace * | aTracePtr, |
| WsfPProxyUndoValue & | aCurrentValue, | ||
| WsfPProxyValue | aDesiredValue, | ||
| WsfParseSequence * | aSeq, | ||
| int | aNextSequenceChild, | ||
| WsfParseActionAddress & | aBindAddr ) |
| bool WsfPProxySatisfy::FindBindingAddress2 | ( | WsfPParseRuleTrace * | aTracePtr, |
| WsfPProxyUndoValue & | aCurrentValue, | ||
| WsfPProxyValue | aDesiredValue, | ||
| std::vector< WsfPProxyBasicValue > & | aReturnValues, | ||
| WsfParseSequence * | aSeq, | ||
| size_t | aNextSequenceChild, | ||
| WsfPProxyPath & | aBindAddr ) |
References WsfParseActionPart::cASSIGN, WsfParseActionPart::cCALL, WsfParseActionPart::cCOPY, WsfParseActionPart::cDEBUG_PRINT, WsfPParseRuleTrace::Children(), WsfParseActionPart::cLIST_OP, WsfParseActionPart::cLITERAL, WsfParseActionObjectMapOp::cMAP_SET, WsfParseActionPart::cNEGATE, WsfParseActionObjectMapOp::cNEW, WsfParseActionPart::cNODE_REFERENCE, WsfParseActionPart::cOBJECT_MAP_OP, WsfParseActionPart::cPUSH, WsfParseActionListOp::cPUSH_BACK, WsfParseActionPart::cSKIP, WsfPProxyUndoValue::Get(), WsfParseSequence::GetActionBefore(), WsfPProxyValue::GetAttr(), WsfPProxyValue::GetList(), WsfPProxyUndoValue::GetPath(), LookupCurrent(), LookupDesired(), WsfParseActionPart::mActionPartType, WsfParseActionListOp::mAttributeAddr, WsfParseActionObjectMapOp::mAttributeAddr, WsfParseActionNodeReference::mIndex, WsfParseActionAssign::mLHS_Address, WsfParseActionObjectMapOp::mObjectName, WsfParseActionListOp::mOperation, WsfParseActionObjectMapOp::mOperation, WsfPProxyUndoValue::MoveToAttr(), WsfParseActionAssign::mRHS, WsfParseAction::mSubActions, WsfPProxyList::Size(), and WsfPProxyBasicValue::ToString().
Referenced by SatisfySequence().
|
inline |
Referenced by SatisfyRecurrence().
| void WsfPProxySatisfy::FollowAction | ( | WsfParseAction * | aActionPtr, |
| WsfPParseRuleTrace * | aParentTracePtr, | ||
| WsfPProxyUndoValue & | aCurrentValue, | ||
| WsfPProxyValue * | aDesiredValue, | ||
| WsfPProxyPath & | aCurrentPath, | ||
| std::vector< WsfPProxyValue * > | aVariables, | ||
| SatisfyResult & | aResult ) |
References cADDS_VALUE, WsfParseActionObjectMapOp::cAPPLY, WsfParseActionPart::cASSIGN, cCHANGED_TARGET, WsfParseActionPart::cCOPY, WsfParseTypeInfoData::cCREATE_TYPE, WsfParseActionPart::cDEBUG_PRINT, WsfParseTypeInfoData::cDELETE_TYPE, WsfPParseRuleTrace::Children(), WsfParseActionPart::cLIST_OP, WsfParseActionPart::cLITERAL, WsfParseTypeInfoData::cLOAD_TYPE, WsfParseActionObjectMapOp::cMAP_SET, WsfParseTypeInfoData::cNESTED_LOAD, WsfParseTypeInfoData::cNESTED_SAVE, WsfParseActionObjectMapOp::cNEW, WsfParseActionPart::cNODE_REFERENCE, cNOT_SATISFIABLE, WsfParseActionPart::cOBJECT_MAP_OP, WsfPProxyValue::ConstructNew(), WsfPProxyValue::Copy(), WsfParseActionPart::cPUSH, WsfParseActionListOp::cPUSH_BACK, cSATISFIABLE, WsfParseActionPart::cSKIP, cSUCCESS, WsfParseRule::cTYPE_LOAD, WsfPProxyUndoValue::Exists(), WsfPProxyList::Get(), WsfPProxyUndoValue::Get(), WsfPProxyUndoValue::GetAttr(), WsfPProxyValue::GetAttr(), WsfParseNode::GetAuxiliaryValue(), WsfPProxyValue::GetList(), WsfPProxyValue::GetObjectMap(), WsfParseTypeLoadRule::GetOperation(), WsfPProxyUndoValue::GetPath(), WsfPParseRuleTrace::GetText(), WsfPProxyValue::GetType(), WsfPProxyPath::IsPrefixOf(), WsfPProxyUndoValue::ListPush(), LookupCurrent(), LookupCurrentOrBasicValue(), LookupDesired(), WsfParseActionPart::mActionPartType, WsfPProxyUndoValue::MapDelete(), WsfPProxyUndoValue::MapInsert(), WsfParseActionListOp::mAttributeAddr, WsfParseActionObjectMapOp::mAttributeAddr, WsfParseActionPush::mAttributeAddr, mEvaluator, WsfParseTypeInfoData::mFlags, WsfParseActionNodeReference::mIndex, WsfParseTypeInfoData::mLoadKey, WsfParseTypeLoadRule::mLoadType, WsfParseTypeName::mNestedLookup, WsfPParseRuleTrace::mNodePtr, WsfParseActionObjectMapOp::mObjectName, WsfParseActionListOp::mOperation, WsfParseActionObjectMapOp::mOperation, WsfParseTypeName::mOrdinal, WsfPProxyUndoValue::MoveToAttr(), WsfParseTypeName::mPath, WsfParseActionListOp::mPushedValuePtr, mRegistryPtr, WsfParseTypeInfoData::mSaveKey, WsfParseTypeLoadRule::mSaveType, WsfParseAction::mSubActions, mTargetPath, ok, WsfPParseRuleTrace::Rule(), WsfPProxyList::Size(), WsfPProxyPath::size(), WsfPProxyBasicValue::ToString(), and WsfParseRule::Type().
Referenced by SatisfySequence().
| WsfParseNamedRule * WsfPProxySatisfy::GetRuleOutput | ( | WsfParseRule * | aRulePtr | ) |
References WsfParseRule::cIS_PASSTHROUGH, WsfParseRule::GetPassthrough(), WsfParseRule::GetReaderFlags(), GetRuleOutput(), and WsfParseRule::IsNamedRule().
Referenced by GetRuleOutput(), and SatisfySequence().
| bool WsfPProxySatisfy::IsEqual | ( | const WsfPProxyValue & | A, |
| const WsfPProxyValue & | B ) |
References WsfPProxyBasicValue::IsEqual(), and WsfPProxyValue::IsValid().
Referenced by SatisfyValueRule(), and SolveEquation().
| WsfPProxyValue WsfPProxySatisfy::Lookup | ( | WsfPProxyValue & | aRoot, |
| const WsfPProxyValue & | c, | ||
| const WsfParseActionAddress & | aAddr, | ||
| WsfPProxyPath * | aUpdatePath = nullptr ) |
References WsfPProxyPath::Clear(), WsfParseActionAddress::cROOT, WsfPProxyValue::GetAtIndex(), WsfPProxyValue::GetAttr(), WsfParseActionAddress::Entry::IsAttributeIndex(), WsfParseActionAddress::Entry::IsNodeIndex(), WsfParseActionAddress::mAttrIndices, WsfParseActionAddress::Entry::mIndex, WsfParseActionAddress::Entry::mName, and WsfParseActionAddress::Entry::mType.
Referenced by LookupDesired().
| WsfPProxyValue WsfPProxySatisfy::LookupBasicValue | ( | const WsfParseTypePath & | aPath | ) |
References mRegistryPtr.
| WsfPProxyValue WsfPProxySatisfy::LookupBasicValue | ( | const WsfPProxyPath & | aPath | ) |
References WsfPProxyValue::Lookup(), and mRegistryPtr.
Referenced by LookupCurrentOrBasicValue(), and LookupTypeLoad().
| WsfPProxyUndoValue WsfPProxySatisfy::LookupCurrent | ( | WsfPProxyUndoValue & | aCurrent, |
| const WsfParseActionAddress & | aAddr ) |
References WsfParseActionAddress::cROOT, WsfParseActionAddress::Entry::IsAttributeIndex(), WsfParseActionAddress::Entry::IsNodeIndex(), WsfParseActionAddress::mAttrIndices, mCurrentRoot, WsfParseActionAddress::Entry::mIndex, WsfParseActionAddress::Entry::mName, WsfPProxyUndoValue::MoveToAttr(), and WsfParseActionAddress::Entry::mType.
| WsfPProxyUndoValue WsfPProxySatisfy::LookupCurrent | ( | WsfPProxyUndoValue & | aCurrent, |
| const WsfParseTypePath & | aAddr, | ||
| bool | aRelative ) |
References mCurrentRoot, and WsfPProxyUndoValue::MoveToAttr().
Referenced by BuildSequenceEquations(), FindBindingAddress2(), FollowAction(), LookupCurrentOrBasicValue(), and LookupTypeLoad().
| WsfPProxyValue WsfPProxySatisfy::LookupCurrentOrBasicValue | ( | WsfPProxyUndoValue & | aCurrent, |
| const WsfParseTypePath & | aAddr, | ||
| bool | aRelative ) |
References WsfPProxyUndoValue::Get(), LookupBasicValue(), and LookupCurrent().
Referenced by FollowAction().
|
inline |
References Lookup(), and mDesiredRoot.
Referenced by BuildSequenceEquations(), FindBindingAddress2(), FollowAction(), and LookupTypeLoad().
| WsfPProxyValue WsfPProxySatisfy::LookupDesired | ( | WsfPProxyValue | aDesiredValue, |
| const WsfParseTypePath & | aAddr, | ||
| bool | aRelative, | ||
| WsfPProxyPath * | aUpdatePath ) |
References WsfPProxyValue::GetAttr(), mDesiredRoot, and WsfPProxyPath::Push().
| WsfPProxySatisfy::TypeLoadLookupResult WsfPProxySatisfy::LookupTypeLoad | ( | WsfParseTypeInfoData::Operation | aOperation, |
| bool | aIsSaveType, | ||
| const WsfParseTypeName & | aType, | ||
| WsfPProxyUndoValue & | aCurrent, | ||
| WsfPProxyValue & | aDesired, | ||
| std::string & | aObjectName ) |
References WsfPProxyPath::Back(), WsfParseTypeInfoData::cCREATE_TYPE, WsfParseTypeInfoData::cDELETE_TYPE, cTL_COLLISION, cTL_FAILURE, cTL_LOADFAIL, cTL_SUCCESS, WsfPProxyPath::Empty(), WsfPProxyUndoValue::Exists(), WsfPProxyUndoValue::Get(), WsfPProxyUndoValue::GetAttr(), WsfPProxyStructValue::GetBase(), WsfPProxyKey::GetMapKey(), WsfPProxyValue::GetObjectMap(), WsfPProxyUndoValue::GetPath(), WsfPProxyValue::GetType(), WsfPProxyPath::IsPrefixOf(), LookupBasicValue(), LookupCurrent(), LookupDesired(), mDesiredRoot, WsfParseTypeName::mNestedLookup, WsfParseTypeName::mOrdinal, WsfParseTypeName::mPath, mTargetPath, ok, and WsfPProxyPath::size().
Referenced by SatisfyTypeLoad().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::Satisfy | ( | SatPoint | pt | ) |
References WsfPParseRuleTrace::ActualRule(), WsfPParseRuleTrace::AddChild(), WsfParseRule::cALTERNATE, WsfPParseRuleTrace::Children(), WsfParseRule::cINT, WsfParseRule::cLITERAL, WsfParseRule::cNAMED_RULE, cNOT_SATISFIABLE, WsfParseRule::cREAL, WsfParseRule::cRECURRENCE, cSATISFIABLE, WsfParseRule::cSEQUENCE, WsfParseRule::cSTRING, WsfParseRule::cSTRUCT, WsfParseRule::cTYPE_COMMAND, WsfParseRule::cTYPE_LOAD, WsfPProxySatisfy::SatPoint::current, WsfParseRule::cVALUE, WsfPProxySatisfy::SatPoint::desired, WsfPProxyUndoValue::Get(), WsfPProxyUndoValue::GetHistorySize(), WsfPProxyStructType::GetParseStruct(), WsfParseNamedRule::GetRuleValue(), WsfParseRule::GetSubordinateRule(), WsfPProxyValue::GetType(), WsfPProxyValue::IsBasicType(), WsfParseNamedRule::IsPartValueRule(), WsfPProxyType::IsStruct(), WsfPProxyValue::IsUnset(), WsfParseLiteral::MatchesString(), WsfParseValue::mIsEnumeration, WsfPParseRuleTrace::mNodePtr, WsfParseNode::mRulePtr, WsfPParseRuleTrace::PopChild(), WsfPProxySatisfy::SatPoint::returnValue, WsfPProxyUndoValue::Rollback(), WsfPParseRuleTrace::Rule(), Satisfy(), SatisfyAlternate(), SatisfyRecurrence(), SatisfyRoot(), SatisfySequence(), SatisfyTypeLoad(), SatisfyValueRule(), WsfPParseRuleTrace::SetInsertText(), WsfPProxyBasicValue::ToString(), WsfPProxySatisfy::SatPoint::trace, and WsfParseRule::Type().
Referenced by Satisfy(), SatisfyAlternate(), SatisfyAttribute(), SatisfyAttributeInContext(), SatisfyRecurrence(), SatisfyRoot(), and SatisfySequence().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfyAlternate | ( | SatPoint | pt | ) |
References WsfPParseRuleTrace::ActualRule(), WsfPParseRuleTrace::AddChild(), WsfParseAlternate::Alternates(), WsfPParseRuleTrace::Children(), cNOT_SATISFIABLE, WsfPProxySatisfy::SatPoint::current, WsfPProxyUndoValue::GetHistorySize(), WsfPProxyKey::GetIndex(), WsfPProxyUndoValue::GetPath(), WsfPProxyPath::IsPrefixOf(), WsfPProxySatisfy::SatPoint::IsTargetComplete(), WsfPParseRuleTrace::LastChild(), mTargetPath, WsfPProxySatisfy::SatPoint::NeedToComplete(), WsfPParseRuleTrace::PopChild(), WsfPProxyUndoValue::Rollback(), Satisfy(), WsfPParseRuleTrace::SetRule(), WsfPProxyPath::size(), WsfPProxySatisfy::SatisfyResult::TargetComplete(), and WsfPProxySatisfy::SatPoint::trace.
Referenced by Satisfy().
| bool WsfPProxySatisfy::SatisfyAttribute | ( | const WsfPProxyPath & | aPath | ) |
References cSM_TARGET, WsfPProxySatisfy::SatPoint::current, WsfPProxySatisfy::SatPoint::desired, WsfPProxyPath::Empty(), WsfPProxyValue::IsBasicType(), WsfPParseRuleTracer::Contexts::mContextList, mCurrentRoot, mDesiredRoot, mRegistryPtr, mSatMode, mTargetPath, mTracePtr, mTracerPtr, WsfPProxyPath::Pop(), Satisfy(), WsfPProxySatisfy::SatisfyResult::TargetComplete(), WsfPProxyPath::ToString(), and WsfPProxySatisfy::SatPoint::trace.
Referenced by SatisfyRootDifferences().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfyAttributeInContext | ( | const WsfPProxyPath & | aPath, |
| WsfPParseRuleTraceContext * | aContextPtr ) |
References WsfPProxySatisfy::SatPoint::current, WsfPProxySatisfy::SatPoint::desired, WsfPParseRuleTraceContext::GetAddr(), WsfPParseRuleTracer::Contexts::mContextList, mCurrentRoot, mDesiredRoot, mTargetPath, WsfPParseRuleTraceContext::mTracePtr, mTracerPtr, WsfPProxyPath::Pop(), Satisfy(), WsfPProxyPath::size(), WsfPProxySatisfy::SatisfyResult::TargetComplete(), and WsfPProxySatisfy::SatPoint::trace.
Referenced by SatisfyBlock().
| bool WsfPProxySatisfy::SatisfyBlock | ( | WsfPParseRuleTraceContext * | aContextPtr | ) |
| bool WsfPProxySatisfy::SatisfyBlock | ( | WsfPParseRuleTraceContext * | aContextPtr, |
| WsfPProxyValue | aExistingValues ) |
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfyRecurrence | ( | SatPoint | pt | ) |
References WsfPParseRuleTrace::ActualRule(), WsfPParseRuleTrace::AddChild(), WsfPParseRuleTrace::Children(), cNOT_SATISFIABLE, WsfParseRecurrence::cONE_TO_MANY, cSATISFIABLE, WsfPProxySatisfy::SatPoint::current, WsfParseRecurrence::cZERO_TO_MANY, FixMode(), WsfPParseRuleTrace::GetContext(), WsfParseRecurrence::GetCountRange(), WsfPProxyUndoValue::GetHistorySize(), WsfPProxyUndoValue::GetPath(), WsfParseRule::GetSubordinateRule(), WsfPProxySatisfy::SatPoint::IsTargetComplete(), WsfParseRecurrence::mCount, mRecurrenceInsertBeforeEnd, WsfPParseRuleTrace::NewContext(), WsfPParseRuleTrace::PopChild(), WsfPProxyUndoValue::Rollback(), Satisfy(), WsfPParseRuleTrace::SetPruned(), WsfPProxySatisfy::SatisfyResult::Success(), WsfPProxySatisfy::SatisfyResult::TargetComplete(), and WsfPProxySatisfy::SatPoint::trace.
Referenced by Satisfy().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfyRoot | ( | SatPoint | pt | ) |
References WsfPParseRuleTrace::AddChild(), mRegistryPtr, WsfPParseRuleTrace::PopChild(), Satisfy(), WsfPProxySatisfy::SatisfyResult::Success(), and WsfPProxySatisfy::SatPoint::trace.
Referenced by Satisfy().
| bool WsfPProxySatisfy::SatisfyRootDifferences | ( | ) |
References WsfPProxyDiff::cADDED, WsfPProxyDiff::cCHANGED, WsfPProxyDiff::cREMOVED, WsfPProxyDiff::Diff(), mCurrentRoot, mDesiredRoot, WsfPProxyDiff::mDiffs, and SatisfyAttribute().
Referenced by WsfPProxySerialize::Serialize().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfySequence | ( | SatPoint | pt | ) |
References WsfPParseRuleTrace::ActualRule(), WsfPParseRuleTrace::AddChild(), ApplyEquations(), BuildSequenceEquations(), WsfPParseRuleTrace::Children(), CleanupSatisfySequence(), cNOT_SATISFIABLE, cSATISFIABLE, cSM_TARGET, WsfPProxySatisfy::SatPoint::cTARGET_COMPLETE, WsfPProxySatisfy::SatPoint::current, WsfPProxySatisfy::SatPoint::desired, FindBindingAddress2(), WsfPProxySatisfy::SatPoint::flags, FollowAction(), WsfParseSequence::GetActionBefore(), WsfPParseRuleTrace::GetNearestNode(), WsfPProxyUndoValue::GetPath(), WsfParseSequence::GetRuleDescription(), GetRuleOutput(), mCurrentRoot, mDesiredRoot, WsfPParseRuleTrace::mNodePtr, WsfPProxySatisfy::SatisfyResult::mResult, mSatMode, WsfPProxySatisfy::SatPoint::returnValue, Satisfy(), WsfParseSequence::Sequence(), WsfPProxySatisfy::SatPoint::SetTargetComplete(), SolveEquations(), WsfPProxySatisfy::SatisfyResult::TargetComplete(), and WsfPProxySatisfy::SatPoint::trace.
Referenced by Satisfy().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfyTypeLoad | ( | WsfParseRule * | currentRulePtr, |
| SatPoint | pt ) |
References WsfParseActionObjectMapOp::cAPPLY, WsfParseTypeInfoData::cCREATE_TYPE, WsfParseTypeInfoData::cDELETE_TYPE, WsfPParseRuleTrace::Children(), WsfParseTypeInfoData::cLOAD_TYPE, cNOT_SATISFIABLE, WsfParseActionPart::cOBJECT_MAP_OP, cSATISFIABLE, WsfParseRule::cSEQUENCE, cSUCCESS, cTL_COLLISION, cTL_SUCCESS, WsfPProxySatisfy::SatPoint::current, WsfPProxySatisfy::SatPoint::desired, WsfParseSequence::FindChildIndex(), WsfParseSequence::GetActionBefore(), WsfParseTypeLoadRule::GetOperation(), WsfPParseRuleTrace::GetParent(), LookupTypeLoad(), WsfParseTypeLoadRule::mAllowRedefinition, WsfParseTypeLoadRule::mLoadType, WsfPParseRuleTrace::mNodePtr, WsfParseTypeName::mOrdinal, WsfParseRule::mParentRulePtr, WsfParseTypeLoadRule::mSaveType, WsfParseAction::mSubActions, WsfPProxySatisfy::SatPoint::trace, and WsfParseRule::Type().
Referenced by Satisfy().
| WsfPProxySatisfy::SatisfyResult WsfPProxySatisfy::SatisfyValueRule | ( | WsfPProxyBasicValue | aDesiredValue, |
| WsfPParseRuleTrace * | aTracePtr ) |
| aDesiredValue | The desired value to be returned by the current trace node. |
| aTracePtr | The pointer to the current trace node. |
References WsfPParseRuleTrace::ActualRule(), cNOT_SATISFIABLE, WsfPProxyValue::Copy(), cSATISFIABLE, WsfPProxyValue::Delete(), WsfPProxyValue::GetDataPtr(), WsfPParseRuleTrace::GetNearestNode(), WsfPProxyBasicValue::GetType(), IsEqual(), WsfPProxyValue::IsUnset(), WsfPProxyBasicValue::Read(), WsfPParseRuleTrace::SetInsertText(), and WsfPProxyBasicType::Write().
Referenced by Satisfy().
| bool WsfPProxySatisfy::SolveEquation | ( | const WsfPProxyValue & | aLhs, |
| EquationExpr & | aRHS, | ||
| std::vector< WsfPProxyValue * > & | aVariables ) |
Attempts to solve an equation to determine: -If the equation is unsolvable, returns false -If the equation can be solved, the variable values are stored in aVariables
| aLhs | The desired value of the equation's left-hand-side. |
| aRHS | The expression to evaluate |
| aVariables | The variables values used in the expression. Variables not bound to a value are null. |
References WsfPProxySatisfy::EquationExpr::cFUNCTION, WsfPProxySatisfy::EquationExpr::cNODE_INDEX, WsfPProxyValue::Copy(), WsfPProxySatisfy::EquationExpr::cUNSET_VALUE, WsfPProxySatisfy::EquationExpr::cVALUE, WsfPProxyValue::GetDataPtr(), WsfPProxyValue::GetList(), WsfPProxyValue::GetType(), IsEqual(), WsfPProxyValue::IsUnset(), mAttemptedToClear, WsfPProxySatisfy::EquationExpr::mExprType, WsfPProxySatisfy::EquationExpr::mNodeIndex, mTypesThatNeedToBeCleared, and WsfPProxySatisfy::EquationExpr::mValue.
Referenced by SolveEquations().
| bool WsfPProxySatisfy::SolveEquations | ( | const WsfPProxyValue & | aCurrentDesired, |
| std::vector< Equation > & | aEquations, | ||
| std::vector< WsfPProxyValue * > & | aVariables ) |
Attempts to solve a set of equations.
References mDesiredRoot, WsfPProxySatisfy::Equation::mLHS, WsfPProxySatisfy::Equation::mRHS, ok, SolveEquation(), and WsfPProxyPath::ToString().
Referenced by SatisfySequence().
|
mutable |
| std::set<void*> WsfPProxySatisfy::mAttemptedToClear |
Referenced by SolveEquation().
| WsfPProxyUndoValue WsfPProxySatisfy::mCurrentRoot |
| WsfPProxyValue WsfPProxySatisfy::mDesiredRoot |
| ProxyEvaluator WsfPProxySatisfy::mEvaluator |
Referenced by BuildSequenceEquations(), FollowAction(), and WsfPProxySatisfy().
| bool WsfPProxySatisfy::mRecurrenceInsertBeforeEnd |
Referenced by SatisfyRecurrence(), and WsfPProxySatisfy().
| WsfPProxyRegistry* WsfPProxySatisfy::mRegistryPtr |
| SatMode WsfPProxySatisfy::mSatMode |
Referenced by SatisfyAttribute(), SatisfySequence(), and WsfPProxySatisfy().
| WsfPProxyPath WsfPProxySatisfy::mTargetPath |
| WsfPParseRuleTrace* WsfPProxySatisfy::mTracePtr |
Referenced by SatisfyAttribute(), WsfPProxySerialize::Serialize(), and WsfPProxySatisfy().
| WsfPParseRuleTracer* WsfPProxySatisfy::mTracerPtr |
Referenced by SatisfyAttribute(), SatisfyAttributeInContext(), and WsfPProxySatisfy().
| std::set<const WsfPProxyType*> WsfPProxySatisfy::mTypesThatNeedToBeCleared |
Referenced by SolveEquation(), and WsfPProxySatisfy().