Separate the AST from the parser state.
This commit is contained in:
parent
dbc9fd6c0e
commit
d0968af9a6
3 changed files with 45 additions and 22 deletions
|
|
@ -297,3 +297,24 @@ static FString ZCCTokenName(int terminal)
|
|||
}
|
||||
return FScanner::TokenName(sc_token);
|
||||
}
|
||||
|
||||
ZCC_TreeNode *ZCC_AST::InitNode(size_t size, EZCCTreeNodeType type, ZCC_TreeNode *basis)
|
||||
{
|
||||
ZCC_TreeNode *node = (ZCC_TreeNode *)SyntaxArena.Alloc(size);
|
||||
node->SiblingNext = node;
|
||||
node->SiblingPrev = node;
|
||||
node->NodeType = type;
|
||||
if (basis != NULL)
|
||||
{
|
||||
node->SourceName = basis->SourceName;
|
||||
node->SourceLoc = basis->SourceLoc;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
ZCC_TreeNode *ZCCParseState::InitNode(size_t size, EZCCTreeNodeType type)
|
||||
{
|
||||
ZCC_TreeNode *node = ZCC_AST::InitNode(size, type, NULL);
|
||||
node->SourceName = Strings.Alloc(sc.ScriptName);
|
||||
return node;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue