ANTLR3C
3.3.1
|
Contains the base functions that all tree adaptors start with. More...
#include <antlr3basetreeadaptor.h>
Contains the base functions that all tree adaptors start with.
this implementation can then be overridden by any higher implementation.
|
static |
Add a child to the tree t.
If child is a flat tree (a list), make all in list children of t. Warning: if t has no children, but child does and child isNilNode then it is ok to move children to t via t.children = child.children; i.e., without copying the array. This is for construction and I'm not sure it's completely general for a tree's addChild method to work this way. Make sure you differentiate between your tree's addChild and this parser tree construction addChild if it's not ok to move children to t with a simple assignment.
References ANTLR3_BASE_TREE_struct::addChild.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Use the adaptor implementation to add a child node with the supplied token.
References ANTLR3_BASE_TREE_ADAPTOR_struct::addChild, and ANTLR3_BASE_TREE_ADAPTOR_struct::create.
Referenced by antlr3BaseTreeAdaptorInit().
ANTLR3_API void antlr3BaseTreeAdaptorInit | ( | pANTLR3_BASE_TREE_ADAPTOR | adaptor, |
pANTLR3_DEBUG_EVENT_LISTENER | debugger | ||
) |
Given a pointer to a base tree adaptor structure (which is usually embedded in the super class the implements the tree adaptor used in the parse), initialize its function pointers and so on.
References ANTLR3_DEBUG_EVENT_LISTENER_struct::adaptor, addChild(), ANTLR3_BASE_TREE_ADAPTOR_struct::addChild, addChildToken(), ANTLR3_BASE_TREE_ADAPTOR_struct::addChildToken, becomeRoot(), ANTLR3_BASE_TREE_ADAPTOR_struct::becomeRoot, becomeRootToken(), ANTLR3_BASE_TREE_ADAPTOR_struct::becomeRootToken, createTypeText(), ANTLR3_BASE_TREE_ADAPTOR_struct::createTypeText, createTypeToken(), ANTLR3_BASE_TREE_ADAPTOR_struct::createTypeToken, createTypeTokenText(), ANTLR3_BASE_TREE_ADAPTOR_struct::createTypeTokenText, dbgAddChild(), dbgAddChildToken(), dbgBecomeRoot(), dbgBecomeRootToken(), dbgCreateTypeText(), dbgCreateTypeToken(), dbgCreateTypeTokenText(), dbgDupTree(), dbgNil(), dupTree(), ANTLR3_BASE_TREE_ADAPTOR_struct::dupTree, dupTreeTT(), ANTLR3_BASE_TREE_ADAPTOR_struct::dupTreeTT, getChild(), ANTLR3_BASE_TREE_ADAPTOR_struct::getChild, getChildCount(), ANTLR3_BASE_TREE_ADAPTOR_struct::getChildCount, getText(), ANTLR3_BASE_TREE_ADAPTOR_struct::getText, getType(), ANTLR3_BASE_TREE_ADAPTOR_struct::getType, getUniqueID(), ANTLR3_BASE_TREE_ADAPTOR_struct::getUniqueID, isNilNode(), ANTLR3_BASE_TREE_ADAPTOR_struct::isNilNode, makeDot(), ANTLR3_BASE_TREE_ADAPTOR_struct::makeDot, nilNode(), ANTLR3_BASE_TREE_ADAPTOR_struct::nilNode, rulePostProcessing(), ANTLR3_BASE_TREE_ADAPTOR_struct::rulePostProcessing, setText(), ANTLR3_BASE_TREE_ADAPTOR_struct::setText, setText8(), ANTLR3_BASE_TREE_ADAPTOR_struct::setText8, setType(), and ANTLR3_BASE_TREE_ADAPTOR_struct::setType.
Referenced by ANTLR3_TREE_ADAPTORDebugNew(), ANTLR3_TREE_ADAPTORNew(), and setDebugEventListener().
|
static |
If oldRoot is a nil root, just copy or move the children to newRoot.
If not a nil root, make oldRoot a child of newRoot.
If newRoot is a nil-rooted single child tree, use the single child as the new root node.
If oldRoot was null, it's ok, just return newRoot (even if isNilNode).
Return newRoot. Throw an exception if newRoot is not a simple node or nil root with a single child node–it must be a root node. If newRoot is ^(nil x)</endcode> return x as newRoot.
Be advised that it's ok for newRoot to point at oldRoot's children; i.e., you don't have to copy the list. We are constructing these nodes so we should have this control for efficiency.
References ANTLR3_BASE_TREE_struct::addChild, ANTLR3_FPRINTF, ANTLR3_BASE_TREE_struct::getChild, ANTLR3_BASE_TREE_struct::getChildCount, ANTLR3_BASE_TREE_struct::isNilNode, and ANTLR3_BASE_TREE_struct::reuse.
Referenced by antlr3BaseTreeAdaptorInit(), and dbgBecomeRoot().
|
static |
Use the adaptor interface to set a new tree node with the supplied token to the root of the tree.
References ANTLR3_BASE_TREE_ADAPTOR_struct::becomeRoot, and ANTLR3_BASE_TREE_ADAPTOR_struct::create.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::create, and ANTLR3_BASE_TREE_ADAPTOR_struct::createToken.
Referenced by antlr3BaseTreeAdaptorInit(), and dbgCreateTypeText().
|
static |
Use the super class supplied create() method to create a new node from the supplied token.
References ANTLR3_BASE_TREE_ADAPTOR_struct::create, ANTLR3_BASE_TREE_ADAPTOR_struct::createTokenFromToken, and ANTLR3_COMMON_TOKEN_struct::setType.
Referenced by antlr3BaseTreeAdaptorInit(), and dbgCreateTypeToken().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::create, ANTLR3_BASE_TREE_ADAPTOR_struct::createTokenFromToken, ANTLR3_COMMON_TOKEN_struct::setText8, and ANTLR3_COMMON_TOKEN_struct::setType.
Referenced by antlr3BaseTreeAdaptorInit(), and dbgCreateTypeTokenText().
|
static |
References ANTLR3_BASE_TREE_struct::addChild, ANTLR3_DEBUG_EVENT_LISTENER_struct::addChild, and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::addChild, ANTLR3_DEBUG_EVENT_LISTENER_struct::addChild, ANTLR3_BASE_TREE_ADAPTOR_struct::create, and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References becomeRoot(), ANTLR3_DEBUG_EVENT_LISTENER_struct::becomeRoot, and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::becomeRoot, ANTLR3_DEBUG_EVENT_LISTENER_struct::becomeRoot, ANTLR3_BASE_TREE_ADAPTOR_struct::create, and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_DEBUG_EVENT_LISTENER_struct::createNode, createTypeText(), and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_DEBUG_EVENT_LISTENER_struct::createNode, createTypeToken(), and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_DEBUG_EVENT_LISTENER_struct::createNode, createTypeTokenText(), and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::dupTreeTT, and simulateTreeConstruction().
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::create, ANTLR3_DEBUG_EVENT_LISTENER_struct::createNode, and ANTLR3_BASE_TREE_ADAPTOR_struct::debugger.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_STRING_struct::addc, ANTLR3_STRING_struct::append8, ANTLR3_STRING_struct::charAt, ANTLR3_BASE_TREE_ADAPTOR_struct::getChild, ANTLR3_BASE_TREE_ADAPTOR_struct::getChildCount, ANTLR3_BASE_TREE_ADAPTOR_struct::getText, and ANTLR3_STRING_struct::len.
Referenced by makeDot().
|
static |
References ANTLR3_STRING_struct::addc, ANTLR3_STRING_struct::append8, ANTLR3_STRING_struct::charAt, ANTLR3_BASE_TREE_ADAPTOR_struct::getChild, ANTLR3_BASE_TREE_ADAPTOR_struct::getChildCount, ANTLR3_BASE_TREE_ADAPTOR_struct::getText, and ANTLR3_STRING_struct::len.
Referenced by makeDot().
|
static |
Return a duplicate of the entire tree (implementation provided by the BASE_TREE interface.)
References ANTLR3_BASE_TREE_ADAPTOR_struct::dupTreeTT.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_ADAPTOR_struct::addChild, ANTLR3_BASE_TREE_struct::dupNode, ANTLR3_BASE_TREE_ADAPTOR_struct::dupTreeTT, ANTLR3_BASE_TREE_ADAPTOR_struct::getChild, ANTLR3_BASE_TREE_ADAPTOR_struct::getChildCount, ANTLR3_BASE_TREE_struct::getChildIndex, ANTLR3_BASE_TREE_ADAPTOR_struct::setChildIndex, and ANTLR3_BASE_TREE_ADAPTOR_struct::setParent.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_FPRINTF.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_FPRINTF.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Dummy implementation - will be supplied by super class.
References ANTLR3_FPRINTF.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Dummy implementation - will be supplied by super class.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Returns a uniqueID for the node.
Because this is the C implementation we can just use its address suitably converted/cast to an integer.
References ANTLR3_UINT32_CAST.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
References ANTLR3_BASE_TREE_struct::isNilNode.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Produce a DOT specification for graphviz.
References ANTLR3_STRING_struct::addc, ANTLR3_STRING_struct::append8, ANTLR3_STRING_struct::charAt, defineDotEdges(), defineDotNodes(), ANTLR3_BASE_TREE_ADAPTOR_struct::getText, ANTLR3_STRING_struct::len, ANTLR3_STRING_FACTORY_struct::newStr8, and ANTLR3_BASE_TREE_ADAPTOR_struct::strFactory.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Create and return a nil tree node (no token payload)
References ANTLR3_BASE_TREE_ADAPTOR_struct::create.
Referenced by antlr3BaseTreeAdaptorInit(), fillBuffer(), and toString().
|
static |
Transform ^(nil x) to x.
References ANTLR3_BASE_TREE_struct::getChild, ANTLR3_BASE_TREE_struct::getChildCount, ANTLR3_BASE_TREE_struct::isNilNode, ANTLR3_BASE_TREE_struct::reuse, ANTLR3_BASE_TREE_struct::setChildIndex, and ANTLR3_BASE_TREE_struct::setParent.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Dummy implementation - will be supplied by super class.
References ANTLR3_FPRINTF.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Dummy implementation - will be supplied by super class.
References ANTLR3_FPRINTF.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Dummy implementation - will be supplied by super class.
References ANTLR3_FPRINTF.
Referenced by antlr3BaseTreeAdaptorInit().
|
static |
Sends the required debugging events for duplicating a tree to the debugger.
References ANTLR3_DEBUG_EVENT_LISTENER_struct::addChild, ANTLR3_DEBUG_EVENT_LISTENER_struct::createNode, ANTLR3_BASE_TREE_ADAPTOR_struct::debugger, ANTLR3_BASE_TREE_ADAPTOR_struct::getChild, and ANTLR3_BASE_TREE_ADAPTOR_struct::getChildCount.
Referenced by dbgDupTree().