diff --git a/docs/CONTRIBUTORS b/docs/CONTRIBUTORS index 2464b0800..12e5fa767 100644 --- a/docs/CONTRIBUTORS +++ b/docs/CONTRIBUTORS @@ -48,6 +48,7 @@ Peter Horvath Peter Monsson Philipp Wagner Pieter Kapsenberg +Piotr Binkowski Qingyao Sun Richard Myers Sean Cross diff --git a/src/V3AstNodes.h b/src/V3AstNodes.h index 8ae44fd9b..721ebb047 100644 --- a/src/V3AstNodes.h +++ b/src/V3AstNodes.h @@ -2448,6 +2448,15 @@ public: virtual string verilogKwd() const { return "module"; } }; +class AstProgram : public AstNodeModule { + // A program declaration +public: + AstProgram(FileLine* fl, const string& name) + : ASTGEN_SUPER(fl, name) {} + ASTNODE_NODE_FUNCS(Program) + virtual string verilogKwd() const { return "program"; } +}; + class AstNotFoundModule : public AstNodeModule { // A missing module declaration public: diff --git a/src/verilog.y b/src/verilog.y index 2e804a72f..f87bcf48e 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -1465,7 +1465,7 @@ program_declaration: // IEEE: program_declaration + program_nonansi_header + pr pgmFront: yPROGRAM lifetimeE idAny/*new_program*/ - { $$ = new AstModule($3,*$3); + { $$ = new AstProgram($3,*$3); $$->lifetime($2); $$->inLibrary(PARSEP->inLibrary() || $$->fileline()->celldefineOn()); $$->modTrace(GRAMMARP->allTracingOn($$->fileline()));