mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "kernel/yosys.h"
 | |
| 
 | |
| USING_YOSYS_NAMESPACE
 | |
| PRIVATE_NAMESPACE_BEGIN
 | |
| 
 | |
| struct TestArgsPass : public Pass {
 | |
|     TestArgsPass() : Pass("test_args", "dummy pass to test arg parsing") {
 | |
|         internal();
 | |
|     }
 | |
|     void execute(std::vector<std::string> args, RTLIL::Design*) override {
 | |
|         int argidx;
 | |
|         for (argidx = 0; argidx < GetSize(args); argidx++)
 | |
|         {
 | |
|             log("%s\n", args[argidx]);
 | |
|         }
 | |
|     }
 | |
| } TestArgsPass;
 | |
| 
 | |
| struct TestArgsFrontend : public Frontend {
 | |
|     TestArgsFrontend() : Frontend("test_args", "dummy frontend to test arg parsing") {
 | |
|         internal();
 | |
|     }
 | |
|     void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *) override {
 | |
|         int argidx;
 | |
|         log("pass: %s\n", args[0]);
 | |
|         for (argidx = 1; argidx < GetSize(args); argidx++) {
 | |
|             if (args[argidx] == "-arg" && argidx+1 < GetSize(args)) {
 | |
|                 log("arg: %s\n", args[++argidx]);
 | |
|                 continue;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
| 		extra_args(f, filename, args, argidx);
 | |
|         log("filename: %s\n", filename);
 | |
|     }
 | |
| } TestArgsFrontend;
 | |
| 
 | |
| struct TestArgsBackend : public Backend {
 | |
|     TestArgsBackend() : Backend("test_args", "dummy backend to test arg parsing") {
 | |
|         internal();
 | |
|     }
 | |
|     void execute(std::ostream *&f, std::string filename,  std::vector<std::string> args, RTLIL::Design *) override {
 | |
|         int argidx;
 | |
|         log("pass: %s\n", args[0]);
 | |
|         for (argidx = 1; argidx < GetSize(args); argidx++) {
 | |
|             if (args[argidx] == "-arg" && argidx+1 < GetSize(args)) {
 | |
|                 log("arg: %s\n", args[++argidx]);
 | |
|                 continue;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
| 		extra_args(f, filename, args, argidx);
 | |
|         log("filename: %s\n", filename);
 | |
|     }
 | |
| } TestArgsBackend;
 | |
| 
 | |
| PRIVATE_NAMESPACE_END
 |