mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-02 15:39:26 +01:00
* New node pruning methods
This commit is contained in:
parent
2a44ffe51b
commit
7488f1e3f8
@ -420,6 +420,9 @@ interface
|
||||
{$ifdef DEBUG_NODE_XML}
|
||||
procedure XMLPrintNodeData(var T: Text); override;
|
||||
{$endif DEBUG_NODE_XML}
|
||||
{ Marks the current node for deletion and sets 'left' to nil.
|
||||
Returns what 'left' was previously set to }
|
||||
function PruneKeepLeft: TNode; {$ifdef USEINLINE}inline;{$endif USEINLINE}
|
||||
end;
|
||||
|
||||
//pbinarynode = ^tbinarynode;
|
||||
@ -442,6 +445,9 @@ interface
|
||||
procedure XMLPrintNodeData(var T: Text); override;
|
||||
{$endif DEBUG_NODE_XML}
|
||||
procedure printnodelist(var t:text);
|
||||
{ Marks the current node for deletion and sets 'right' to nil.
|
||||
Returns what 'right' was previously set to }
|
||||
function PruneKeepRight: TNode; {$IFDEF USEINLINE}inline;{$endif USEINLINE}
|
||||
end;
|
||||
|
||||
//ptertiarynode = ^ttertiarynode;
|
||||
@ -461,6 +467,9 @@ interface
|
||||
{$ifdef DEBUG_NODE_XML}
|
||||
procedure XMLPrintNodeData(var T: Text); override;
|
||||
{$endif DEBUG_NODE_XML}
|
||||
{ Marks the current node for deletion and sets 'third' to nil.
|
||||
Returns what 'third' was previously set to }
|
||||
function PruneKeepThird: TNode; {$IFDEF USEINLINE}inline;{$endif USEINLINE}
|
||||
end;
|
||||
|
||||
tbinopnode = class(tbinarynode)
|
||||
@ -1137,6 +1146,16 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
{ Marks the current node for deletion and sets 'left' to nil.
|
||||
Returns what 'left' was previously set to }
|
||||
function tunarynode.PruneKeepLeft: TNode; {$IFDEF USEINLINE}inline;{$endif USEINLINE}
|
||||
begin
|
||||
Result := left;
|
||||
left := nil;
|
||||
Include(flags, nf_do_not_execute);
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
TBINARYNODE
|
||||
****************************************************************************}
|
||||
@ -1281,6 +1300,16 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
{ Marks the current node for deletion and sets 'right' to nil.
|
||||
Returns what 'right' was previously set to }
|
||||
function tbinarynode.PruneKeepRight: TNode; {$IFDEF USEINLINE}inline;{$endif USEINLINE}
|
||||
begin
|
||||
Result := right;
|
||||
right := nil;
|
||||
Include(flags, nf_do_not_execute);
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
TTERTIARYNODE
|
||||
****************************************************************************}
|
||||
@ -1386,6 +1415,16 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
{ Marks the current node for deletion and sets 'third' to nil.
|
||||
Returns what 'third' was previously set to }
|
||||
function ttertiarynode.PruneKeepThird: TNode; {$IFDEF USEINLINE}inline;{$endif USEINLINE}
|
||||
begin
|
||||
Result := third;
|
||||
third := nil;
|
||||
Include(flags, nf_do_not_execute);
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
TBINOPNODE
|
||||
****************************************************************************}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user