@@ -280,9 +280,9 @@ class Parser
280280 ParseNodePtr CreateNameNode (IdentPtr pid)
281281 {
282282 ParseNodePtr pnode = CreateNode (knopName);
283- pnode->sxPid . pid = pid;
284- pnode->sxPid . sym =NULL ;
285- pnode->sxPid . symRef =NULL ;
283+ pnode->AsParseNodePid ()-> pid = pid;
284+ pnode->AsParseNodePid ()-> sym =NULL ;
285+ pnode->AsParseNodePid ()-> symRef =NULL ;
286286 return pnode;
287287 }
288288 ParseNodePtr CreateSpecialNameNode (IdentPtr pid)
@@ -291,12 +291,12 @@ class Parser
291291
292292 // knopSpecialName is unused in the code
293293 pnode->nop = knopName;
294- pnode->sxPid . pid = pid;
295- pnode->sxPid . sym = NULL ;
296- pnode->sxPid . symRef = NULL ;
294+ pnode->AsParseNodePid ()-> pid = pid;
295+ pnode->AsParseNodePid ()-> sym = NULL ;
296+ pnode->AsParseNodePid ()-> symRef = NULL ;
297297 pnode->isSpecialName = true ;
298- pnode->sxSpecialName . isThis = false ;
299- pnode->sxSpecialName . isSuper = false ;
298+ pnode->AsParseNodeSpecialName ()-> isThis = false ;
299+ pnode->AsParseNodeSpecialName ()-> isSuper = false ;
300300 return pnode;
301301 }
302302 ParseNodePtr CreateBlockNode (PnodeBlockType blockType = PnodeBlockType::Regular)
@@ -509,8 +509,8 @@ class Parser
509509 {
510510 if (buildAST)
511511 {
512- pnode->sxStmt . grfnop = 0 ;
513- pnode->sxStmt . pnodeOuter = (NULL == m_pstmtCur) ? NULL : m_pstmtCur->pnodeStmt ;
512+ pnode->AsParseNodeStmt ()-> grfnop = 0 ;
513+ pnode->AsParseNodeStmt ()-> pnodeOuter = (NULL == m_pstmtCur) ? NULL : m_pstmtCur->pnodeStmt ;
514514
515515 pStmt->pnodeStmt = pnode;
516516 }
@@ -538,12 +538,12 @@ class Parser
538538 if (this ->GetCurrentFunctionNode ())
539539 {
540540 ParseNodePtr pnodeFunc = GetCurrentFunctionNode ();
541- pnodeFunc->sxFnc . SetCallsEval (true );
541+ pnodeFunc->AsParseNodeFnc ()-> SetCallsEval (true );
542542 }
543543 ParseNode *pnodeBlock = GetCurrentBlock ();
544544 if (pnodeBlock != NULL )
545545 {
546- pnodeBlock->sxBlock . SetCallsEval (true );
546+ pnodeBlock->AsParseNodeBlock ()-> SetCallsEval (true );
547547 PushDynamicBlock ();
548548 }
549549 }
@@ -613,10 +613,10 @@ class Parser
613613 {
614614 if ((*current)->nop == knopList)
615615 {
616- handler (&(*current)->sxBin . pnode1 );
616+ handler (&(*current)->AsParseNodeBin ()-> pnode1 );
617617
618618 // Advance to the next node
619- current = &(*current)->sxBin . pnode2 ;
619+ current = &(*current)->AsParseNodeBin ()-> pnode2 ;
620620 }
621621 else
622622 {
@@ -642,11 +642,11 @@ class Parser
642642 ParseNodePtr bindIdentNode = elementNode;
643643 if (bindIdentNode->nop == knopAsg)
644644 {
645- bindIdentNode = bindIdentNode->sxBin . pnode1 ;
645+ bindIdentNode = bindIdentNode->AsParseNodeBin ()-> pnode1 ;
646646 }
647647 else if (bindIdentNode->nop == knopEllipsis)
648648 {
649- bindIdentNode = bindIdentNode->sxUni . pnode1 ;
649+ bindIdentNode = bindIdentNode->AsParseNodeUni ()-> pnode1 ;
650650 }
651651
652652 if (bindIdentNode->IsPattern ())
@@ -668,21 +668,21 @@ class Parser
668668 {
669669 if (patternNode->nop == knopAsg)
670670 {
671- patternNode = patternNode->sxBin . pnode1 ;
671+ patternNode = patternNode->AsParseNodeBin ()-> pnode1 ;
672672 }
673673
674674 Assert (patternNode->IsPattern ());
675675 if (patternNode->nop == knopArrayPattern)
676676 {
677- ForEachItemInList (patternNode->sxArrLit . pnode1 , [&](ParseNodePtr item) {
677+ ForEachItemInList (patternNode->AsParseNodeArrLit ()-> pnode1 , [&](ParseNodePtr item) {
678678 MapBindIdentifierFromElement (item, handler);
679679 });
680680 }
681681 else
682682 {
683- ForEachItemInList (patternNode->sxUni . pnode1 , [&](ParseNodePtr item) {
683+ ForEachItemInList (patternNode->AsParseNodeUni ()-> pnode1 , [&](ParseNodePtr item) {
684684 Assert (item->nop == knopObjectPatternMember);
685- MapBindIdentifierFromElement (item->sxBin . pnode2 , handler);
685+ MapBindIdentifierFromElement (item->AsParseNodeBin ()-> pnode2 , handler);
686686 });
687687 }
688688 }
@@ -906,7 +906,7 @@ class Parser
906906 BOOL NodeIsSuperName (ParseNodePtr pnode);
907907 BOOL IsJSONValid (ParseNodePtr pnodeExpr)
908908 {
909- OpCode jnop = (knopNeg == pnodeExpr->nop ) ? pnodeExpr->sxUni . pnode1 ->nop : pnodeExpr->nop ;
909+ OpCode jnop = (knopNeg == pnodeExpr->nop ) ? pnodeExpr->AsParseNodeUni ()-> pnode1 ->nop : pnodeExpr->nop ;
910910 if (knopNeg == pnodeExpr->nop )
911911 {
912912 return (knopInt == jnop || knopFlt == jnop);
0 commit comments