mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Enable {* .. *} feature per default (removes dependency to REJECT feature in flex)
This commit is contained in:
		
							parent
							
								
									18d003254c
								
							
						
					
					
						commit
						e4429c480e
					
				
					 5 changed files with 3 additions and 24 deletions
				
			
		|  | @ -45,7 +45,6 @@ using namespace VERILOG_FRONTEND; | |||
| namespace VERILOG_FRONTEND { | ||||
| 	std::vector<std::string> fn_stack; | ||||
| 	std::vector<int> ln_stack; | ||||
| 	bool lexer_feature_defattr; | ||||
| } | ||||
| 
 | ||||
| %} | ||||
|  | @ -82,9 +81,6 @@ namespace VERILOG_FRONTEND { | |||
| 
 | ||||
| "`timescale"[ \t]+[^ \t\r\n/]+[ \t]*"/"[ \t]*[^ \t\r\n]* /* ignore timescale directive */ | ||||
| 
 | ||||
| "`yosys_enable_defattr" lexer_feature_defattr = true; | ||||
| "`yosys_disable_defattr" lexer_feature_defattr = false; | ||||
| 
 | ||||
| "`"[a-zA-Z_$][a-zA-Z0-9_$]* { | ||||
| 	frontend_verilog_yyerror("Unimplemented compiler directive or undefined macro %s.", yytext); | ||||
| } | ||||
|  | @ -225,8 +221,8 @@ supply1 { return TOK_SUPPLY1; } | |||
| "(*" { return ATTR_BEGIN; } | ||||
| "*)" { return ATTR_END; } | ||||
| 
 | ||||
| "{*"  { if (lexer_feature_defattr) return DEFATTR_BEGIN; else REJECT; } | ||||
| "*}"  { if (lexer_feature_defattr) return DEFATTR_END; else REJECT; } | ||||
| "{*"  { return DEFATTR_BEGIN; } | ||||
| "*}"  { return DEFATTR_END; } | ||||
| 
 | ||||
| "**" { return OP_POW; } | ||||
| "||" { return OP_LOR; } | ||||
|  |  | |||
|  | @ -198,13 +198,6 @@ static void input_file(FILE *f, std::string filename) | |||
| 	input_buffer.insert(it, "`file_pop\n"); | ||||
| } | ||||
| 
 | ||||
| static std::string define_to_feature(std::string defname) | ||||
| { | ||||
| 	if (defname == "__YOSYS_ENABLE_DEFATTR__") | ||||
| 		return "defattr"; | ||||
| 	return std::string(); | ||||
| } | ||||
| 
 | ||||
| std::string frontend_verilog_preproc(FILE *f, std::string filename, const std::map<std::string, std::string> pre_defines_map, const std::list<std::string> include_dirs) | ||||
| { | ||||
| 	std::map<std::string, std::string> defines_map(pre_defines_map); | ||||
|  | @ -298,8 +291,6 @@ std::string frontend_verilog_preproc(FILE *f, std::string filename, const std::m | |||
| 			std::string name, value; | ||||
| 			skip_spaces(); | ||||
| 			name = next_token(true); | ||||
| 			if (!define_to_feature(name).empty()) | ||||
| 				output_code.push_back("`yosys_enable_" + define_to_feature(name)); | ||||
| 			skip_spaces(); | ||||
| 			int newline_count = 0; | ||||
| 			while (!tok.empty()) { | ||||
|  | @ -331,8 +322,6 @@ std::string frontend_verilog_preproc(FILE *f, std::string filename, const std::m | |||
| 			std::string name; | ||||
| 			skip_spaces(); | ||||
| 			name = next_token(true); | ||||
| 			if (!define_to_feature(name).empty()) | ||||
| 				output_code.push_back("`yosys_disable_" + define_to_feature(name)); | ||||
| 			// printf("undef: >>%s<<\n", name.c_str());
 | ||||
| 			defines_map.erase(name); | ||||
| 			continue; | ||||
|  |  | |||
|  | @ -206,8 +206,6 @@ struct VerilogFrontend : public Frontend { | |||
| 			fp = fmemopen((void*)code_after_preproc.c_str(), code_after_preproc.size(), "r"); | ||||
| 		} | ||||
| 
 | ||||
| 		lexer_feature_defattr = false; | ||||
| 
 | ||||
| 		frontend_verilog_yyset_lineno(1); | ||||
| 		frontend_verilog_yyrestart(fp); | ||||
| 		frontend_verilog_yyparse(); | ||||
|  |  | |||
|  | @ -42,9 +42,6 @@ namespace VERILOG_FRONTEND | |||
| 
 | ||||
| 	// this function converts a Verilog constant to an AST_CONSTANT node
 | ||||
| 	AST::AstNode *const2ast(std::string code, char case_type = 0); | ||||
| 
 | ||||
| 	// lexer state variables
 | ||||
| 	extern bool lexer_feature_defattr; | ||||
| } | ||||
| 
 | ||||
| // the pre-processor
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue