|
WSF
|
#include <WsfParseRule.hpp>


Public Types | |
| enum | RuleType { cNAMED_RULE , cVALUE , cSTRUCT , cSEQUENCE , cALTERNATE , cRECURRENCE , cRULE_REFERENCE , cREAL , cINT , cSTRING , cLINE_STRING , cQUOTED_STRING , cLITERAL , cDELIMITED , cTYPE_LOAD , cTYPE_COMMAND , cPASSTHROUGH , cSCRIPT_BLOCK } |
| enum | ReaderFlags { cCAN_RESOLVE = 1 , cCAN_UNDO = 2 , cIS_SINGLE_TOKEN = 4 , cIS_PASSTHROUGH = 8 , cIS_VALUE_RULE = 0x10 } |
Public Member Functions | |
| WsfParseRule (WsfParseRuleMemory &aMem, RuleType aType) | |
| virtual | ~WsfParseRule ()=default |
| WsfParseRule (const WsfParseRule &)=default | |
| void | Swap (WsfParseRule &aRhs) |
| RuleType | Type () const |
| Returns an enumeration specifying the derived type of the reader. | |
| virtual bool | Read (WsfParser &aParser, WsfParseNode *&aNode)=0 |
| virtual bool | ReadRange (WsfParser &aParser, UtTextDocumentRange &aRange, WsfParseNode *&aNode, bool aCreateNode) |
| virtual void | Undo (WsfParser &aParser) |
| virtual void | Resolve (WsfParser &aParser, WsfParseNode *aNodePtr) |
| virtual void | Initialize (int aSequence) |
| virtual std::vector< WsfParseRule * > | GetSequence () |
| virtual std::vector< WsfParseRule * > | GetAlternates () |
| virtual WsfParseRuleDictionary * | GetNestedRules () |
| virtual WsfParseNamedRule * | GetContext () const |
| virtual WsfParseRule * | GetPassthrough () |
| virtual std::string | GetRuleDescription () |
| virtual WsfParseValueType * | GetType () |
| If the rule is also a type, return the type. | |
| WsfParseStruct * | GetContainingStruct () const |
| WsfParseStruct * | GetStruct () |
| WsfParseNamedRule * | GetEntryType () |
| WsfParseNamedRule * | GetInputType () |
| WsfParseNamedRule * | GetOutputType () |
| WsfParseNamedRule * | GetBestContext () |
| WsfParseNamedRule * | GetVarContext () |
| bool | IsNamedRule () const |
| int | GetReaderFlags () const |
| WsfParseRule * | GetSubordinateRule () const |
| void | SetSubordinateRule (WsfParseRule *aRulePtr) |
Public Attributes | |
| RuleType | mRuleType |
| int | mReaderFlags |
| int | mUserId |
| WsfParseRule * | mParentRulePtr |
| Pointer to the parent rule. This should be valid for unnamed rules. | |
Protected Attributes | |
| WsfParseRule * | mSubordinateRulePtr |
The base class for all parse rules. A parse rule defines rules for matching a piece of wsf core text. Parse rules are created while processing the wsf core grammar files.
| WsfParseRule::WsfParseRule | ( | WsfParseRuleMemory & | aMem, |
| RuleType | aType ) |
The parse rule constructor requires a 'WsfParseRuleMemory' object to keep track of parse rules in memory and a rule type.
References mParentRulePtr, mReaderFlags, mRuleType, mSubordinateRulePtr, mUserId, and WsfParseRuleMemory::RuleAdded().
Referenced by WsfParseAlternate::AddAlternate(), WsfParseSequence::AddRule(), WsfParseSequence::CompleteDelayLoad(), WsfParseSequence::FindChildIndex(), WsfParseNamedRule::FindValue(), WsfParseNamedRule::GetDefinition(), WsfParseNamedRule::GetDefinition(), WsfParseNamedRule::GetPassthrough(), WsfParsePassthrough::GetPassthrough(), GetPassthrough(), WsfParseRuleReference::GetPassthrough(), GetSubordinateRule(), WsfParseRecurrence::Initialize(), Initialize(), WsfParseSequence::Initialize(), WsfParseAlternate::Read(), WsfParseSequence::Read(), WsfParseTypeCommandRule::Read(), WsfParseAlternate::ReaderStartsWithChar(), WsfParseSequence::ResolveChildren(), WsfParseNamedRule::SetDefinition(), WsfParsePassthrough::SetPassthroughRule(), WsfParseRecurrence::SetRecurringRule(), WsfParseRuleReference::SetReferencedRule(), SetSubordinateRule(), WsfParseNamedRule::Swap(), Swap(), WsfParseSequence::UndoChildren(), WsfParseAlternate::WsfParseAlternate(), WsfParseDelimited::WsfParseDelimited(), WsfParseIntRule::WsfParseIntRule(), WsfParseLineStringRule::WsfParseLineStringRule(), WsfParseLiteral::WsfParseLiteral(), WsfParseNamedRule::WsfParseNamedRule(), WsfParseNamedRule::WsfParseNamedRule(), WsfParsePassthrough::WsfParsePassthrough(), WsfParseQuotedStringRule::WsfParseQuotedStringRule(), WsfParseRealRule::WsfParseRealRule(), WsfParseRecurrence::WsfParseRecurrence(), WsfParseRule(), WsfParseRuleReference::WsfParseRuleReference(), WsfParseScriptRule::WsfParseScriptRule(), WsfParseSequence::WsfParseSequence(), WsfParseStringRule::WsfParseStringRule(), WsfParseTypeCommandRule::WsfParseTypeCommandRule(), and WsfParseTypeLoadRule::WsfParseTypeLoadRule().
|
virtualdefault |
|
default |
References WsfParseRule().
|
inlinevirtual |
Reimplemented in WsfParseAlternate.
Referenced by GetAllAlternates().
| WsfParseNamedRule * WsfParseRule::GetBestContext | ( | ) |
References cNAMED_RULE, cSTRUCT, cVALUE, mParentRulePtr, and mRuleType.
Referenced by WsfParseType::Print().
| WsfParseStruct * WsfParseRule::GetContainingStruct | ( | ) | const |
References cSTRUCT, GetContainingStruct(), GetContext(), mParentRulePtr, and Type().
Referenced by GetContainingStruct(), WsfParseNamedRule::GetFullName(), and GetStruct().
|
inlinevirtual |
Reimplemented in WsfParseNamedRule.
Referenced by GetContainingStruct().
| WsfParseNamedRule * WsfParseRule::GetEntryType | ( | ) |
References GetInputType(), and GetOutputType().
| WsfParseNamedRule * WsfParseRule::GetInputType | ( | ) |
References IsNamedRule().
Referenced by GetEntryType().
|
inlinevirtual |
Reimplemented in WsfParseNamedRule.
Referenced by GetAllAlternates().
| WsfParseNamedRule * WsfParseRule::GetOutputType | ( | ) |
References IsNamedRule().
Referenced by GetEntryType().
|
inlinevirtual |
Reimplemented in WsfParseNamedRule, WsfParsePassthrough, and WsfParseRuleReference.
References WsfParseRule().
Referenced by WsfPParseRuleTracer::BeginNode(), and WsfPProxySatisfy::GetRuleOutput().
|
inline |
|
inlinevirtual |
Reimplemented in WsfParseAlternate, WsfParseLiteral, WsfParseNamedRule, WsfParseRecurrence, WsfParseRuleReference, and WsfParseSequence.
Referenced by WsfParseNodePool::NewNode().
|
inlinevirtual |
Reimplemented in WsfParseNamedRule, WsfParsePassthrough, WsfParseRecurrence, WsfParseRuleReference, and WsfParseSequence.
Referenced by GetAllAlternates().
| WsfParseStruct * WsfParseRule::GetStruct | ( | ) |
References cSTRUCT, GetContainingStruct(), and mRuleType.
Referenced by WsfPProxyRegistry::BuildBasicRootFromBasicTypes().
|
inline |
References mSubordinateRulePtr, and WsfParseRule().
Referenced by wizard::AutoComplete::ExpandRule(), WsfParseRuleReference::GetPassthrough(), WsfParseRuleReference::GetRulePtr(), WsfParseRuleReference::GetSequence(), Initialize(), wizard::GrammarDocumentation::Process(), WsfPProxySatisfy::Satisfy(), WsfPProxySatisfy::SatisfyRecurrence(), and VerifyChild().
|
inlinevirtual |
If the rule is also a type, return the type.
Reimplemented in WsfParseStruct, and WsfParseValue.
| WsfParseNamedRule * WsfParseRule::GetVarContext | ( | ) |
References cNAMED_RULE, cSTRUCT, cVALUE, GetVarContext(), mParentRulePtr, and mRuleType.
Referenced by GetVarContext(), and WsfParseNamedRule::InitializeInputsOutputs().
|
virtual |
Reimplemented in WsfParseNamedRule, WsfParseRecurrence, WsfParseSequence, WsfParseStruct, and WsfParseValue.
References GetSubordinateRule(), IsNamedRule(), WsfParseNamedRule::mReferencingRules, and WsfParseRule().
Referenced by WsfParseNamedRule::Initialize(), WsfParseRecurrence::Initialize(), WsfParseSequence::Initialize(), WsfParseStruct::Initialize(), and WsfParseValue::Initialize().
|
inline |
References cNAMED_RULE, cSTRUCT, cVALUE, and mRuleType.
Referenced by GetInputType(), GetOutputType(), WsfPProxySatisfy::GetRuleOutput(), and Initialize().
|
pure virtual |
Override to parse and generate a parse node. Parse nodes should be generated even on error conditions if possible.
| aParser | The parser. |
| aNode | Set to the resulting parse node. |
Implemented in WsfParseAlternate, WsfParseDelimited, WsfParseIntRule, WsfParseLineStringRule, WsfParseLiteral, WsfParseNamedRule, WsfParsePassthrough, WsfParseQuotedStringRule, WsfParseRealRule, WsfParseRecurrence, WsfParseRuleReference, WsfParseScriptRule, WsfParseSequence, WsfParseStringRule, WsfParseStringWithExceptionsRule, WsfParseTypeCommandRule, and WsfParseTypeLoadRule.
Referenced by WsfParser::ParseFiles(), WsfParseAlternate::Read(), WsfParseSequence::Read(), and WsfParseTypeCommandRule::Read().
|
inlinevirtual |
Override to parse and generate a parse node given a single block of text. This method must be implemented to take part in delimited expressions.
Reimplemented in WsfParseAlternate, WsfParseDelimited, WsfParseIntRule, WsfParseLiteral, WsfParseNamedRule, WsfParsePassthrough, WsfParseRealRule, WsfParseRuleReference, WsfParseSequence, WsfParseStringRule, and WsfParseStringWithExceptionsRule.
|
inlinevirtual |
Called by a command reader if the full command is successfully read. You must set cCAN_RESOLVE in the reader flags to receive this call.
Reimplemented in WsfParseTypeLoadRule.
Referenced by WsfParseSequence::ResolveChildren().
|
inline |
|
inline |
References mParentRulePtr, mReaderFlags, mRuleType, mSubordinateRulePtr, mUserId, std::swap(), and WsfParseRule().
Referenced by std::swap().
|
inline |
Returns an enumeration specifying the derived type of the reader.
References mRuleType.
Referenced by WsfPProxyDeserializeContext::ApplyActions(), WsfPParseRuleTracer::BeginNode(), WsfParseSequence::CompleteDelayLoad(), wizard::WsfScriptContainer::CreateContext(), wizard::AutoComplete::ExpandRule(), WsfParseNamedRule::FindStruct(), WsfPProxyRegistry::FindStructs(), wizard::AutoComplete::FindSuggestionTerminator(), WsfParseNamedRule::FindValue(), WsfPProxySatisfy::FollowAction(), GetAllAlternates(), GetContainingStruct(), WsfParseNamedRule::GetRuleValue(), wizard::AutoComplete::GetSuggestions(), wizard::AutoComplete::GetSyntax(), WsfPProxyRegistry::GetType(), WsfParseNamedRule::Initialize(), WsfParseRecurrence::Initialize(), WsfParseSequence::Initialize(), wizard::GrammarDocumentation::Process(), WsfParseSequence::Read(), WsfParseAlternate::ReaderStartsWithChar(), WsfPProxySatisfy::Satisfy(), WsfPProxySatisfy::SatisfyTypeLoad(), VerifyChild(), and WsfProxy::Position::Write().
|
inlinevirtual |
Called by a command reader if the reader just read in a value that has now been rejected due to a later failure. You must set cCAN_UNDO in the reader flags to receive this call.
Reimplemented in WsfParseTypeLoadRule.
Referenced by WsfParseSequence::UndoChildren().
| WsfParseRule* WsfParseRule::mParentRulePtr |
Pointer to the parent rule. This should be valid for unnamed rules.
Referenced by WsfParseAlternate::AddAlternate(), WsfParseSequence::AddRule(), WsfParseSequence::CompleteDelayLoad(), GetBestContext(), GetContainingStruct(), WsfParseNode::GetTopLevelRule(), GetVarContext(), WsfParseRecurrence::Initialize(), WsfPProxySatisfy::SatisfyTypeLoad(), WsfParseNamedRule::SetDefinition(), Swap(), and WsfParseRule().
| int WsfParseRule::mReaderFlags |
Referenced by GetReaderFlags(), WsfParseNamedRule::GetRuleValue(), WsfParseAlternate::Initialize(), WsfParseNamedRule::Initialize(), WsfParseSequence::Initialize(), WsfParseNamedRule::IsPartValueRule(), Swap(), WsfParseDelimited::WsfParseDelimited(), WsfParseIntRule::WsfParseIntRule(), WsfParseLiteral::WsfParseLiteral(), WsfParseNamedRule::WsfParseNamedRule(), WsfParseNamedRule::WsfParseNamedRule(), WsfParsePassthrough::WsfParsePassthrough(), WsfParseRealRule::WsfParseRealRule(), WsfParseRule(), WsfParseRuleReference::WsfParseRuleReference(), WsfParseStringRule::WsfParseStringRule(), and WsfParseTypeLoadRule::WsfParseTypeLoadRule().
| RuleType WsfParseRule::mRuleType |
|
protected |
Referenced by WsfParseNamedRule::GetDefinition(), WsfParseNamedRule::GetDefinition(), WsfParseNamedRule::GetPassthrough(), WsfParsePassthrough::GetPassthrough(), WsfParseRecurrence::GetRuleDescription(), WsfParseNamedRule::GetSequence(), WsfParsePassthrough::GetSequence(), WsfParseRecurrence::GetSequence(), GetSubordinateRule(), WsfParseNamedRule::Read(), WsfParsePassthrough::Read(), WsfParseRecurrence::Read(), WsfParseRuleReference::Read(), WsfParseNamedRule::ReadRange(), WsfParsePassthrough::ReadRange(), WsfParseRuleReference::ReadRange(), SetSubordinateRule(), Swap(), WsfParseNamedRule::WsfParseNamedRule(), and WsfParseRule().
| int WsfParseRule::mUserId |
Referenced by WsfParseRuleReference::SetReferencedRule(), Swap(), WsfProxy::Position::Write(), and WsfParseRule().