Delete test.cpp
This commit is contained in:
parent
d45fbdec9b
commit
ecd010f5da
|
@ -1,122 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
#include <cstring>
|
|
||||||
#include <list>
|
|
||||||
|
|
||||||
class ASTree
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
int line;
|
|
||||||
int type;
|
|
||||||
std::string content;
|
|
||||||
std::list<ASTree> children;
|
|
||||||
public:
|
|
||||||
ASTree()
|
|
||||||
{
|
|
||||||
line=0;
|
|
||||||
type=0;
|
|
||||||
content="root";
|
|
||||||
children.clear();
|
|
||||||
}
|
|
||||||
virtual ASTree& child(int n)
|
|
||||||
{
|
|
||||||
int cnt=0;
|
|
||||||
std::list<ASTree>::iterator _child;
|
|
||||||
for(std::list<ASTree>::iterator i=children.begin();i!=children.end();++i)
|
|
||||||
{
|
|
||||||
if(n==cnt)
|
|
||||||
{
|
|
||||||
_child=i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
++cnt;
|
|
||||||
}
|
|
||||||
return *_child;
|
|
||||||
}
|
|
||||||
virtual int num_children()
|
|
||||||
{
|
|
||||||
int cnt=0;
|
|
||||||
type=0;
|
|
||||||
for(std::list<ASTree>::iterator i=children.begin();i!=children.end();++i)
|
|
||||||
++cnt;
|
|
||||||
return cnt;
|
|
||||||
}
|
|
||||||
virtual std::list<ASTree>& return_child()
|
|
||||||
{
|
|
||||||
return children;
|
|
||||||
}
|
|
||||||
void print_tree()
|
|
||||||
{
|
|
||||||
if(content=="leaf")
|
|
||||||
{
|
|
||||||
std::cout<<"( "<<content<<" )";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
std::cout<<"( "<<content<<" ";
|
|
||||||
for(std::list<ASTree>::iterator i=children.begin();i!=children.end();++i)
|
|
||||||
{
|
|
||||||
i->print_tree();
|
|
||||||
}
|
|
||||||
std::cout<<" )";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
virtual void setcontent(std::string str)
|
|
||||||
{
|
|
||||||
content=str;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class ASTList:public ASTree
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ASTList()
|
|
||||||
{
|
|
||||||
line=0;
|
|
||||||
type=0;
|
|
||||||
content="subtree";
|
|
||||||
children.clear();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class ASTLeaf:public ASTree
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ASTLeaf()
|
|
||||||
{
|
|
||||||
line=0;
|
|
||||||
content="leaf";
|
|
||||||
children.clear();
|
|
||||||
}
|
|
||||||
ASTree& child(int n)
|
|
||||||
{
|
|
||||||
std::list<ASTree>::iterator _child=children.end();
|
|
||||||
return *_child;
|
|
||||||
}
|
|
||||||
int num_children()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
ASTList root;
|
|
||||||
ASTList subroot;
|
|
||||||
ASTLeaf leaf;
|
|
||||||
|
|
||||||
root.setcontent("root");
|
|
||||||
|
|
||||||
leaf.setcontent("1");
|
|
||||||
subroot.return_child().push_back(leaf);
|
|
||||||
leaf.setcontent("2");
|
|
||||||
subroot.return_child().push_back(leaf);
|
|
||||||
subroot.setcontent("+");
|
|
||||||
root.return_child().push_back(subroot);
|
|
||||||
|
|
||||||
leaf.setcontent("2147483648");
|
|
||||||
root.return_child().push_back(leaf);
|
|
||||||
subroot.return_child().push_back(subroot);
|
|
||||||
root.return_child().push_back(subroot);
|
|
||||||
root.print_tree();
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue