mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Turned a few member functions into const, esp. dumpAst(), dumpVlog().
This commit is contained in:
		
							parent
							
								
									c5b204d8d2
								
							
						
					
					
						commit
						eb40278a16
					
				
					 2 changed files with 14 additions and 14 deletions
				
			
		| 
						 | 
				
			
			@ -212,7 +212,7 @@ AstNode::AstNode(AstNodeType type, AstNode *child1, AstNode *child2, AstNode *ch
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// create a (deep recursive) copy of a node
 | 
			
		||||
AstNode *AstNode::clone()
 | 
			
		||||
AstNode *AstNode::clone() const
 | 
			
		||||
{
 | 
			
		||||
	AstNode *that = new AstNode;
 | 
			
		||||
	*that = *this;
 | 
			
		||||
| 
						 | 
				
			
			@ -224,7 +224,7 @@ AstNode *AstNode::clone()
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// create a (deep recursive) copy of a node use 'other' as target root node
 | 
			
		||||
void AstNode::cloneInto(AstNode *other)
 | 
			
		||||
void AstNode::cloneInto(AstNode *other) const
 | 
			
		||||
{
 | 
			
		||||
	AstNode *tmp = clone();
 | 
			
		||||
	other->delete_children();
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +254,7 @@ AstNode::~AstNode()
 | 
			
		|||
 | 
			
		||||
// create a nice text representation of the node
 | 
			
		||||
// (traverse tree by recursion, use 'other' pointer for diffing two AST trees)
 | 
			
		||||
void AstNode::dumpAst(FILE *f, std::string indent)
 | 
			
		||||
void AstNode::dumpAst(FILE *f, std::string indent) const
 | 
			
		||||
{
 | 
			
		||||
	if (f == NULL) {
 | 
			
		||||
		for (auto f : log_files)
 | 
			
		||||
| 
						 | 
				
			
			@ -333,7 +333,7 @@ static std::string id2vl(std::string txt)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// dump AST node as Verilog pseudo-code
 | 
			
		||||
void AstNode::dumpVlog(FILE *f, std::string indent)
 | 
			
		||||
void AstNode::dumpVlog(FILE *f, std::string indent) const
 | 
			
		||||
{
 | 
			
		||||
	bool first = true;
 | 
			
		||||
	std::string txt;
 | 
			
		||||
| 
						 | 
				
			
			@ -755,7 +755,7 @@ AstNode *AstNode::mkconst_str(const std::string &str)
 | 
			
		|||
	return node;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool AstNode::bits_only_01()
 | 
			
		||||
bool AstNode::bits_only_01() const
 | 
			
		||||
{
 | 
			
		||||
	for (auto bit : bits)
 | 
			
		||||
		if (bit != RTLIL::S0 && bit != RTLIL::S1)
 | 
			
		||||
| 
						 | 
				
			
			@ -806,7 +806,7 @@ RTLIL::Const AstNode::asParaConst()
 | 
			
		|||
	return val;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool AstNode::asBool()
 | 
			
		||||
bool AstNode::asBool() const
 | 
			
		||||
{
 | 
			
		||||
	log_assert(type == AST_CONSTANT);
 | 
			
		||||
	for (auto &bit : bits)
 | 
			
		||||
| 
						 | 
				
			
			@ -815,7 +815,7 @@ bool AstNode::asBool()
 | 
			
		|||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int AstNode::isConst()
 | 
			
		||||
int AstNode::isConst() const
 | 
			
		||||
{
 | 
			
		||||
	if (type == AST_CONSTANT)
 | 
			
		||||
		return 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,8 +190,8 @@ namespace AST
 | 
			
		|||
 | 
			
		||||
		// creating and deleting nodes
 | 
			
		||||
		AstNode(AstNodeType type = AST_NONE, AstNode *child1 = NULL, AstNode *child2 = NULL, AstNode *child3 = NULL);
 | 
			
		||||
		AstNode *clone();
 | 
			
		||||
		void cloneInto(AstNode *other);
 | 
			
		||||
		AstNode *clone() const;
 | 
			
		||||
		void cloneInto(AstNode *other) const;
 | 
			
		||||
		void delete_children();
 | 
			
		||||
		~AstNode();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -234,8 +234,8 @@ namespace AST
 | 
			
		|||
		AstNode *eval_const_function(AstNode *fcall);
 | 
			
		||||
 | 
			
		||||
		// create a human-readable text representation of the AST (for debugging)
 | 
			
		||||
		void dumpAst(FILE *f, std::string indent);
 | 
			
		||||
		void dumpVlog(FILE *f, std::string indent);
 | 
			
		||||
		void dumpAst(FILE *f, std::string indent) const;
 | 
			
		||||
		void dumpVlog(FILE *f, std::string indent) const;
 | 
			
		||||
 | 
			
		||||
		// used by genRTLIL() for detecting expression width and sign
 | 
			
		||||
		void detectSignWidthWorker(int &width_hint, bool &sign_hint, bool *found_real = NULL);
 | 
			
		||||
| 
						 | 
				
			
			@ -264,11 +264,11 @@ namespace AST
 | 
			
		|||
		RTLIL::Const asAttrConst();
 | 
			
		||||
		RTLIL::Const asParaConst();
 | 
			
		||||
		uint64_t asInt(bool is_signed);
 | 
			
		||||
		bool bits_only_01();
 | 
			
		||||
		bool asBool();
 | 
			
		||||
		bool bits_only_01() const;
 | 
			
		||||
		bool asBool() const;
 | 
			
		||||
 | 
			
		||||
		// helper functions for real valued const eval
 | 
			
		||||
		int isConst(); // return '1' for AST_CONSTANT and '2' for AST_REALVALUE
 | 
			
		||||
		int isConst() const; // return '1' for AST_CONSTANT and '2' for AST_REALVALUE
 | 
			
		||||
		double asReal(bool is_signed);
 | 
			
		||||
		RTLIL::Const realAsConst(int width);
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue