diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-01-05 11:13:26 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-01-05 11:13:26 +0100 |
commit | 7764d0ba1dcf064ae487ee985c43083a0909e7f4 (patch) | |
tree | 18c05b8729df381af71b707748ce1d605e0df764 /frontends/ilang/ilang_frontend.cc |
initial import
Diffstat (limited to 'frontends/ilang/ilang_frontend.cc')
-rw-r--r-- | frontends/ilang/ilang_frontend.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/frontends/ilang/ilang_frontend.cc b/frontends/ilang/ilang_frontend.cc new file mode 100644 index 00000000..f3ad3a19 --- /dev/null +++ b/frontends/ilang/ilang_frontend.cc @@ -0,0 +1,49 @@ +/* + * yosys -- Yosys Open SYnthesis Suite + * + * Copyright (C) 2012 Clifford Wolf <clifford@clifford.at> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * A very simple and straightforward frontend for the RTLIL text + * representation (as generated by the 'ilang' backend). + * + */ + +#include "ilang_frontend.h" +#include "kernel/register.h" +#include "kernel/log.h" + +void rtlil_frontend_ilang_yyerror(char const *s) +{ + log_error("Parser error in line %d: %s\n", rtlil_frontend_ilang_yyget_lineno(), s); +} + +struct IlangFrontend : public Frontend { + IlangFrontend() : Frontend("ilang") { } + virtual void execute(FILE *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) + { + log_header("Executing ILANG frontend.\n"); + extra_args(f, filename, args, 1); + log("Input filename: %s\n", filename.c_str()); + + ILANG_FRONTEND::current_design = design; + rtlil_frontend_ilang_yydebug = false; + rtlil_frontend_ilang_yyrestart(f); + rtlil_frontend_ilang_yyparse(); + rtlil_frontend_ilang_yylex_destroy(); + } +} IlangFrontend; + |