📄 cptread.pas
字号:
{*********************************************}
{ }
{ COMPONENT for MS DOS and MS WINDOWS }
{ }
{ Source code for Turbo Pascal 6.0 and }
{ Turbo Pasacal for Windows 1.0 compilers. }
{ }
{ (c) 1991, Roderic D. M. Page }
{ }
{*********************************************}
{$I CPDIR.INC}
{* TO DO:
Add support for reading
PHYLIP (handle rooted and unrooted trees)
PAUP 2.4 (handle ancestor functions)
*}
unit cptread;
{*
Generic tree reader and descendants
Development history:
AMNH
2/6/91 First version
3/4/91 Stack moved to TREEOBJ
3/14/91 NEXUS desc added.
To use these objects, declare a variable of type TREADOBJ_PTR
in the client and assign to it the object corresponding to
the desired tree format.
Errors are recorded in the "Error" field and
both they and a message can be accessed by
client objects.
4/1/91 TREADOBJ.Label_Node modified to use numbers directly.
This means labels like "1" in a tree description will
always be interpreted as leaf 1.
4/5/91 Frees up memory when error encountered.
Keeps track of leaves using T.NL, internals
using T.ST. Hence just free up the contents
of those two arrays using T.CleanUp.
4/30/91 Made into a basic object, no longer a
desc of LEXOBJ
5/9/91 Uses global error object in cperror.pas
5/10/91 TREADOBJ Scanner uses GetNonSpaceToken
so tree descriptions can extend over
more than one line.
BM(NH)
7 Aug 1991 Support for CONTREE added
9 Aug 1991 Code cleaned up.
8 Oct 1991 Hennig86 trees now have the root split
to ensure it always has just 2 descendants.
23 Jan 1992 Code cleaned up (again).
*}
{*
Object hierachy:
TREADOBJ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -